| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
Linux下网卡驱动安装及故障排除

作者:未知    文章来源:网络    点击数:    更新时间:2007-4-26
 

网卡是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协议之上实现的。 

  由于交换机、路由器通常独立于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 后缀结束的文件就是驱动程序。而没有后缀的是驱动程序目录(红色)。 

  2.检查网卡是否加载: 

  驱动硬件是操作系统最基本的功能,操作系统通过各种驱动程序来驾驭硬件设备,和Windows系统不同Linux内核目前采用可加载的模块化设计(LKMs Loadable Kernel Modules),就是将最基本的核心代码编译在内核中,网卡驱动程序是作为内核模块动态加载的。可以使用命令“lsmod”查看加载情况: 

  ## lsmod 

  Module Size Used by 

  dm_mod 54741 0 

  button 6481 0 

  battery 8901 0 

  ac 4805 0 

  md5 4033 1 

  joydev 10241 0 

  uhci_hcd 31065 0 

  ehci_hcd 30917 0 

  snd_via82xx 26437 0 

  snd_ac97_codec 63889 1 snd_via82xx 

  snd_pcm_oss 49017 0 

  soundcore 9889 1 snd 

  tulip 45025 1 

  via_rhine 23113 2 

  mii 4673 1 via_rhine 

  ext3 116809 2 

  jbd 71257 1 ext3 

  对每行而言,第一列是模块名称;第二列是模块大小;第三列是调用数。调用数后面的信息对每个模块而言都有所不同。如果 (unused) 被列在某模块的那行中,该模块当前就没在使用。如果 (autoclean) 被列在某模块的那行中,该模块可以被 rmmod -a 命令自动清洗。当这个命令被执行后,所有自从上次被自动清洗后未被使用的被标记了“autoclean”的模块都会被卸载。丛以上红色粗体字符可以看到笔者Linux计算机中两块网卡模块:tulip和via_rhine 已经加载。对应的网卡商业型号分别是: 

  tulip:Lite-On Communications Inc LNE100TX [Linksys EtherFast 10/100] 

  via_rhine:Via VT6102[Rhine-II] 常见主板集成网卡。 

[1] [2] [3] 下一页


  • 上一篇文章:

  • 下一篇文章: 没有了
  • 相关文章