Linux. Информация о железе
Одной из задач операционной системы является прямое общение с оборудованием и предоставление пользователю интерфейсов для работы с ним. Работа с каждой отдельной железкой производится по определенному протоколу, который реализован в виде драйвера. Ядро 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