[SOLVED] modprobe problem
Josh England
jjengla at sandia.gov
Fri Dec 14 21:33:38 UTC 2007
Ok. Running the glibc busybox under strace shows that modprobe is
trying to run 'insmod', '/bin/insmod', then '/usr/bin/insmod', then it
fails. strace under the uClib compiled busybox didn't show this.
Anyhow, if I create a /bin/insmod link, modprobe starts to work! Also,
since my PATH contains /sbin, if I run 'export PATH' then the modprobe
also starts to work. I'm now just putting 'export PATH' at the top of
my init (linuxrc) script and things work fine. This behavior must have
changed sometime after busybox 1.2.2.1.
-JE
On Fri, 2007-12-14 at 13:43 -0700, Josh England wrote:
> For what it's worth, I get the same behavior out of a glibc-built
> busybox. No version of busybox newer than 1.2.2.1 works -- they all
> give the same error:
>
> modprobe: failed to load module
>
> Is there something missing in my initrd that is required as of busybox
> 1.3? I don't understand this.
>
> -JE
>
> On Wed, 2007-12-12 at 13:51 -0700, Josh England wrote:
> > Denys, Sorry for late response. I rebuilt busybox from an updated
> > (uClibc) buildroot to make sure the problem wasn't in older libraries or
> > some such. Here is the output from strace.
> >
> > -JE
> >
> > On Sat, 2007-12-01 at 22:59 -0800, Denys Vlasenko wrote:
> > > On Friday 30 November 2007 08:56, Josh England wrote:
> > > > I'm trying busybox-1.8.2 and running into an issue that used to work
> > > > just fine (in busybox-1.2.1). I'm running busybox in an
> > > > initrd/initramfs environment and trying to load kernel modules via
> > > > modprobe. A correct modules.dep file is in place, and insmod can load
> > > > the module just fine, but modprobe returns:
> > > >
> > > > modprobe: failed to load module
> > > >
> > > > Any ideas? This is running on a 2.6.18-7 (RedHat-based) kernel. My
> > > > busybox .config has:
> > > >
> > > > # Linux Module Utilities
> > > > #
> > > > CONFIG_INSMOD=y
> > > > CONFIG_FEATURE_INSMOD_VERSION_CHECKING=y
> > > > CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y
> > > > CONFIG_FEATURE_INSMOD_LOADINKMEM=y
> > > > # CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
> > > > # CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
> > > > CONFIG_RMMOD=y
> > > > CONFIG_LSMOD=y
> > > > CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
> > > > CONFIG_MODPROBE=y
> > > > CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
> > > > CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
> > > >
> > > > #
> > > > # Options common to multiple modutils
> > > > #
> > > > CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
> > > > CONFIG_FEATURE_2_4_MODULES=y
> > > > CONFIG_FEATURE_2_6_MODULES=y
> > > > # CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
> > > >
> > > > Any ideas?
> > >
> > > 18.2 with your .config:
> > >
> > > # strace -f -o strace.log ./busybox modprobe tcrypt
> > >
> > > succeeds. Can you do the same and post your log?
> > >
> > > My strace log is:
> > >
> > > 3572 execve("./busybox", ["./busybox", "modprobe", "tcrypt"], [/* 44 vars */]) = 0
> > > 3572 ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
> > > 3572 ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
> > > 3572 getuid32() = 0
> > > 3572 uname({sys="Linux", node="vda_lt", ...}) = 0
> > > 3572 brk(0) = 0x810b000
> > > 3572 brk(0x810c000) = 0x810c000
> > > 3572 open("/lib/modules/2.6.15-29-686/modules.dep", O_RDONLY|O_LARGEFILE) = 3
> > > 3572 read(3, "/lib/modules/2.6.15-29-686/usb/m"..., 1024) = 1024
> > > 3572 _llseek(3, -708, [316], SEEK_CUR) = 0
> > > 3572 read(3, "/lib/modules/2.6.15-29-686/madwi"..., 1024) = 1024
> > > 3572 _llseek(3, -917, [423], SEEK_CUR) = 0
> > > 3572 read(3, "/lib/modules/2.6.15-29-686/madwi"..., 1024) = 1024
> > > 3572 _llseek(3, -919, [528], SEEK_CUR) = 0
> > > 3572 read(3, "/lib/modules/2.6.15-29-686/madwi"..., 1024) = 1024
> > > ...
> > > ...
> > > ...
> > > 3572 _llseek(3, -41, [4916], SEEK_CUR) = 0
> > > 3572 read(3, "dm_mod 63256 3 dm_crypt, Live 0x"..., 1024) = 41
> > > 3572 read(3, "", 983) = 0
> > > 3572 read(3, "", 1024) = 0
> > > 3572 close(3) = 0
> > > 3572 vfork() = 3573
> > > 3572 wait4(3573, <unfinished ...>
> > > 3573 execve("/home/vda/bin/insmod", ["insmod", "/lib/modules/2.6.15-29-686/kerne"...], [/* 44 vars */]) = -1 ENOENT (No such file or directory)
> > > 3573 execve("/usr/local/sbin/insmod", ["insmod", "/lib/modules/2.6.15-29-686/kerne"...], [/* 44 vars */]) = -1 ENOENT (No such file or directory)
> > > 3573 execve("/usr/local/bin/insmod", ["insmod", "/lib/modules/2.6.15-29-686/kerne"...], [/* 44 vars */]) = -1 ENOENT (No such file or directory)
> > > 3573 execve("/usr/sbin/insmod", ["insmod", "/lib/modules/2.6.15-29-686/kerne"...], [/* 44 vars */]) = -1 ENOENT (No such file or directory)
> > > 3573 execve("/usr/bin/insmod", ["insmod", "/lib/modules/2.6.15-29-686/kerne"...], [/* 44 vars */]) = -1 ENOENT (No such file or directory)
> > > 3573 execve("/sbin/insmod", ["insmod", "/lib/modules/2.6.15-29-686/kerne"...], [/* 44 vars */]) = 0
> > > 3573 uname({sys="Linux", node="vda_lt", ...}) = 0
> > > 3573 brk(0) = 0x804b000
> > > 3573 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fa5000
> > > 3573 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
> > > 3573 old_mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fa3000
> > > 3573 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
> > > 3573 open("/etc/ld.so.cache", O_RDONLY) = 3
> > > 3573 fstat64(3, {st_mode=S_IFREG|0644, st_size=67511, ...}) = 0
> > > 3573 old_mmap(NULL, 67511, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f92000
> > > 3573 close(3) = 0
> > > 3573 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
> > > 3573 open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
> > > 3573 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220O\1"..., 512) = 512
> > > 3573 fstat64(3, {st_mode=S_IFREG|0755, st_size=1232784, ...}) = 0
> > > 3573 old_mmap(NULL, 1238972, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e63000
> > > 3573 old_mmap(0xb7f88000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x125000) = 0xb7f88000
> > > 3573 old_mmap(0xb7f8f000, 10172, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f8f000
> > > 3573 close(3) = 0
> > > 3573 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e62000
> > > 3573 set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e628e0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
> > > 3573 munmap(0xb7f92000, 67511) = 0
> > > 3573 brk(0) = 0x804b000
> > > 3573 brk(0x806c000) = 0x806c000
> > > 3573 create_module(NULL, 0) = -1 ENOSYS (Function not implemented)
> > > 3573 open("/lib/modules/2.6.15-29-686/kernel/crypto/tcrypt.ko", O_RDONLY) = 3
> > > 3573 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\1\0\3\0\1\0\0\0\0\0\0\0"..., 16384) = 16384
> > > 3573 read(3, "\ntesting crc32c using incrementa"..., 16384) = 16384
> > > 3573 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 32768) = 32768
> > > 3573 read(3, "\0\0\0\0\0\0\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 65536) = 32779
> > > 3573 read(3, "", 32757) = 0
> > > 3573 close(3) = 0
> > > 3573 init_module(".ELF...", 0x1800b) = 0
> > > 3573 exit_group(0) = ?
> > > 3572 <... wait4 resumed> [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3573
> > > 3572 --- SIGCHLD (Child exited) @ 0 (0) ---
> > > 3572 _exit(0)
> > >
> > > --
> > > vda
> > >
> > _______________________________________________
> > busybox mailing list
> > busybox at busybox.net
> > http://busybox.net/cgi-bin/mailman/listinfo/busybox
>
>
> _______________________________________________
> busybox mailing list
> busybox at busybox.net
> http://busybox.net/cgi-bin/mailman/listinfo/busybox
>
More information about the busybox
mailing list