Диагностика железа в Linux

В этом посте я хочу немного рассказать об утилитах, которые помогают в диагностике аппаратной части компьютера.

Предположим, вы установили свежий дистрибутив Debian Linux на свой компьютер. Как посмотреть, какое «железо» определилось и вполне нормально работает, а какое не определилось, например, из-за отсутствующих, либо неправильных драйверов, и осталось «за бортом»?

Для начала можно посмотреть вывод dmesg на предмет ошибок. Например, так:

remontka@workstation:~$ dmesg | grep ail
[ 0.000000] 1149MB HIGHMEM available.
[ 0.000000] 889MB LOWMEM available.
[ 0.000000] Memory: 2054636k/2087936k available (2765k kernel code, 32112k reserved, 1473k data, 404k init, 1175912k highmem)
[ 0.181825] pci0000:00: ACPI _OSC request failed (AE_NOT_FOUND), returned control mask: 0x1d
[ 14.185611] ivtv0: Failed to initialize on device vbi0
[ 14.185764] ivtv0: Failed to initialize on device video24
[ 14.186058] ivtv0: Failed to initialize on device video0
[ 14.187153] ivtv0: Failed to initialize on device radio0
[ 14.188474] ivtv0: Failed to initialize on device video32

Как видно из лога, устройство ivtv0 не инициализировалось корректно. Проведём поиск по нему:

remontka@workstation:~$ dmesg | grep ivtv0
[ 12.197939] ivtv0: Initializing card 0
[ 12.197951] ivtv0: Autodetected AVerTV MCE 116 Plus card (cx23416 based)
[ 12.198247] ivtv0: Unreasonably low latency timer, setting to 64 (was 32)
[ 12.867609] ivtv0: Registered device video0 for encoder MPG (4096 kB)
[ 12.867728] ivtv0: Registered device video32 for encoder YUV (2048 kB)
[ 12.867829] ivtv0: Registered device vbi0 for encoder VBI (1024 kB)
[ 12.867939] ivtv0: Registered device video24 for encoder PCM (320 kB)
[ 12.868090] ivtv0: Registered device radio0 for encoder radio
[ 12.868097] ivtv0: Initialized card: AVerTV MCE 116 Plus
[ 13.555759] ivtv0: Unable to open firmware v4l-cx2341x-enc.fw (must be 376836 bytes)
[ 13.555973] ivtv0: Did you put the firmware in the hotplug firmware directory?
[ 13.556176] ivtv0: Retry loading firmware
[ 14.185234] ivtv0: Unable to open firmware v4l-cx2341x-enc.fw (must be 376836 bytes)
[ 14.185425] ivtv0: Did you put the firmware in the hotplug firmware directory?
[ 14.185611] ivtv0: Failed to initialize on device vbi0
[ 14.185764] ivtv0: Failed to initialize on device video24
[ 14.186058] ivtv0: Failed to initialize on device video0
[ 14.187153] ivtv0: Failed to initialize on device radio0
[ 14.188474] ivtv0: Failed to initialize on device video32

Исходя из этого становится понятно, что проблема с загрузкой драйвера ТВ-тюнера AVerTV MCE 116 Plus.

Теперь следующий вопрос: как посмотреть, какие вообще железяки установлены на компьютере? На помощь приходят как минимум две утилиты: lspci и hwinfo.

lspci выводит список всех PCI устройств:

remontka@workstation:~$ lspci
00:00.0 Host bridge: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub (rev 02)
00:02.0 VGA compatible controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02)
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 01)
00:1c.2 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 3 (rev 01)
00:1c.3 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 4 (rev 01)
00:1d.0 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 01)
00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 IDE interface: Intel Corporation N10/ICH7 Family SATA IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 01)
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 02)
04:00.0 Multimedia video controller: Internext Compression Inc iTVC16 (CX23416) MPEG-2 Encoder (rev 01)

hwinfo — очень мощная утилита, проверяющая аппаратную часть компьютера и выводящая подробную информацию. Вывод общей информации занимает очень много строк, поэтому приводить его я не буду. Но вот, например, вывод информации о видеоадаптерах:

root@workstation:~# hwinfo —gfxcard
> hal.1: read hal dataprocess 13126: arguments to dbus_move_error() were incorrect, assertion «(dest) == NULL || !dbus_error_is_set ((dest))» failed in file ../../dbus/dbus-errors.c line 280.
This is normally a bug in some application using the D-Bus library.
libhal.c 3483 : Error unsubscribing to signals, error=The name org.freedesktop.Hal was not provided by any .service files
11: PCI 02.0: 0300 VGA compatible controller (VGA)
[Created at pci.318]
Unique ID: _Znp.8qBs1tRfgWE
SysFS ID: /devices/pci0000:00/0000:00:02.0
SysFS BusID: 0000:00:02.0
Hardware Class: graphics card
Model: «Intel 945G»
Vendor: pci 0x8086 «Intel Corporation»
Device: pci 0x2772 «945G»
SubVendor: pci 0x8086 «Intel Corporation»
SubDevice: pci 0x464c
Revision: 0x02
Driver: «i915»
Driver Modules: «drm»
Memory Range: 0x94200000-0x9427ffff (rw,non-prefetchable)
I/O Ports: 0x20c0-0x20c7 (rw)
Memory Range: 0x80000000-0x8fffffff (ro,non-prefetchable)
Memory Range: 0x94280000-0x942bffff (rw,non-prefetchable)
IRQ: 16 (7231 events)
I/O Ports: 0x3c0-0x3df (rw)
Module Alias: «pci:v00008086d00002772sv00008086sd0000464Cbc03sc00i00»
Driver Info #0:
XFree86 v4 Server Module: intel
Driver Info #1:
XFree86 v4 Server Module: intel
3D Support: yes
Extensions: dri
Config Status: cfg=new, avail=yes, need=no, active=unknown

26: PCI 400.0: 0400 Multimedia video controller
[Created at pci.318]
Unique ID: YmUS.v0ozN6Ggen3
Parent ID: 6NW+.mDO_hc8hWX6
SysFS ID: /devices/pci0000:00/0000:00:1e.0/0000:04:00.0
SysFS BusID: 0000:04:00.0
Hardware Class: graphics card
Model: «Internext Compression iTVC16 (CX23416) MPEG-2 Encoder»
Vendor: pci 0x4444 «Internext Compression Inc»
Device: pci 0x0016 «iTVC16 (CX23416) MPEG-2 Encoder»
SubVendor: pci 0x1461 «Avermedia Technologies Inc»
SubDevice: pci 0xc439
Revision: 0x01
Driver: «ivtv»
Driver Modules: «ivtv»
Memory Range: 0x90000000-0x93ffffff (ro,non-prefetchable)
IRQ: 21 (no events)
Module Alias: «pci:v00004444d00000016sv00001461sd0000C439bc04sc00i00»
Driver Info #0:
Driver Status: ivtv is active
Driver Activation Cmd: «modprobe ivtv»
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #20 (PCI bridge)

Primary display adapter: #11

Информация о состоянии драйвера может быть очень полезна при диагностике неполадок.

EnglishRussianUkrainian