网卡的安装思路(2)
还有另一种方法,这种方法比较简单,但是需要有X-windows的支持。(注意,首先在windows 9x下到系统设备中看一下“网络适配器”的IO Address和IRQ。)有些网卡在Setup成jumpless后无法在windows 9x 中正常工作,那么只能进入Setup程序中查看一下了。
有许多种网卡的配置的方法。这里介绍最容易的一种kernelcfg。kernelcfg是Redhat自带的核心模块配置工具,是一个在X-windows下非常方便的图形界面的配置工具。
而且在其他版本中也有类似的工具。在X-windows的xterm中输入"kernelcfg"。读者可以看到屏幕上弹出一个"kernel Configurtor"的框。如果内核还没有找了你的网卡的话,框里面是没有关于网卡的描述的。在左下角的"add"点击一下,然后在弹出的界面中的Module Type按钮中选择模块类型为eth。表明这是一块以太网卡,而不是声卡,或其他的一些硬件设备。
然后选择OK后,就可以在以后的界面中选择合适的网卡模块了。如果配置第一块网卡,则在“Which module type”中选择eth0;如果是第二块那么就选择eth1,以此类推。在"which module"中需要选择的网卡的具体类型,对于D-Link DE220的卡来讲,只要在其中选择单元“ne”就可能了。注意,之后还需要填写有关于网卡的一些配置参数,这里需要的参数就是在Setup中设jumpless后,网卡的I/O地址和IRQ。这些工作完成以后,网卡就可以驱动了。系统每次启动时,都会自动定位网卡的位置和型号。但是并不是每块卡可以通过的。如果你使用LILO引导系统,那么就可以在lilo.conf文件中使用附加的命令语句将设备参数传递给核心。对于以太网卡可以使用:
ether=irq,base_addr,param1,param2,name
前四个参数是用数字,最后一个参数是设备的名称。所有的数字变量都可以自由选择,如果用户忽略或是设置成0,那么核心会自动检测该设备的参数变量或使用默认值。第一个参数代表分配给设备的中断请求通道,默认情况下核心会自动检测设备的IRQ通道。第二个参数变量base_addr用来指定设备的基本I/O地址。同样,如果这里是0,就意味着核心会自动检测该设备的I/O地址;剩下的两个参数变量param1和param2对于不同的设备有不同的含义。对于共享内存的网卡,它们用来定义共享内存区域的起始点和结束点。对于其他网卡来说,它们使用param1来设置信息的调试等级,数字1到7代表调试等级逐渐增加,而数字8表示关闭信息调试,0表示使用默认值。
如果用户有两块网卡,那么其中一块可以让Linux在启动时自动检测而另一块则通过lilo将其参数传递给核心。但是,您必须确保通过lilo传递参数的那块网卡不会在系统启动时被“偶然”检测到,否则第一块网卡就检测不到了。为此,可以在lilo.conf中使用reserve命令。这条命令语句明确地告诉核心不自动检测第二块网卡。例如,为了安装I/O地址是0x300的第二块网卡eth1,可以在lilo.conf中加上下面这一条语句:
reserve=0x300,32 eth1=0,0x300,eth1
使用rserve命令语句就可以保证核心在系统启动检测其他硬件时不会检测分配给第二块网卡的I/O地址。用户可以使用这条语句来覆盖自动检测的第一块网卡:
reserve=0x340,32 eth1=0,0x340,eth0
如果要关闭自动检测功能,可以将base_argiment参数变量定义为-1,如:
ether=0,-1,etn0
接下来是网卡接口的配置,可以ifconfig命令来配置TCP/IP网络。它可以使Linux核心知道软件回送这样一些网络接口,但这些网络接口被激活以后,核心就可以使用它们发送和接收数据报。我们需要在自己的机器上设置好几个接口,包括回送接口lo和以太网接口(或者所有使用的其他网络接口)。ifconfig命令可以激活每一个网络接口。
ifconfig命令最常用的格式是:
#ifconfig interface_type IP_Address
这里interface_type是接口设备的驱动器名,如回送接口lo,ppp接口PPP和以太网接口eth等。IP_Address是分配给接口设备的IP地址。运行了ifconfig之后,相应接口会被激活。先配置回送接口loopback位于网络上的每一台主机都应该有一个回送接口,所有系统中回送接口的IP地址都是127.0.0.1。通常Linux系统的回送接口在安装时就已经自动设置好了,并且使用虚拟主机名localhost来代表地址127.0.0.1。如果在/etc/hosts文件中可以找到下面这一项。
#Sample /etc/hosts entry for localhost
127.0.0.1 localhost
那么说明回送接口已经配置好了,如果不存在,则可以使用vi编辑器添加。
当hosts文件中没有回送接口这一项时,还需要使用ifconfig命令来产生回送接口:
#ifconfig 127.0.0.1
之后我们还可以使用ifconfig命令来显示回送接口的所有信息以确认配置是否生效:
$ifconfig lo
lo Link encap Local Loopback
inet addr 127.0.0.1 Bcast[NONE SET] Mask 255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU 2000 METRIC 1
RX packets 0 errors 0 dropped 0 overrun 0
TX packets 0 errors 0 dropped 0 overrun
可看到回送接口的掩码是255.0.0.0,这是因为回送地址127.0.0.1本身是一个A类地址:此外回送接口也没有设置广播地址,广播地址对于回送接口来说意义不是很大,但是如果想运行rwhod守护进程的话,就必须设置回送设备的广播地址以便rwho命令可以正常工作。如何设置广播地址将在本章第三节中介绍。现在还需要使用下面两条命令中的任意一个将回送设备添加到核心路由表中:
#route add 127.0.0.1
#route add localhost
我们可以使用一些命令来检查刚才配置的回送网络是否正常工作,检查网络状态的命令很多,如ifconfig、arp、netstat等,这里使用ping命令。ping命令可以指出一台主机是否可以到达,还可以显示分组报文丢失和传输时间等统计资料等等。然后你可以使用
#ping localhost
如果显示
PING localhost(127.0.0.1):56 data bytes
64 bytes from 127.0.0.1:icmp seq=0 ttl=32 time=1ms
......
那么你就将回送接口配置好了。
然后就可以配置以太网接口,这其实与配置回送接口非常相似:使用ifconfig命令配置接口设备,然后将远程网络的主机路由添加到核心路由表中,配置工作完成后也使用ping命令检查网络是否畅通。只是如果有子网存在的话,还需要更多的配置参数。
首先,使用ifconfig命令设置以太网接口。在B类网络Vtriual Breway中定义了两个C类子网。为了让接口设备可以识别他们,需要安下面的格式使用ifconfig命令:
#ifconfig eth0 vstout netmask 255.255.255.0
这条命令将把主机的IP地址分配给了以太网接口eth0。如果忽略了掩码,ifconfig命令将从IP网络的级别中自动推测出掩码值,这样会将掩码指定为255.255.0.0。
现在可以用下面的命令来检查以太网接口的工作状况。
#ifconfig eth0
eth0 Link encap 10Mps Ethernet HWaddr 00:00:C0:90:B3:44
inet addr xxx.xxx.xxx.xxx Bcast xxx.xxx.xxx.255 Mask 255.255.255.0
UP BROADCAST RUNNING MTU 1500 Metric 1
RX packets 0 errors 0 dropped 0 overrun 0
TX packets 0 errors 0 dropped 0 overrun 0
从输出结果可以看到Linxu依照主机的IP地址自动地为eth0设置广播地址xxx.xxx.xxx.255,这个地址是主机IP地址的网络号加上将所有主机位位置为1而得到的。信息传送单元(MTU)被设置成了最大值1500bit。在下文,您将看到所有这些数值都可以使用特殊的命令进行修改。