• Blog
  • Archives
  • Search
  • Comments
  • Tags
  • Links
  • LianDan
  • RSS

有梦就有快乐[杨恒飞]

Reg | Login

人生旅途慢慢,但有梦就会有快乐!

感谢阅读
如何解决与驱动相关的Linux网络问题
By coldstar On 2010-03-05, 2:20 PM | Category: Linux | Comments: 0

【TechTarget中国原创】linux机器上与网络有关的问题很难解决,因为这已经超出Linux所信任的环境之外了。但是作为Linux管理员,你可以通过使用正确的技术帮助网络管理员解决难题。在本文中,TechTarget中国的特约专家Sander van Vugt将介绍如何解决与驱动相关的网络问题。

  要确定你遇到的问题与网络相关很简单:如果你的计算机不能与其他计算机通信,网络就有问题。但是很难找到问题根源。你需要从分析网络通信里包含的各种元素入手。

  如果你的主机需要与网络中的其他主机通信,必须具备以下条件:

1.安装了网卡并能用于操作系统,例如载入了正确驱动。
2.网卡分配有IP地址。
3.计算机能与同个网络中的其他主机通信。
4.计算机能与其他网络中的其他主机通信。
5.计算机能使用其主机名与其他主机通信。


  解决网络驱动问题

  要与网络上的其他计算机通信,你的计算机需要一个网络接口。计算机要获取网络接口的方式设计得很好。在系统启动期间,内核探测不同的可用接口,一般位于PCI bus上,找到一个网卡。接下来确定需要哪个驱动记录网卡,驱动是否可用,它将记录网卡。随后,udev daemon(udevd)在计算机的初始启动阶段启动,并创建网络设备。在只有一个网络接口的计算机里,这一般是eth0设备,不过随后其他设备也能使用。一旦载入接口,下一步骤为网卡获取IP地址就可以跳过。

  正如我们所讨论的,为网卡正确载入驱动包含以下一些条款:

1.内核探测PCI bus。
2.基于信息查找载入到PCI bus的驱动。
3.Udev创建网络接口。
  要修复网络问题,通过确定网卡是否真的在PCI-bus上开始。可以使用lspci命令进行确认。下面是lspci的例子:

JBO:~ # lspci
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)
00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:07.7 System peripheral: VMware Inc Virtual Machine Communication Interface (rev 10)
00:0f.0 VGA compatible controller: VMware Inc Abstract SVGA II Adapter
00:10.0 SCSI storage controller: LSI Logic /
Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)
02:00.0 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB
02:01.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)
02:02.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 02)
02:03.0 USB Controller: VMware Inc Abstract USB2 EHCI Controller
JBO:~ #

  在这里,以太网网卡上找到了PCI地址02:01.0。这个网卡是AMD 79c970(括号之间),并且需要PCnet32 kernel内核模块定位这个网卡。

  下一步是检查反映在/sys架构里的硬件配置。每个PCI设备都在这里存储了自己的配置,本例中还包括网卡配置,它存储在目录/sys/bus/pci/devices/0000:02:01.0里,这反映了设备在PCI bus上地址。下面是该目录内容的例子:

JBO:/sys/bus/pci/devices/0000:02:01.0 # ls -l
total 0
-rw-r--r-- 1 root root 4096 Oct 18 07:08 broken_parity_status
-r--r--r-- 1 root root 4096 Oct 17 07:50 class
-rw-r--r-- 1 root root 256 Oct 17 07:50 config
-r--r--r-- 1 root root 4096 Oct 17 07:50 device
lrwxrwxrwx 1 root root 0 Oct 17 07:51 driver -> ../../../../bus/pci/drivers/pcnet32
-rw------- 1 root root 4096 Oct 18 07:08 enable
lrwxrwxrwx 1 root root 0 Oct 18 07:08 firmware_node ->
../../../LNXSYSTM:00/device:00/PNP0A03:00/device:06/device:08
-r--r--r-- 1 root root 4096 Oct 17 07:50 irq
-r--r--r-- 1 root root 4096 Oct 18 07:08 local_cpulist
-r--r--r-- 1 root root 4096 Oct 18 07:08 local_cpus
-r--r--r-- 1 root root 4096 Oct 17 07:53 modalias
-rw-r--r-- 1 root root 4096 Oct 18 07:08 msi_bus
drwxr-xr-x 3 root root 0 Oct 17 07:50 net
-r--r--r-- 1 root root 4096 Oct 18 07:08 numa_node
drwxr-xr-x 2 root root 0 Oct 18 07:08 power
-r--r--r-- 1 root root 4096 Oct 17 07:50 resource
-rw------- 1 root root 128 Oct 18 07:08 resource0
-r-------- 1 root root 65536 Oct 18 07:08 rom
lrwxrwxrwx 1 root root 0 Oct 17 07:50 subsystem -> ../../../../bus/pci
-r--r--r-- 1 root root 4096 Oct 17 07:51 subsystem_device
-r--r--r-- 1 root root 4096 Oct 17 07:51 subsystem_vendor
-rw-r--r-- 1 root root 4096 Oct 17 07:51 uevent
-r--r--r-- 1 root root 4096 Oct 17 07:50 vendor
JBO:/sys/bus/pci/devices/0000:02:01.0 #

  检修中最有趣的条款是到驱动目录的链接文件。本例中指向pcnet32驱动,并使用lspci提供的信息,我们知道这是正确的驱动。

  多数情况下,Linux安装的驱动运行得很好。有些情况下则不好。当使用Broadcom网卡配置Dell服务器,我发现一些问题,用于巨型帧包的ping命令可能引起内核异常。这样的话,首先怀疑用于网卡的相同内核驱动。一种好的检修方式是从你所使用的驱动版本开始。通过在驱动本身使用modinfo命令查找。下面是在 pcnet32驱动上使用modinfo的例子:

JBO:/ # modinfo pcnet32
filename: /lib/modules/2.6.27.19-5-pae/kernel/drivers/net/pcnet32.ko
license: GPL
description: Driver for PCnet32 and PCnetPCI based ethercards
author: Thomas Bogendoerfer
srcversion: 261B01C36AC94382ED8D984
alias: pci:v00001023d00002000sv*sd*bc02sc00i*
alias: pci:v00001022d00002000sv*sd*bc*sc*i*
alias: pci:v00001022d00002001sv*sd*bc*sc*i*
depends: mii
supported: yes
vermagic: 2.6.27.19-5-pae SMP mod_unload modversions 586
parm: debug:pcnet32 debug level (int)
parm: max_interrupt_work:pcnet32 maximum events handled per interrupt (int)
parm: rx_copybreak:pcnet32 copy breakpoint for copy-only-tiny-frames (int)
parm: tx_start_pt:pcnet32 transmit start point (0-3) (int)
parm: pcnet32vlb:pcnet32 Vesa local bus (VLB) support (0/1) (int)
parm: options:pcnet32 initial option setting(s) (0-15) (array of int)
parm: full_duplex:pcnet32 full duplex setting(s) (1) (array of int)
parm: homepna:pcnet32 mode for 79C978 cards
(1 for HomePNA, 0 for Ethernet, default Ethernet (array of int)

  modinfo命令将为每个模块提供不同的有用信息。如果包括版本号,查看可用的升级版,下载并安装。

  当与一些硬件使用时,你也应该检查使用的是何种模块。如果模块是开源的,通常可用通过Linux社区彻底检查开源模块。如果是这样,你的内核显示受到“污染”。受感染的内核是载入了一些模块的内核,不由Linux内核社区控制。要查找这是否出现在你的系统上,可以检查/proc/sys/kernel/tainted文件里的内容。如果这个文件内容为0,没有载入私有模块。如果有1个,那么载入了专有模块,并且如果你将私有模块替换成开源模块,就可能修复问题。

  本文的信息应该能帮助您解决与驱动相关的问题。在本系列下部分中,我们将介绍如何解决与服务器上IP地址配置相关的问题。

Tags: 网络 , 驱动 , linux
« 程序员玩书法 DevKit 错误 '80004003' 未将对象引用设置到对象的实例»
只显示10条记录相关文章
Dell R710 + RedHat AS 5.4 X64 网卡驱动升级
RHEL5.4和BCM5709网卡驱动问题
将RAID驱动整合到Windows 2003安装盘
linux下检测网关是否连线
linux ip命令介绍
Linux内存占用过高问题的理解
解决 ip_conntrack: table full, dropping ...
通过读proc方式获取Linux系统状态信息
如何在LINUX下踢人
如何让Linux Apache支持中文文件名访问?
Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
Leave a Comment

text(*):

  • View Model: Nomal | List
  • Category

    win7 (17) RSS 2.0 订阅这个分类

    Windows (39) RSS 2.0 订阅这个分类

    Linux (51) RSS 2.0 订阅这个分类

    WEB服务器 (73) RSS 2.0 订阅这个分类

    网站架构 (11) RSS 2.0 订阅这个分类

    存储与缓存 (2) RSS 2.0 订阅这个分类

    数据库技术 (20) RSS 2.0 订阅这个分类

    WEB开发 (22) RSS 2.0 订阅这个分类

    网站建设 (28) RSS 2.0 订阅这个分类

    安全相关 (24) RSS 2.0 订阅这个分类

    软件开发 (3) RSS 2.0 订阅这个分类

    网络观察 (20) RSS 2.0 订阅这个分类

    精彩瞬间 (20) RSS 2.0 订阅这个分类

    心情管理 (49) RSS 2.0 订阅这个分类

    个人收藏 (26) RSS 2.0 订阅这个分类

  • Calendar

    « 2010年07月 »
    日 一 二 三 四 五 六
    1 2 3
    4 5 6 7 8 9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 31
  • Random Aritcle

    java.lang.UnsatisfiedLinkError:/usr/local/jdk/jre/lib/i386/libawt.s libXp.so.6: cannot open shared object

    老公,抱我一分钟,好吗?

    在ATM 我把钱给了她

    403.18 - The specified request cannot be executed from current Application Pool

    linux下配置freeTDS让php支持mssql

    新编大学对联(搞笑版)

    小公司如何留住人

    语言没有好坏之分, 只有应用领域的不同

    Linux环境VNC服务安装、配置与使用

    感谢Google,27xs.com收录过10篇

  • Archives

    2010年07月 (17)

    2010年06月 (68)

    2010年05月 (32)

    2010年04月 (3)

    2010年03月 (8)

    2010年02月 (4)

    2010年01月 (19)

    2009年12月 (45)

    2009年11月 (28)

    2009年10月 (10)

    2009年09月 (15)

    2009年08月 (2)

    更多...

  • Others

    Powered by SaBlog-X.

    Designed by Giki+Kula.

    有梦就有快乐[杨恒飞] All rights reserved.

    陕ICP备07009322号