Команда biosdecode

Команда biosdecode позволяет использовать утилиту с соответствующим именем для получения информации о структурах прошивки BIOS материнской платы компьютера. Данная утилита читает специальный файл устройства /dev/mem, предоставляющий доступ к физической памяти компьютера. Из этого файла утилита извлекает информацию, относящуюся к следующим структурам:

  • SMBIOS (System Management BIOS)
  • DMI (Desktop Management Interface, устаревшая версия System Management BIOS)
  • SYSID
  • PNP (Plug and Play)
  • ACPI (Advanced Configuration and Power Interface)
  • BIOS32 (BIOS32 Service Directory)
  • PIR (PCI IRQ Routing)
  • 32OS (Расширение BIOS32 от Compaq)
  • SNY (Расширение от Sony)
  • VPD (Расширение Vital Product Data от IBM)
  • FJKEYINF (Расширение Application Panel от Fujitsu)
  • MPS (MultiProcessor Specification)

Структуры SMBIOS и DMI могут быть прочитаны с помощью утилиты dmidecode, структура VPD — с помощью утилиты vpddecode. Вообще, изначально функционал данной утилиты был реализован в рамках утилиты dmidecode, но впоследствии он был вынесен в нее ввиду специфичности выводимой информации. Обычному пользователю данная утилита может быть полезна, разве что, для получения информации о наличии таблиц SMBIOS/DMI и поддерживаемых прерываниях. Едва ли его заинтересуют выводимые ею адреса структур и точек входа.

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

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

По умолчанию утилита выводит информацию обо всех структурах BIOS. Если же вам необходимо получить дополнительную информацию о поддерживаемых прерываниях, вы можете воспользоваться параметром --pir full и это единственный параметр, который вам может понадобиться.

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

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

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

$ sudo apt-get install dmidecode

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

$ sudo dnf install dmidecode

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

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

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

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

# biosdecode
# biosdecode 3.3
BIOS32 Service Directory present.
    Revision: 0
    Calling Interface Address: 0x000F0010
PCI Interrupt Routing 1.0 present.
    Router Device: 00:1f.0
    Exclusive IRQs: None
    Compatible Router: 8086:3b00
    Device: 00:01, on-board
    Device: 00:02, on-board
    Device: 00:03, on-board
    Device: 00:04, on-board
    Device: 00:05, on-board
    Device: 00:06, on-board
    Device: 00:1f, on-board
    Device: 00:1d, on-board
    Device: 00:1a, on-board
    Device: 00:1b, on-board
    Device: 00:19, on-board
    Device: 00:18, on-board
    Device: 00:1c, on-board
    Device: 00:16, on-board
    Device: 07:03, on-board
    Device: 05:00, on-board
    Device: 06:00, on-board
    Device: 07:00, slot 1
    Device: 03:00, slot 2
    Device: 01:00, slot 3
    Device: 02:00, slot 4
PNP BIOS 1.0 present.
    Event Notification: Not Supported
    Real Mode 16-bit Code Address: F000:4D02
    Real Mode 16-bit Data Address: F000:0000
    16-bit Protected Mode Code Address: 0x000F4D2A
    16-bit Protected Mode Data Address: 0x000F0000
ACPI 2.0 present.
    OEM Identifier: ACPIAM
    RSD Table 32-bit Address: 0xBF7A0000
    XSD Table 64-bit Address: 0x00000000BF7A0100
SMBIOS 2.6 present.
    Structure Table Length: 2599 bytes
    Structure Table Address: 0x0009F000
    Number Of Structures: 68
    Maximum Structure Size: 187 bytes
Intel Multiprocessor present.
    Specification Revision: 1.1
    Configuration Table Address: 0x000FD340
    Mode: Virtual Wire

В данном случае выведена информация о структурах BIOS32, PIR, ACPI, SMBIOS и MPS.

Вывод информации о поддерживаемых прерываниях

Для вывода информации о поддерживаемых прерываниях следует использовать утилиту с параметром --pir full:

# biosdecode --pir full
# biosdecode 3.3
BIOS32 Service Directory present.
    Revision: 0
    Calling Interface Address: 0x000F0010
PCI Interrupt Routing 1.0 present.
    Router Device: 00:1f.0
    Exclusive IRQs: None
    Compatible Router: 8086:3b00
    Device: 00:01, on-board
        INTA#: Link 0x60, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTB#: Link 0x61, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTC#: Link 0x62, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTD#: Link 0x63, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 00:02, on-board
        INTA#: Link 0x60, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 00:03, on-board
        INTA#: Link 0x60, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTB#: Link 0x61, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTC#: Link 0x62, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTD#: Link 0x63, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 00:04, on-board
        INTA#: Link 0x60, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTB#: Link 0x61, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTC#: Link 0x62, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTD#: Link 0x63, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 00:05, on-board
        INTA#: Link 0x60, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTB#: Link 0x61, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTC#: Link 0x62, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTD#: Link 0x63, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 00:06, on-board
        INTA#: Link 0x60, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTB#: Link 0x61, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTC#: Link 0x62, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTD#: Link 0x63, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 00:1f, on-board
        INTA#: Link 0x62, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTB#: Link 0x63, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTC#: Link 0x62, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 00:1d, on-board
        INTA#: Link 0x6b, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTB#: Link 0x63, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTC#: Link 0x60, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTD#: Link 0x62, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 00:1a, on-board
        INTA#: Link 0x69, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTB#: Link 0x69, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTC#: Link 0x62, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTD#: Link 0x63, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 00:1b, on-board
        INTA#: Link 0x6a, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 00:19, on-board
        INTA#: Link 0x68, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 00:18, on-board
        INTA#: Link 0x60, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 00:1c, on-board
        INTA#: Link 0x61, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTB#: Link 0x60, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTC#: Link 0x62, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTD#: Link 0x63, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 00:16, on-board
        INTA#: Link 0x60, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTB#: Link 0x61, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTC#: Link 0x62, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 07:03, on-board
        INTA#: Link 0x6b, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 05:00, on-board
        INTA#: Link 0x60, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTB#: Link 0x61, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTC#: Link 0x62, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTD#: Link 0x63, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 06:00, on-board
        INTA#: Link 0x61, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTB#: Link 0x62, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTC#: Link 0x63, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTD#: Link 0x60, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 07:00, slot 1
        INTA#: Link 0x68, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTB#: Link 0x69, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTC#: Link 0x6a, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTD#: Link 0x6b, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 03:00, slot 2
        INTA#: Link 0x60, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTB#: Link 0x61, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTC#: Link 0x62, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTD#: Link 0x63, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 01:00, slot 3
        INTA#: Link 0x60, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTB#: Link 0x61, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTC#: Link 0x62, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTD#: Link 0x63, IRQ Bitmap 3 4 6 7 10 11 12 14 15
    Device: 02:00, slot 4
        INTA#: Link 0x60, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTB#: Link 0x61, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTC#: Link 0x62, IRQ Bitmap 3 4 6 7 10 11 12 14 15
        INTD#: Link 0x63, IRQ Bitmap 3 4 6 7 10 11 12 14 15
PNP BIOS 1.0 present.
    Event Notification: Not Supported
    Real Mode 16-bit Code Address: F000:4D02
    Real Mode 16-bit Data Address: F000:0000
    16-bit Protected Mode Code Address: 0x000F4D2A
    16-bit Protected Mode Data Address: 0x000F0000
ACPI 2.0 present.
    OEM Identifier: ACPIAM
    RSD Table 32-bit Address: 0xBF7A0000
    XSD Table 64-bit Address: 0x00000000BF7A0100
SMBIOS 2.6 present.
    Structure Table Length: 2599 bytes
    Structure Table Address: 0x0009F000
    Number Of Structures: 68
    Maximum Structure Size: 187 bytes
Intel Multiprocessor present.
    Specification Revision: 1.1
    Configuration Table Address: 0x000FD340
    Mode: Virtual Wire
Очевидно, что теперь утилита выводит маски прерываний. В остальном вывод утилиты не претерпел каких-либо изменений.