检查 Linux 上的网络硬件状态

检查 Linux 上的网络硬件状态

是否有一个 Linux 工具可以检查硬件板的状态?

在 Windows 中,您有一个硬件对话框,其中显示诸如“您的硬件工作正常”之类的行(我没有英文版本,所以字符串实际上可能不同,但您明白了)。

我想在 Linux 上检查同样的情况。请注意,我知道安装了什么硬件,但我需要知道驱动程序是否已正确加载并且没有错误。

由于我们在硬件完全相同的不同 PC 上安装 Linux,因此我们需要一种快速的方法来了解安装后一切是否正常。因此,如果某个板(例如以太网卡)由于某种原因无法正常工作,我希望收到通知。

我知道我可以使用lsmoddmesg但那不是很“快”。也许有一些神奇的文件可以/proc告诉我(每个板)给定板的所有功能都正常工作?

具体来说,我需要测试以太网板和串行线路状态。

(串行线路驱动程序直接编译到内核中,因此lsmod在这里不太方便)

答案1

对于以太网接口,您可以使用ethtool

# ethtool -t eth0 online
The test result is PASS
The test extra info:
nvram test     (online)          0
link test      (online)          0
register test  (offline)         0
memory test    (offline)         0
loopback test  (offline)         0
interrupt test (offline)         0

这将运行自检,但取决于硬件和驱动程序是否支持。您也可以直接获取其状态。

# ethtool  eth0 
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: g
        Wake-on: g
        Current message level: 0x000000ff (255)
                               drv probe link timer ifdown ifup rx_err tx_err
        Link detected: yes

这会告诉您连接参数和链接状态。

对于串行线路,udev 规则将加载驱动程序,如果存在设备节点,它将注册它们。/dev/ttyS? 的存在本身就表明那里有硬件,并且它通过了健全性测试。Linux 驱动程序会进行测试,如果未通过,则不会注册该设备。但要真正了解它是否有效,需要使用环回插头进行测试。

哦,您还可以使用 ssetserial命令来获取有关串行端口的信息。

# setserial /dev/ttyS0
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4

该信息的存在表明您拥有该串行端口硬件。

答案2

测试绝对是正确的答案。任何硬件都可能出现故障。此外,它经常会以一种看起来还在工作的方式出现故障,直到你尝试使用它。除了某些情况(例如高负载)外,它可能工作正常。考虑到这一点,很明显 Windows 说“此硬件工作正常”是没有用的。

如果您管理的是一套中等规模的硬件,那么进行某种形式的磨合是必不可少的。运行几个小时的 CPU 密集型任务,将大量数据写入磁盘并读回以确保其正确无误,用流量使网卡饱和并检查是否丢失数据包。这是唯一可以确保的方法。

此外,一定要在机器的整个使用寿命期间运行类似(但可能规模较小)的检查。使用 nagios 之类的工具,这样一旦出现问题,您就会收到警报。硬件经常会出故障。

相关内容