Re: Problems module autoload in 2.6.x

From: Thomas Steudten
Date: Wed Mar 17 2004 - 14:22:55 EST


Hi

2.6.4 on alpha:

zgrep -i mod /proc/config.gz
# Loadable module support
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
CONFIG_MODVERSIONS=y
CONFIG_KMOD=y
CONFIG_IDEDISK_MULTI_MODE=y

grep -i floppy /etc/modprobe.conf
alias block-major-2-* floppy

strace -estat,open /sbin/modprobe -v floppy
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
open("/lib/libc.so.6.1", O_RDONLY) = 3
open("/etc/modprobe.conf", O_RDONLY) = 3
open("/lib/modules/2.6.4/modules.dep", O_RDONLY) = 3
open("/proc/modules", O_RDONLY) = 3
open("/lib/modules/2.6.4/kernel/drivers/block/floppy.ko", O_RDONLY) = 3
insmod /lib/modules/2.6.4/kernel/drivers/block/floppy.ko

=> OK
without module floppy loaded:
mdir a:
Can't open /dev/fd0: No such device or address
No msg in KRB (dmesg) and log from /tmp/modprobe.log
=> FAILED
modprobe -v floppy
insmod /lib/modules/2.6.4/kernel/drivers/block/floppy.ko
=> OK
mdir a:
=> OK

My questions are:
1. What process name has the "new" kmod? There´s no such process in the
table.
2. What triggers to run the prog given in /proc/sys/kernel/modprobe (
for a missing device)?

Strange: Looks like there is no kmod build or loaded or ..
I should look in detail about this..


Kernel 2.6.4:
Some modules (floppy, lp, loop..) won´t be autoloaded any more since
2.4.21. There´s no block-major aso. request in the kernel-ring buffer.
I have /etc/modules.conf and /etc/modprobe.conf with modutils-2.4.21-23.1
and depmod -V: module-init-tools 3.0-pre5. How can I track this down?
Shouldn't be there a kmod process/ thread in the process list?


Check you have CONFIG_KMOD=y. If so, the correct way of debugging
module problems is something like this:

echo '#! /bin/sh' > /tmp/modprobe
echo 'echo "$@" >> /tmp/modprobe.log' >> /tmp/modprobe
echo 'exec /sbin/modprobe "$@"' >> /tmp/modprobe
chmod a+x /tmp/modprobe
echo /tmp/modprobe > /proc/sys/kernel/modprobe

Then do something that should cause the module to load: you'll see the
command which gets called in /tmp/modprobe.log. Then you can add "-v"
and run it manually, hopefully providing enlightenment.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/