我在一台计算机(使用RedHat Linux 6.0)上装了两块NE2000兼容ISA网卡,都设成了免跳线(Jumperless)模式,占用资源(I/O地址/IRQ)分别为0x240/10和0x300/3,在Linux下用modprobe命令加载时,只能使用第一块,请问有什么解决办法呢?
Linux下用module方式加载设备驱动程序时,同名module只能加载一次。有人给出了一个解决办法:把NE2000的驱动程序ne.o复制一份,取一个其他的名字,譬如ne1.o,然后用modprobe ne1 io=xxx就可以了。这个方法有些繁琐,因为当您升级到新版kernel的时候,新编译出来的module还要这样做一遍。
如果您的kernel在编译时选择了kerneld支持(常见的RedHat缺省就设置了这个选项),那么可以通过module alias来实现,具体方法是:修改/etc/conf.modules,在里面加上eth*和网卡驱动程序module名字的对应关系。譬如,以0x240/10和0x300/3为例则应该如下:
alias eth0 ne
alias eth1 ne
options ne io=0x240,0x300
对于PCI网卡,也可以用同样的方式。