如何在一台机器上安装两个网卡---翻译:刘 文 峰
时间:2006-03-05 来源:cnscn2008
原文章发布于 99.8.26 by 刘 文 峰
如何在一台机器上安装两个网卡
原作: Paul Gortmaker
翻译:Ken W. Liu
分两种情况考虑:
1.当驱动程序被作为模块时:
如今大部分Linux都将驱动程序使用为一个个的模块。这种模块和
做在内核中的驱动程序不一样。在PCI卡的情况下,模块会自动的检测
所有安装的网卡。但是,对于isa卡就不一样了,检测isa卡是一件不够
安全的操作,因此需要手动的指定io地址和中断号,从而可以让模块查
找网卡。这个信息在文件/etc/conf.modules中保存着。
举个例子说:一个用户有两块isa的Ne2000网卡,一个为0x300,另一个为
0x240。那么,在conf.modules文件中应该这样写:
alias eth0 ne
alias eth1 ne
options ne io=0x240,0x300
这种情况下,在运行modprobe eth0 或者modprobe eth1 时,ne.o 就会
导入 eth0 或 eth1.还有,当ne.o模块导入时,可以得到关于io地址的信息,
从而可以知道到何处去查找isa网卡.注意,前缀0x是很重要的,否则网卡必
定不能正常工作。
大部分的isa驱动程序模块可以按照上面的方法正常工作,但是有一些(旧式?)
网卡驱动程序,如3c501.o只能用一个模块一次导入一个网卡设备。这种情况
下,可以将同一个模块导入两次,如下所示:
alias eth0 3c501
alias eth1 3c501
options eth0 -o 3c501-0 io=0x240 irq=5
options eth1 -o 3c501-1 io=0x300 irq=7
这个例子中,-o的选项表示的含义是让每一个导入的模块有不同的名称。
最后一个例子:
一个用户有两块不同的网卡:3c503(0x350)和SMC Elite16(wd8013) (0x280).
这个用户可能会这样写:
alias eth0 wd
alias eth1 3c503
options wd io=0x280
options 3c503 io=0x350
对于PCI网卡,你只需要这样的一行便可以完事大吉。因为PCI网卡的IO
地址是被安全检测的。
所有的驱动程序放置在/lib/modules目录中,你可以到那去看有哪个驱动
程序可以满足你的需要。一旦你有了正确的conf.modules设置,你可以进行
这样的命令进行检测:
modprobe ethN
dmesg | tail
*其中的N表示的是你需要检测的网卡号码。
2.驱动程序已经编译到了内核(Kernel)中:
如果驱动程序已经在内核中了,那么多网卡的设置已经有了。但是,缺省的
情况是自动检测一块网卡,这样可以防止在启动时不正常的挂起。
有两种方法让你使自动检测两块网卡或多块网卡成为可能。简单的办法是给
启动的内核传入参数,这一点由lilo来完成。假如你有两块网卡:其一:
io=0x300,irq=5;其二:io=0x280,irq=15,那么在启动时这样写:
LILO: linux ether=5,0x300,eth0 ether=15,0x280,eth1
如果觉得每次启动时这样写太复杂了,那么可以在lilo的配置文件中设置。
这要用到append命令。在image=....一行的下面写上append="ether=5,
0x300,eth0 ether=15,0x280,eth1"便可以了。
第二种方法是(不推荐使用):编辑Space.c文件。将其中的0xffe0改为0。
0xffe0地址是标志那些不用进行自动检测的网卡,0却是表示那些需要自动
检测的网卡。
(--译者:在编译这种核心之后,要保留好一个无错误的内核版本,否则
恢复起来太麻烦了。)
注意:
如果你用两个网卡的目的是用Linux作为两个网络的网关的话,不要忘了编译
内核,使内核能够支持IP forwording.
中国Linux论坛 版权所有
相关阅读 更多 +
排行榜 更多 +