- 论坛徽章:
- 0
|
最近碰上个问题
在从2.4向2.6迁移的过程中, 发现2.4和2.6modprobe的行为不一致
比如,
在2.4上, 一台机器如果没有e1000的网卡
debian:~# modprobe e1000
Note: /etc/modules.conf is more recent than
/lib/modules/2.4.27-2-386/modules.dep
/lib/modules/2.4.27-2-386/kernel/drivers/net/e1000/e1000.o: init_module: No
such device
Hint: insmod errors can be caused by incorrect module parameters, including
invalid IO or IRQ parameters.
You may find more information in syslog or the output from dmesg
/lib/modules/2.4.27-2-386/kernel/drivers/net/e1000/e1000.o: insmod
/lib/modules/2.4.27-2-386/kernel/drivers/net/e1000/e1000.o failed
/lib/modules/2.4.27-2-386/kernel/drivers/net/e1000/e1000.o: insmod e1000 failed
debian:~# uname -a
Linux debian 2.4.27-2-386 #1 Mon May 16 16:47:51 JST 2005 i686 GNU/Linux
如果没有找到e1000的卡, 那么就会insmod失败,
然而
在2.6上, modprobe e1000
不管有没有照到e1000的网卡, e1000 module都会在lsmod的显示输出中占有一席之地
我查看了modprobe的manual, 似乎没有提到如何能让module insmod失败的选项。
我看了源代码, 似乎和pci_driver结构的 .probe 有关, 没有确认。
问题就是:
如何能让2.6的modprobe向2.4的modprobe靠拢, 使得modprobe的时候如果么有找到设备就
自动失败。
谢谢。
p.s. 我也设想过使用discover那种东西, 只是同一个驱动所对应的设备型号过多, 维护
pci信息列表太烦。 |
|