3

Существует ли инструмент Linux для проверки состояния аппаратных плат?

В Windows у вас есть аппаратный диалог, который показывает вам строки типа "ваше оборудование работает правильно" (у меня нет английской версии, поэтому строка может на самом деле отличаться, но вы поняли).

Я хотел бы проверить то же самое на Linux. Обратите внимание, что я знаю, какое оборудование установлено, но мне нужно знать, что драйвер был загружен правильно и что ошибок нет.

Поскольку мы устанавливаем Linux на разных компьютерах с одинаковым оборудованием, нам нужен быстрый способ узнать, что все работает после установки. Поэтому, если плата (скажем, карта Ethernet) по какой-то причине не работает, я бы хотел получить уведомление об этом.

Я знаю, что могу использовать lsmod и dmesg но это не очень "быстро". Может быть, в /proc есть какой-то магический файл, который говорит мне (для каждой платы), что на данной доске все работает правильно?

В частности, мне нужно проверить платы Ethernet и статус последовательной линии.

(драйвер последовательной линии компилируется непосредственно в ядро, поэтому lsmod здесь не очень удобен)

2 ответа2

1

Тестирование, безусловно, правильный ответ. Любая часть оборудования может и не получится. Кроме того, часто происходит сбой таким образом, что все равно выглядит так, как будто он работает, пока вы не попытаетесь его использовать. Это может работать нормально, за исключением некоторых случаев, таких как высокая нагрузка. Имея это в виду, ясно, что Windows говорит, что "это оборудование работает должным образом", бесполезно.

Если вы управляете даже умеренно большим набором аппаратного обеспечения, очень важно выполнить какую-то запись. Выполняйте задачи с интенсивным использованием процессора в течение нескольких часов, записывайте огромные объемы данных на диск и считывайте их обратно, чтобы убедиться в их корректности, насыщайте сетевую карту трафиком и проверяйте наличие пропущенных пакетов. Это единственный способ быть уверенным.

Кроме того, обязательно выполняйте подобные (но, возможно, меньшие) проверки в течение всего срока службы машины. Используйте что-то вроде nagios, чтобы получать оповещения, как только что-то не так. Аппаратный сбой, и он часто отказывает.

1

Для интерфейсов Ethernet вы можете использовать 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 выполняет тестирование, и устройство не будет зарегистрировано, если оно не пройдет. Но чтобы действительно знать, работает ли он, потребуется проверить его с помощью заглушки.

О, и вы также можете использовать команду s setserial чтобы получить информацию о последовательном порте.

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

Наличие этой информации говорит о том, что у вас есть оборудование для последовательного порта.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .