Date: Wed, 12 Nov 2003 17:00:54 +0200 From: Peter Pentchev <roam@ringlet.net> To: Reinier Kleipool <Reinier@Kleipool.org> Cc: freebsd-hackers@freebsd.org Subject: Re: kernel enviroment in sysctl MIB Message-ID: <20031112150054.GA453@straylight.oblivion.bg> In-Reply-To: <001701c3a875$836b1960$5201a8c0@ovs.kleipool.org> References: <001701c3a875$836b1960$5201a8c0@ovs.kleipool.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--WIyZ46R2i8wDzkSu Content-Type: text/plain; charset=windows-1251 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Nov 11, 2003 at 06:01:55PM +0100, Reinier Kleipool wrote: > Hello, >=20 > I am investigating the possiblilies for looking at the kernel boot > parameters from within a userland utility. (Possibly a new FreeBSD install > facility) The idea is that by looking at sysctl kern.environment.* you > should be able to see the BTX variables. An install program could use this > to see an INSTALL_SERVER=3Dinstall.company.com variable (etc...) to use as > install server. The BTX loader could provide these variables at install b= oot > time, thus enableing fully automated installs. [snip] > My question is this: When looking at kern/kern_environmet.c I see routines > that install a SYSCTL_NODE kern.environment. The sysctl_kernenv routine > handles this node. What I do not understand is how the environment is > returned from this routine. Take a look at the kenv(1) utility - its source is in the src/usr.bin/kenv/kenv.c file. There is a weird comment at line 74, where the kern.environment sysctl is accessed in a really 'magic & undocumented' way. Look at what it does - basically enumerating oid's =66rom a given starting point, the starting point being obtained in said 'magic & undocumented' way - and see if you could use the same approach. Alternatively, you could just invoke kenv(1) with your variables as command-line parameters from your program/script, although this might incur a performance cost. G'luck, Peter --=20 Peter Pentchev roam@ringlet.net roam@sbnd.net roam@FreeBSD.org PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 =2Esiht ekil ti gnidaer eb d'uoy ,werbeH ni erew ecnetnes siht fI --WIyZ46R2i8wDzkSu Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (FreeBSD) iD8DBQE/sksm7Ri2jRYZRVMRAhVSAJ45V7VhY38gXM1+maZIzPgCS7dobACfRECD QxO7LVMh/kYGcVKycCXU4SQ= =XzeM -----END PGP SIGNATURE----- --WIyZ46R2i8wDzkSu--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031112150054.GA453>