Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 197730

Summary: genkernel-3.4.9_pre5: modprobe during init fails - busybox PATH handling broken
Product: Gentoo Hosted Projects Reporter: Robin Johnson <robbat2>
Component: genkernelAssignee: Gentoo Genkernel Maintainers <genkernel>
Status: RESOLVED FIXED    
Severity: blocker CC: jakub
Priority: Highest    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2007-11-01 08:17:25 UTC
modprobe during the initramfs fails. It does not show any modules loading automatically, then if I use shell and run modprobe manually, I get this: 
# modprobe dm-mod
modprobe: exec of insmod: No such file or directory
modprobe: failed to load module dm-mod

Manually running insmod for each of the needed modules (with their deps first) works, so it's just modprobe that is broken somehow.

My system:
Linux grubbs-int 2.6.24-rc1-pmp-gc1698780 #3 SMP Wed Oct 31 19:53:34 PST 2007 x86_64 Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz GenuineIntel GNU/Linux

I'm digging into it more now to try and find out why.
Comment 1 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2007-11-01 08:40:54 UTC
Ok, something is broken in the $PATH handling of that busybox.

If I do:
# modprobe FOO
I get the failure
If I do:
# cd /sbin
# modprobe FOO
It works fine.

Upgrading to blocker/P1.
Comment 2 Andrew Gaffney (RETIRED) gentoo-dev 2007-11-01 13:41:56 UTC
Perhaps this particular issue is why genkernel was building a static insmod and friends instead of using the busybox-provided ones. We've got a few options here:

* cd to /sbin before running insmod in /linuxrc
* go forward with the upgrade to busybox-1.4.2 and see if it fixes the issue
* restore the code that builds the static insmod and friends

All of these are pretty easy, although, I'm not sure any of them are actually desirable.

Robin, what is the PATH in the initramfs shell?
Comment 3 Andrew Gaffney (RETIRED) gentoo-dev 2007-11-01 13:51:23 UTC
Hmm, I can't reproduce this with an install cd kernel/initramfs produced by genkernel-3.4.9_pre3. As far as I know, nothing has changed between _pre3 and _pre5 that might account for this. I'll bump to _pre5 and rebuild and see if I can reproduce.
Comment 4 Andrew Gaffney (RETIRED) gentoo-dev 2007-11-01 14:28:02 UTC
I just rebuild my installcd with genkernel-3.4.9_pre5, and there it is. It's the same version of busybox in both. The PATH looks sane:

/ # echo $PATH
/usr/local/bin:/usr/bin:/sbin:/bin
/ # which insmod
/sbin/insmod

The only change that I can see that might have affected busybox is the mdadm patch  from bug #172128
Comment 5 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2007-11-01 23:36:31 UTC
agaffney: I dug a bit more and found some more on it.

In _pre3, there was the generic/modprobe script that was installed as the initramfs modprobe, while in _pre5, the busybox modprobe is used.

So then I theorize that the _pre3 in-busybox modprobe was probably broken already, and we just didn't run into it because of the custom modprobe script.
Comment 6 Chris Gianelloni (RETIRED) gentoo-dev 2007-11-02 00:42:14 UTC
OK.  I think I have a fix in SVN.  I simply reverted the removal of the script until we can investigate if it is needed with newer busybox versions.
Comment 7 Chris Gianelloni (RETIRED) gentoo-dev 2007-11-02 00:43:28 UTC
OK.  This should be fixed in 3.4.9_pre6.