Команда dmidecode

Команда dmidecode позволяет использовать утилиту с соответствующим именем для получения информации об аппаратном обеспечении компьютера. Данная утилита читает либо специальную файловую систему sysfs, либо специальный файл устройства /dev/mem, предоставляющий доступ к физической памяти компьютера. Из них утилита извлекает данные, связанные с таблицей DMI. Сама таблица DMI или Desktop Management Interface является структурой данных, содержащей информацию об аппаратном обеспечении компьютера и стандартизированной консорциумом Distributed Management Task Force (DMTF). Иногда ее также называют SMBIOS. Сама же утилита может быть полезна для составления списка аппаратного обеспечения компьютера или проверки корректности подключения плат расширения. Преимуществом использования данной таблицы является скорость получения информации об аппаратном обеспечении (так как не приходится опрашивать каждое из устройств), недостатком — не всегда корректная информация. В некоторых случаях таблица может содержать не только характеристики установленного аппаратного обеспечения, но и список совместимых устройств.

Базовый синтаксис команды выглядит следующим образом:

# dmidecode [параметры]

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

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

  • Хэндл (Handle) — уникальный двухбайтовый идентификатор, позволяющий строкам ссылаться друг на друга.
  • Тип (type) — однобайтовый идентификатор аппаратного устройства, в соответствии со спецификацией.
  • Размер (size) — однобайтовое значение размера строки таблицы без учета текстовых строк.
  • Декодированные значения — полезная информация, выводимая утилитой.

В случае необходимости пользователь может указать тип интересующего аппаратного устройства с помощью параметра -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 Маркер конца таблицы

Утилита принимает не только приведенные выше идентификаторы, но и кодовые слова, являющиеся псевдонимами для одного или нескольких идентификаторов.

Кодовое слово Идентификаторы
bios 1, 13
system 1, 12, 15, 23, 32
baseboard 2, 10, 41
chassis 3
processor 4
memory 5, 6, 16, 17
cache 7
connector 8
slot 9

Также пользователь может передать утилите параметр -s одну из приведенных ниже строк запроса в том случае, если его интересует значение лишь одного из наиболее востребованных параметров из таблицы DMI.

Запрос Информация
bios-vendor Разработчик BIOS
bios-version Текущая версия BIOS
bios-release-date Дата выпуска текущей версии BIOS
bios-revision Ревизия текущей версии BIOS
firmware-revision Ревизия прошивки
system-manufacturer Производитель ПК
system-product-name Название модели ПК
system-version Версия ПК
system-serial-number Серийный номер ПК
system-uuid Идентификатор UUID ПК
system-sku-number Артикул ПК
system-family Модельный ряд ПК
baseboard-manufacturer Производитель материнской платы
baseboard-product-name Модель материнской платы
baseboard-version Версия материнской платы
baseboard-serial-number Серийный номер материнской платы
baseboard-asset-tag Метка материнской платы
chassis-manufacturer Производитель корпуса
chassis-type Тип корпуса
chassis-version Версия корпуса
chassis-serial-number Серийный номер корпуса
chassis-asset-tag Метка корпуса
processor-family Семейство процессора
processor-manufacturer Производитель процессора
processor-version Версия процессора
processor-frequency Тактовая частота процессора

Для получения информации об устройстве, связанном с определенным хэндлом, следует использовать параметр -H, а для отказа от вывода избыточной информации — параметр -q.

Установка утилиты

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

Команда для Linux Mint, Ubuntu и Debian:

$ sudo apt-get install dmidecode

Команда для Fedora Workstation:

$ sudo dnf install dmidecode

Примеры использования

Вывод полной информации обо всех устройствах компьютера

Для вывода полной информации обо всех устройствах компьютера достаточно использовать утилиту dmidecode без каких-либо параметров:

# dmidecode
# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 2.6 present.
68 structures occupying 2599 bytes.
Table at 0x0009F000.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
    Vendor: American Megatrends Inc.
    Version: 1.1
    Release Date: 05/27/2010
    Address: 0xF0000
    Runtime Size: 64 kB
    ROM Size: 4 MB
    Characteristics:
        ISA is supported
        PCI is supported
        PNP is supported
        BIOS is upgradeable
        BIOS shadowing is allowed
        ESCD support is available
        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)
        CGA/mono video services are supported (int 10h)
        ACPI is supported
        USB legacy is supported
        LS-120 boot is supported
        ATAPI Zip drive boot is supported
        BIOS boot specification is supported
        Targeted content distribution is supported
    BIOS Revision: 8.16
...
Handle 0x0043, DMI type 127, 4 bytes
End Of Table

Для скрытия технической информации и повышения читаемости вывода достаточно использовать параметр -q:

# dmidecode -q
BIOS Information
    Vendor: American Megatrends Inc.
    Version: 1.1
    Release Date: 05/27/2010
    Address: 0xF0000
    Runtime Size: 64 kB
    ROM Size: 4 MB
    Characteristics:
        ISA is supported
        PCI is supported
        PNP is supported
        BIOS is upgradeable
        BIOS shadowing is allowed
        ESCD support is available
        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)
        CGA/mono video services are supported (int 10h)
        ACPI is supported
        USB legacy is supported
        LS-120 boot is supported
        ATAPI Zip drive boot is supported
        BIOS boot specification is supported
        Targeted content distribution is supported
    BIOS Revision: 8.16

Вывод информации об отдельных типах устройств

Для вывода информации об интересующем пользователя типе устройства достаточно указать идентификатор этого типа:

# dmidecode -t 4
# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 2.6 present.

Handle 0x0004, DMI type 4, 42 bytes
Processor Information
    Socket Designation: CPU
    Type: Central Processor
    Family: Xeon
    Manufacturer: Intel
    ID: E5 06 01 00 FF FB EB BF
    Signature: Type 0, Family 6, Model 30, Stepping 5
    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) Xeon(R) CPU X3430 @ 2.40GHz
    Voltage: Unknown
    External Clock: 133 MHz
    Max Speed: 2400 MHz
    Current Speed: 2400 MHz
    Status: Populated, Enabled
    Upgrade: Other
    L1 Cache Handle: 0x0005
    L2 Cache Handle: 0x0006
    L3 Cache Handle: 0x0007
    Serial Number: To Be Filled By O.E.M.
    Asset Tag: To Be Filled By O.E.M.
    Part Number: To Be Filled By O.E.M.
    Core Count: 4
    Core Enabled: 4
    Thread Count: 4
    Characteristics:
        64-bit capable

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

# dmidecode -t 4 -t 5
# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 2.6 present.

Handle 0x0004, DMI type 4, 42 bytes
Processor Information
    Socket Designation: CPU
    Type: Central Processor
    Family: Xeon
    Manufacturer: Intel
    ID: E5 06 01 00 FF FB EB BF
    Signature: Type 0, Family 6, Model 30, Stepping 5
    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) Xeon(R) CPU X3430 @ 2.40GHz
    Voltage: Unknown
    External Clock: 133 MHz
    Max Speed: 2400 MHz
    Current Speed: 2400 MHz
    Status: Populated, Enabled
    Upgrade: Other
    L1 Cache Handle: 0x0005
    L2 Cache Handle: 0x0006
    L3 Cache Handle: 0x0007
    Serial Number: To Be Filled By O.E.M.
    Asset Tag: To Be Filled By O.E.M.
    Part Number: To Be Filled By O.E.M.
    Core Count: 4
    Core Enabled: 4
    Thread Count: 4
    Characteristics:
        64-bit capable

Handle 0x0008, DMI type 5, 24 bytes
Memory Controller Information
    Error Detecting Method: 64-bit ECC
    Error Correcting Capabilities:
        Single-bit Error Correcting
    Supported Interleave: One-way Interleave
    Current Interleave: One-way Interleave
    Maximum Memory Module Size: 4096 MB
    Maximum Total Memory Size: 16384 MB
    Supported Speeds:
        Other
    Supported Memory Types:
        DIMM
        SDRAM
    Memory Module Voltage: 3.3 V
    Associated Memory Slots: 4
        0x0009
        0x000A
        0x000B
        0x000C
    Enabled Error Correcting Capabilities:
        Single-bit Error Correcting

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

Разумеется, никто не запрещает использовать кодовые слова:

# dmidecode -t slot
# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 2.6 present.

Handle 0x0025, DMI type 9, 17 bytes
System Slot Information
    Designation: AGP
    Type: 32-bit AGP 4x
    Current Usage: In Use
    Length: Short
    ID: 0
    Characteristics:
        3.3 V is provided
        Opening is shared
        PME signal is supported
    Bus Address: ffff:ff:05.0

Handle 0x0026, DMI type 9, 17 bytes
System Slot Information
    Designation: PCI1
    Type: 32-bit PCI
    Current Usage: In Use
    Length: Short
    ID: 1
    Characteristics:
        3.3 V is provided
        Opening is shared
        PME signal is supported
    Bus Address: ffff:07:00.0

В данном случае выведена информация о слотах PCI (не PCI-Express), причем в первом слоте «размещена» интегрированная серверная видеокарта. Разумеется, на материнской плате имеются слоты PCI-Express, но это, к сожалению, не отражено в выводе утилиты.

Ну и, конечно же, вы можете использовать хэндл устройства, если знаете его. Для этой цели следует использовать параметр -H:

# dmidecode -H 0x0027
# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 2.6 present.
68 structures occupying 2599 bytes.
Table at 0x0009F000.

Handle 0x0027, DMI type 11, 5 bytes
OEM Strings
    String 1: Intel Lynnfield/Foxhollow/PCH
    String 2: Supermicro motherboard-X8 Series

В результате выводятся соответствующие хэндлу строки таблицы, в данном случае — OEM строки.

Вывод отдельных значений параметров таблицы DMI

Для вывода отдельных значений параметров таблицы DMI следует использовать параметр -s и строку запроса. Например, можно получить информацию о BIOS (его версии, ревизии, дате релиза и компании-разработчике):

# dmidecode -s bios-version
1.1
# dmidecode -s bios-revision
8.16
# dmidecode -s bios-release-date
05/27/2010
# dmidecode -s bios-vendor
American Megatrends Inc.

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