Команда biosdecode позволяет использовать утилиту с соответствующим именем для получения информации о структурах прошивки BIOS материнской платы компьютера. Данная утилита читает специальный файл устройства /dev/mem, предоставляющий доступ к физической памяти компьютера. Из этого файла утилита извлекает информацию, относящуюся к следующим структурам:
Структуры 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 достаточно использовать утилиту 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
Очевидно, что теперь утилита выводит маски прерываний. В остальном вывод утилиты не претерпел каких-либо изменений.