On 05/11/2011 06:24 PM, Harald Becker wrote:
  Hallo David!

Since both are immediately exporting the environment, they will have
the same information as originally posted, but for the sake of
argument, I did as asked with the output below:
Click! ... thinking about I found the possible solution why hd devices
show up with a shell inherited environment ...

... the reason is contained in your above statement: hd and sd device do
*not* both *immediately* export the environment ... I assume you are
using a standard kernel, with statically included ata driver ... the
kernel/device startup sequence differes between hd and sd devices. hd
devices are present before init startup and do not produce hotplug
events (as far as I noted). sd devices produce hotplug events on
startup. That leads to the extreme difference of environment setup. hd
devices are setup during initial "mdev -s" run ... and inherit the
calling shells environment, whereas sd devices are initialized by
hotplug events called from scsi kernel threads ... and inherit the
kernel threads environment.

... that will explain all noted differences and behavior ... but may
need some verification (only solved theoretically).

I'm actually using the TinyCore kernel (2.6.33.3) which includes a couple of patches by their development team, so it's not a vanilla kernel. Based on your explanation above, it makes perfect sense why I'm getting two vastly different sets of environment variables. Problem solved! :)

TERM=linux
GUIPORT=81
OS=XiniX
USER=root
LD_LIBRARY_PATH=/lib:/home/root/.lib:/home/.everyone/.lib
bootmode=normal
ED=EE
PATH=/home/root/.etc/defaults:/etc/defaults:/home/root/.bin:/home/root/.sbin:/bin:/sbin

SUPPORT=XYZ
vga=0x314
PWD=/dev
TZ=EST5EDT
GUISERVER=127.0.0.1
[email protected]
HOME=/home/root
SHLVL=3
PIDDIR=/var/run/pids
SVDIR=/var/run/services
VER=0.5
ADMIN=Dave
Is this the environment setting of your startup / init script(s)?
Especially the variables vga and bootmode are an indication for this
assumption.

May be you can search through your init scripts and locate the "mdev -s"
call ... put an "env>/tmp/init_env" there (just before mdev call) and
compare output with above list. Add an "export MDEV_TEST=irgendwas"
bevor the "mdev -s", this shall show up as "MDEV_TEST=irgendwas" in your
mdev output for hda devices ... if I'm right with my above theory.

--
Harald
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Yes, the above is environment of the startup/init script - no need to test that theory as I know for sure that's the case. :) I still think that it would make more sense for mdev to pass a standard environment when called than the way it works now. It will present less confusion to a developer (namely me :).

Dave


NOTE: anyone using this thread as a resolution to a problem, your environment variables will most likely *not* be like the ones above since this is a custom distro.
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to