What might keep a 2.6.1 kernel from looking into the appropriate /lib/modules/2.6.1/ path?
I've a setup (doubtlessly defective in it's compile) that's refusing to traverse into this path for it's modules.
What "tells" the kernel the path to follow when looking for such things? Rather than just take the drop-back-and-punt (recompile) position I'd like to untangle it first.
strace on modprobe and lsmod show it wandering around the LD_LIBRARY_PATH directories.
Any tips?
Old modutils
I thought 2.6 modules-init-tools do not care about LD_LIBRARY_PATH anymore ? ;-)
I've just given a strace try, and indeed, mine is not looking for it all. I think you can't set up the path for modprobe to look in. What are your modutils version ?
# modprobe -V module-init-to
# modprobe -Vmodule-init-tools version 0.9.14
The latest, compiled on this box, under this kernel.
LD_LIBRARY_PATH=/lib:/usr/X11R6/lib:/usr/X11R6/lib/modules# strace insmod usbnet
execve("/sbin/insmod", ["insmod", "usbnet"], [/* 31 vars */]) = 0
uname({sys="Linux", node="xbox", ...}) = 0
brk(0) = 0x804b000
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/mmx/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/i686/mmx", 0xbfffeba0) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/i686", 0xbfffeba0) = -1 ENOENT (No such file or directory)
open("/lib/tls/mmx/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/mmx", 0xbfffeba0) = -1 ENOENT (No such file or directory)
open("/lib/tls/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360W\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1539996, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40016000
old_mmap(0x42000000, 1267276, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x42000000
old_mmap(0x42130000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x130000) = 0x42130000
old_mmap(0x42133000, 9804, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x42133000
close(3) = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0x40016540, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
brk(0) = 0x804b000
brk(0x804c000) = 0x804c000
brk(0) = 0x804c000
create_module(umovestr: Input/output error
0, 0) = -1 ENOSYS (Function not implemented)
brk(0) = 0x804c000
brk(0x8050000) = 0x8050000
open("usbnet", O_RDONLY) = -1 ENOENT (No such file or directory)
write(2, "insmod: can\'t read \'usbnet\': No "..., 55insmod: can't read 'usbnet': No such file or directory
) = 55
exit_group(1) = ?
So what's it think is going on here?
Greetings! I've stuck with t
Greetings!
I've stuck with the same problem.
I guess it's not kernel problem, but new module-init-tools.
Just look on it's sources - `modinfo`(in modinfo.c) tries to find module recursively in proper directory, and `insmod`(insmod.c) simply open()s given filename as is, without any path searching.
And take a look on modutils(for 2.4 kernels) - insmod searches filename in default module dir.
Maybe I've missed something? There should be a reason for such behavior, I guess.
Will be thankfull for any info or links.