linux服务器网卡驱动安装及故障排除 服务器-计世网

来源:百度文库 编辑:神马文学网 时间:2024/04/30 13:56:53
Linux服务器网卡驱动安装及故障排除
2005-8-17 16:04:42

计世网特约撰稿 曹江华
网卡是Linux服务器中最重要网络设备。据统计,Linux网络故障有35%在物理层、25%在数据链路层、10%在网络层、10%在传输层、10%在对话、7%在表示层、3%在应用层。由此可以看出,网络
故障通常发生在网络七层模型的下三层,即物理层、链路层和网络层。对应于实际网络也就是使用的网络线缆、网卡、交换机、路由器等设备故障。Linux的网络实现是模仿FreeBSD的,它支持FreeBSD的带有扩展的Sockets(套接字)和TCP/IP协议。它支持两个主机间的网络连接和Sockets通讯模型,实现了两种类型的Sockets:BSD Sockets和INET Sockets。它为不同的通信模型和服务质量提供了两种传输协议,即不可靠的、基于消息的UDP传输协议和可靠的、基于流的传输协议TCP,并且都是在IP网络协议上实现的。INET sockets是在以上两个协议及IP协议之上实现的。它们之间的关系见图1所示。

图1 Linux网络模型
由于交换机、路由器通常独立于Linux或者其他操作系统。网卡设置故障是造成Linux 服务器故障最主要原因。可能因为硬件的质量或性能、磨损老化、人为误操作、不正确的网络设置、管理问题、Linux软件的BUG、系统受到黑客攻击和Linux病毒等原因造成。
Linux 服务器网卡故障排除的思路是:应当遵循先硬件后软件的方法。因为硬件如果出现物理损坏那么如何设定网卡都不能解决故障。解决问题的方法可以从自身Linux计算机的网卡查起,如果确定硬件没有问题了,再来考虑软件的设定。
1.网卡的选择
一般来说,2.4版本以后的 Linux可以支持的网卡芯片组数量已经很完备了,包括著名厂商如:Intel 以及使用广泛的 RealTek, Via 等网卡芯片都已经被支持,所以使用者可以很轻易的设定好他们的网络卡。但是由于Linux发行版本众多(目前超过188个),使用前最好查看Linux发行版本的文档。以Redhat Linux 9.0为例,这个设备列表在Ethernet- HOWTO文档中。另外最直接的方法是查看一个目录:/lib/modules/release/kernel/drivers/net,其中release是内核版本,可以使用命令:“uname -r”获得。对于Redhat Linux 9.0是2.4.20-8。
#ls /lib/modules/2.4.20-8/kernel/drivers/net/
3c501.o             atp.o       eth16i.o      ni52.o         smc-ultra.o
3c503.o             bonding.o   ethertap.o    ni65.o         starfire.o
3c505.o             cs89x0.o    ewrk3.o       ns83820.o      strip.o
3c507.o             de4x5.o     fc            pcmcia         sundance.o
3c509.o             de600.o     fealnx.o      pcnet32.o      sungem.o
3c515.o             de620.o     hamachi.o     plip.o         sunhme.o
3c59x.o             defxx.o     hamradio      ppp_async.o    tc35815.o
8139cp.o            depca.o     hp100.o       ppp_deflate.o  tg3.o
8139too.o           dgrs.o      hp.o          ppp_generic.o  tlan.o
82596.o             dl2k.o      hp-plus.o     ppp_synctty.o  tokenring
8390.o              dmfe.o      irda          r8169.o        tulip
ac3200.o            dummy.o     lance.o       rcpci.o        tulip_old
acenic.o            e100        lne390.o      sb1000.o       tun.o
aironet4500_card.o  e1000       lp486e.o      shaper.o       via-rhine.o
aironet4500_core.o  e2100.o     mii.o         sis900.o       wan
aironet4500_proc.o  eepro100.o  natsemi.o     sk98lin        wavelan.o
amd8111e.o          eepro.o     ne2k-pci.o    skfp           wd.o
appletalk           eexpress.o  ne3210.o      slhc.o         winbond-840.o
arlan.o             epic100.o   ne.o          slip.o         wireless
arlan-proc.o        eql.o       netconsole.o  smc9194.o      wireless_old
at1700.o            es3210.o    ni5010.o      smc-ultra32.o  yellowfin.o
可以看到这个目录列出所有Linux内核支持的网络设备驱动程序。其中大部分是以太网卡(8139、3COM、Intel)。也有一些是其他类型设备。对于初学者应当尽量选择目录中已经列出的网卡。注意以.o 后缀结束的文件就是驱动程序。而没有后缀的是驱动程序目录(红色)。