Linux. Информация о железе

24.09.2023

Теги: CLILinuxКоманда

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

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

Устройства подключаются к материнской плате несколькими способами. Это может быть шина PCI, используется для многих основных компонентов компьютера, например, видеокарты, звуковой карты, сетевого адаптера. Еще может использоваться USB, этот тип подключения чаще всего применяется для внешних устройств вроде веб-камеры, клавиатуры, мыши. Жесткие диски не подключаются по PCI, для них существует отдельный интерфейс SCSI (Small Computer System Interface).

PCI шина является главной, к ней подключены другие контроллеры, в том числе USB и SCSI. Такое разделение необходимо, потому что это устройства разного типа, им нужно передавать разное количество информации, нужна разная скорость передачи и даже разное напряжение питания. Для просмотра каждого из типов устройств есть отдельная утилита — lspci, lsusb, lsscsi, lscpu.

Утилита lspci

Позволяет посмотреть устройства, подключенные по шине PCI. В первой колонке показывается адрес устройства на шине PCI, во второй — тип устройства, далее — производитель и описание.

$ lspci
00:00.0 Host bridge: Intel Corporation Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register (rev 0e)
00:02.0 VGA compatible controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 0e)
00:13.0 SATA controller: Intel Corporation Atom Processor E3800 Series SATA AHCI Controller (rev 0e)
00:14.0 USB controller: Intel Corporation Atom Processor Z36xxx/Z37xxx, Celeron N2000 Series USB xHCI (rev 0e)
00:1a.0 Encryption controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine (rev 0e)
00:1b.0 Audio device: Intel Corporation Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller (rev 0e)
00:1c.0 PCI bridge: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 1 (rev 0e)
00:1c.1 PCI bridge: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 2 (rev 0e)
00:1c.2 PCI bridge: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 3 (rev 0e)
00:1c.3 PCI bridge: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 4 (rev 0e)
00:1f.0 ISA bridge: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Power Control Unit (rev 0e)
00:1f.3 SMBus: Intel Corporation Atom Processor E3800/CE2700 Series SMBus Controller (rev 0e)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller...
03:00.0 Network controller: Broadcom Inc. and subsidiaries BCM43224 802.11a/b/g/n (rev 01)
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller...

Опция -v показывает более подробную информацию, опция -vv — еще более подробную.

Утилита lsusb

Хотя контроллер USB подключен к PCI, утилита lspci показывает только сам контроллер, для просмотра устройств нужна утилита lsusb.

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 2109:8817 VIA Labs, Inc. USB Billboard Device
Bus 001 Device 004: ID 8516:13ab Telink Wireless Receiver
Bus 001 Device 003: ID 2109:2817 VIA Labs, Inc. USB2.0 Hub
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Утилита lsscsi

SCSI контроллер тоже подключен к PCI, а к нему уже подключаются жесткие диски и оптические приводы. Для просмотра этих устройств предназначена утилита lsscsi.

$ lsscsi
[1:0:0:0]    cd/dvd  VBOX     CD-ROM           1.0   /dev/sr0
[2:0:0:0]    disk    ATA      VBOX HARDDISK    1.0   /dev/sda
[3:0:0:0]    disk    ATA      VBOX HARDDISK    1.0   /dev/sdb
[4:0:0:0]    disk    ATA      VBOX HARDDISK    1.0   /dev/sdc
$ lsscsi --classic
Attached devices:
Host: scsi1 Channel: 00 Target: 00 Lun: 00
  Vendor: VBOX     Model: CD-ROM           Rev: 1.0
  Type:   CD-ROM                           ANSI SCSI revision: 05
Host: scsi2 Channel: 00 Target: 00 Lun: 00
  Vendor: ATA      Model: VBOX HARDDISK    Rev: 1.0
  Type:   Direct-Access                    ANSI SCSI revision: 05
Host: scsi3 Channel: 00 Target: 00 Lun: 00
  Vendor: ATA      Model: VBOX HARDDISK    Rev: 1.0
  Type:   Direct-Access                    ANSI SCSI revision: 05
Host: scsi4 Channel: 00 Target: 00 Lun: 00
  Vendor: ATA      Model: VBOX HARDDISK    Rev: 1.0
  Type:   Direct-Access                    ANSI SCSI revision: 05

Утилита lscpu

Процессор подключен к отдельному слоту на материнской плате, и для просмотра информации о нем используется утилита lscpu.

$ lscpu
Архитектура:            x86_64
  CPU op-mode(s):       32-bit, 64-bit
  Address sizes:        36 bits physical, 48 bits virtual
  Порядок байт:         Little Endian
CPU(s):                 2
  On-line CPU(s) list:  0,1
ID прроизводителя:      GenuineIntel
  Имя модели:           Intel(R) Celeron(R) CPU  N2830  @ 2.16GHz
    Семейство ЦПУ:      6
    Модель:             55
    Потоков на ядро:    1
    Ядер на сокет:      2
    Сокетов:            1
    Степпинг:           8
    CPU max MHz:        2165,8000
    CPU min MHz:        499,8000
    BogoMIPS:           4333.33
    Флаги:              fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi
                        mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc ar ch_perfmon pebs bts
                        rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf tsc_known_freq pni 
                        pclmulqdq dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt
                        tsc_deadline_timer rdrand lahf_lm 3dnowprefetch epb pti ibrs ibpb stibp tsc_adjust smep
                        erms dtherm arat md_clear
Caches (sum of all):
  L1d:                  48 KiB (2 instances)
  L1i:                  64 KiB (2 instances)
  L2:                   1 MiB (1 instance)
NUMA:
  NUMA node(s):         1
  NUMA node0 CPU(s):    0,1
Vulnerabilities:
  Gather data sampling: Not affected
  Itlb multihit:        Not affected
  L1tf:                 Not affected
  Mds:                  Mitigation; Clear CPU buffers; SMT disabled
  Meltdown:             Mitigation; PTI
  Mmio stale data:      Unknown: No mitigations
  Retbleed:             Not affected
  Spec store bypass:    Not affected
  Spectre v1:           Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:           Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP disabled, RSB filling, PBRSB-eIBRS...
  Srbds:                Not affected
  Tsx async abort:      Not affected

Утилита lshw

Если запустить lshw без дополнительных опций, то утилита выведет очень много информации. Вывод первых 15 строк отчета для вируальной машины VirtualBox выглядит так.

$ sudo lshw | head -n 15
ubuntu-server
    description: Computer
    product: VirtualBox
    vendor: innotek GmbH
    version: 1.2
    serial: 0
    width: 64 bits
    capabilities: smbios-2.5 dmi-2.5 vsyscall32
    configuration: family=Virtual Machine uuid=55303467-3fce-463a-84bf-047bbf1fdc20
  *-core
       description: Motherboard
       product: VirtualBox
       vendor: Oracle Corporation
       physical id: 0
       version: 1.2

Для получения информации об определенной подсистеме нужно использовать опцию -class, который может принимать одно из следующих значений — address, bridge, bus, communication, disk, display, generic, input, memory, multimedia, network, power, printer, processor, storage, system, tape и volume.

$ sudo lshw -short -class processor # процессор
H/W path             Устройство  Класс     Описание
==========================================================================
/0/34                                      processor      Intel(R) Celeron(R) CPU  N2830  @ 2.16GHz
$ sudo lshw -short -class memory # память
H/W path          Device      Class       Description
=====================================================
/0/0                          memory      128KiB BIOS
/0/1                          memory      2GiB System memory
$ sudo lshw -short -class network # сетевые интерфейсы
H/W path             Устройство  Класс     Описание
==========================================================================
/0/100/1c.1/0        enp2s0                network        RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
/0/100/1c.2/0        wlp3s0b1              network        BCM43224 802.11a/b/g/n
$ sudo lshw -short -class communication # порты
H/W path             Устройство  Класс     Описание
==========================================================================
/0/100/1f/4                                communication  PnP device PNP0501
/0/100/1f/5                                communication  PnP device PNP0501
$ sudo lshw -short -class disk # диски
H/W path             Устройство  Класс     Описание
==========================================================================
/0/100/13/0.0.0      /dev/sda              disk           128GB Kston 128GB
$ sudo lshw -short -class bus # шины
H/W path             Устройство  Класс     Описание
==========================================================================
/0                                         bus            PB_1900A
/0/100/14                                  bus            Atom Processor Z36xxx/Z37xxx, Celeron N2000 Series USB xHCI
/0/100/14/0          usb1                  bus            xHCI Host Controller
/0/100/14/0/2                              bus            USB 2.0 Hub
/0/100/14/0/2/4                            bus            USB2.0 Hub
/0/100/14/1          usb2                  bus            xHCI Host Controller
/0/100/1f.3                                bus            Atom Processor E3800/CE2700 Series SMBus Controller
$ sudo lshw -short -class system # материнская плата и plug-and-play
H/W path             Устройство  Класс     Описание
==========================================================================
                                           system         To be filled by O.E.M. (To be filled by O.E.M.)
/0/100/1f/0                                system         PnP device PNP0b00
/0/100/1f/1                                system         PnP device PNP0c02
/0/100/1f/2                                system         PnP device PNP0c02
/0/100/1f/6                                system         PnP device PNP0c02

Опции -short и -businfo задают формат вывода.

Утилита dmidecode

Утилита читает специальную файловую систему sysfs и/или специальный файл устройства /dev/mem, предоставляющий доступ к физической памяти компьютера. Из них утилита извлекает данные, связанные с таблицей DMI. Сама таблица DMI или Desktop Management Interface является структурой данных, содержащей информацию об аппаратном обеспечении.

По умолчанию утилита выводит все строки таблицы DMI

$ sudo dmidecode | head -50
dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
51 structures occupying 2029 bytes.
Table at 0x000ECB70.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
        Vendor: American Megatrends Inc.
        Version: 5.6.5
        Release Date: 02/20/2019
        Address: 0xF0000
        Runtime Size: 64 kB
        ROM Size: 1 MB
        Characteristics:
                PCI is supported
                BIOS is upgradeable
                BIOS shadowing is allowed
                Boot from CD is supported
                Selectable boot is supported
                BIOS ROM is socketed
                EDD is supported
                5.25"/1.2 MB floppy services are supported (int 13h)
                3.5"/720 kB floppy services are supported (int 13h)
                3.5"/2.88 MB floppy services are supported (int 13h)
                Print screen service is supported (int 5h)
                8042 keyboard services are supported (int 9h)
                Serial services are supported (int 14h)
                Printer services are supported (int 17h)
                ACPI is supported
                USB legacy is supported
                BIOS boot specification is supported
                Targeted content distribution is supported
                UEFI is supported
        BIOS Revision: 5.6

Handle 0x0001, DMI type 1, 27 bytes
System Information
        Manufacturer: To be filled by O.E.M.
        Product Name: To be filled by O.E.M.
        Version: To be filled by O.E.M.
        Serial Number: To be filled by O.E.M.
        UUID: 03000200-0400-0500-0006-000700080009
        Wake-up Type: Power Switch
        SKU Number: To be filled by O.E.M.
        Family: To be filled by O.E.M.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
        Manufacturer: AMI Corporation

Можно указать тип интересующего аппаратного устройства с помощью опции -t.

0  BIOS
1  Система
2  Материнская плата
3  Корпус
4  Процессор
5  Контроллер памяти
6  Модуль памяти
7  Кэш
8  Коннекторы портов
9  Системные слоты
10  Интегрированные устройства
11  Строки OEM
12  Параметры системной конфигурации
13  Язык BIOS
14  Ассоциации групп
15  Журнал системных событий
16  Массив физической памяти
17  Устройство памяти
18  32-битные ошибки доступа к памяти
19  Отображенный адрес массива памяти
20  Отображенный адрес устройства памяти
21  Встроенное указывающее устройство
22  Батарея мобильного устройства
23  Устройство сброса состояния системы
24  Устройства безопасности
25  Управление питанием системы
26  Датчик напряжения
27  Устройство охлаждения
28  Датчик температуры
29  Датчик тока
30  Механизм удаленного доступа
31  Сервисы проверки целостности данных загрузки
32  Загрузочные устройства
33  64-битные ошибки доступа к памяти
34  Устройство управления
35  Компонент устройства управления
36  Граничные данные устройства управления
37  Канал памяти
38  Устройство IPMI
39  Блок питания
40  Дополнительная информация
41  Дополнительная информация об интегрированных устройствах
42  Хост-интерфейс контроллера управления
126  Деактивированная строка
127  Маркер конца таблицы

Для примера, посмотрим информацию о материнской плате и процессоре

$ sudo dmidecode -t 2
dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
        Manufacturer: AMI Corporation
        Product Name: PB_1900A
        Version: To be filled by O.E.M.
        Serial Number: To be filled by O.E.M.
        Asset Tag: To be filled by O.E.M.
        Features:
                Board is a hosting board
                Board is replaceable
        Location In Chassis: To be filled by O.E.M.
        Chassis Handle: 0x0003
        Type: Motherboard
        Contained Object Handles: 0
$ sudo dmidecode -t 4
dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.

Handle 0x0034, DMI type 4, 42 bytes
Processor Information
        Socket Designation: SOCKET 0
        Type: Central Processor
        Family: Celeron
        Manufacturer: Intel
        ID: 78 06 03 00 FF FB EB BF
        Signature: Type 0, Family 6, Model 55, Stepping 8
        Flags:
                FPU (Floating-point unit on-chip)
                VME (Virtual mode extension)
                DE (Debugging extension)
                PSE (Page size extension)
                TSC (Time stamp counter)
                MSR (Model specific registers)
                PAE (Physical address extension)
                MCE (Machine check exception)
                CX8 (CMPXCHG8 instruction supported)
                APIC (On-chip APIC hardware supported)
                SEP (Fast system call)
                MTRR (Memory type range registers)
                PGE (Page global enable)
                MCA (Machine check architecture)
                CMOV (Conditional move instruction supported)
                PAT (Page attribute table)
                PSE-36 (36-bit page size extension)
                CLFSH (CLFLUSH instruction supported)
                DS (Debug store)
                ACPI (ACPI supported)
                MMX (MMX technology supported)
                FXSR (FXSAVE and FXSTOR instructions supported)
                SSE (Streaming SIMD extensions)
                SSE2 (Streaming SIMD extensions 2)
                SS (Self-snoop)
                HTT (Multi-threading)
                TM (Thermal monitor supported)
                PBE (Pending break enabled)
        Version: Intel(R) Celeron(R) CPU N2830 @ 2.16GHz
        Voltage: 1.2 V
        External Clock: 83 MHz
        Max Speed: 2400 MHz
        Current Speed: 2160 MHz
        Status: Populated, Enabled
        Upgrade: Socket BGA1155
        L1 Cache Handle: 0x0032
        L2 Cache Handle: 0x0033
        L3 Cache Handle: Not Provided
        Serial Number: Not Specified
        Asset Tag: Fill By OEM
        Part Number: Fill By OEM
        Core Count: 2
        Core Enabled: 2
        Thread Count: 2
        Characteristics:
                64-bit capable

Поиск: CLI • Linux • Команда • lshw • lspci • lsusb • lsscsi • lscpu

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.