mdev with hda's

David Henderson dhenderson at digital-pipe.com
Wed May 11 22:45:49 UTC 2011


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
>> ADMAIL=support at XYZ.com
>> 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
> busybox at busybox.net
> 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.


More information about the busybox mailing list