Linux: Using dmidecode to read computer bios information
biosdecode is a command line utility to parses the BIOS memory and prints information about all structures (or entry points) it knows of. You can find out more information about your hardware such as:
=> IPMI Device
=> Type of memory and speed
=> Chassis Information
=> Temperature Probe
=> Cooling Device
=> Electrical Current Probe
=> Processor and Memory Information
=> Serial numbers
=> BIOS version
=> PCI / PCIe Slots and Speed
=> Much more
biosdecode parses the BIOS memory and prints the following information about all structures :
=> SMBIOS (System Management BIOS)
=> DMI (Desktop Management Interface, a legacy version of SMBIOS)
=> SYSID
=> PNP (Plug and Play)
=> ACPI (Advanced Configuration and Power Interface)
=> BIOS32 (BIOS32 Service Directory)
=> PIR (PCI IRQ Routing)
=> 32OS (BIOS32 Extension, Compaq-specific)
=> VPD (Vital Product Data, IBM-specific)
=> FJKEYINF (Application Panel, Fujitsu-specific)
In this tip you will learn about decoding BIOS data (dumping a computer’s DMI ) and getting all information about computer hardware without rebooting the server.
More about the DMI tables
The DMI table doesn’t only describe what the system is currently made of, it also can report the possible evolutions such as the fastest supported CPU or the maximal amount of memory supported.
dmidecode – Read biosdecode data in a human-readable format
Data provided by biosdecode is not in a human-readable format. You need to use dmidecode command for dumping a computer’s DMI (SMBIOS) table contents on screen. This table contains a description of the system’s hardware components, as well as other useful pieces of information such as serial numbers and BIOS revision. Thanks to this table, you can retrieve this information without having to probe for the actual hardware.
Task: Display information about IPMI Device
# dmidecode --type 38
Output:
# dmidecode 2.7 SMBIOS 2.4 present. Handle 0x0029, DMI type 38, 18 bytes. IPMI Device Information Interface Type: KCS (Keyboard Control Style) Specification Version: 2.0 I2C Slave Address: 0x10 NV Storage Device: Not Present Base Address: 0x0000000000000CA2 (I/O) Register Spacing: Successive Byte Boundaries
Task: Display information about PCI / PCIe Slots
# dmidecode --type 9
# dmidecode 2.7 SMBIOS 2.4 present. Handle 0x000E, DMI type 9, 13 bytes. System Slot Information Designation: PCIX#1-133MHz Type: 64-bit PCI-X Current Usage: Available Length: Long ID: 1 Characteristics: 3.3 V is provided Handle 0x000F, DMI type 9, 13 bytes. System Slot Information Designation: PCIX#2-100MHz Type: 64-bit PCI-X Current Usage: Available Length: Long ID: 2 Characteristics: 3.3 V is provided Handle 0x0010, DMI type 9, 13 bytes. System Slot Information Designation: PCIE#3-x8 Type: Other Current Usage: Available Length: Other Characteristics: 3.3 V is provided Handle 0x0011, DMI type 9, 13 bytes. System Slot Information Designation: PCIE#4-x8 Type: Other Current Usage: Available Length: Other Characteristics: 3.3 V is provided Handle 0x0012, DMI type 9, 13 bytes. System Slot Information Designation: PCIE#5-x8 Type: Other Current Usage: Available Length: Other Characteristics: 3.3 V is provided
Task: Find out Information about BIOS
# dmidecode --type 0
Output:
# dmidecode 2.7 SMBIOS 2.4 present. Handle 0x0000, DMI type 0, 24 bytes. BIOS Information Vendor: Phoenix Technologies LTD Version: 6.00 Release Date: 01/26/2007 Address: 0xE56C0 Runtime Size: 108864 bytes ROM Size: 1024 kB Characteristics: 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 EDD is supported 3.5"/2.88 MB floppy services are supported (int 13h) 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
Understanding BIOS keywords
dmidecode --type {KEYWORD / Number }
You need to pass dmidecode following keywords:
- bios
- system
- baseboard
- chassis
- processor
- memory
- cache
- connector
- slot
All DMI types you need to use with dmidecode –type {Number}:
# Type | Short Description |
0 | BIOS |
1 | System |
2 | Base Board |
3 | Chassis |
4 | Processor |
5 | Memory Controller |
6 | Memory Module |
7 | Cache |
8 | Port Connector |
9 | System Slots |
10 | On Board Devices |
11 | OEM Strings |
12 | System Configuration Options |
13 | BIOS Language |
14 | Group Associations |
15 | System Event Log |
16 | Physical Memory Array |
17 | Memory Device |
18 | 32-bit Memory Error |
19 | Memory Array Mapped Address |
20 | Memory Device Mapped Address |
21 | Built-in Pointing Device |
22 | Portable Battery |
23 | System Reset |
24 | Hardware Security |
25 | System Power Controls |
26 | Voltage Probe |
27 | Cooling Device |
28 | Temperature Probe |
29 | Electrical Current Probe |
30 | Out-of-band Remote Access |
31 | Boot Integrity Services |
32 | System Boot |
33 | 64-bit Memory Error |
34 | Management Device |
35 | Management Device Component |
36 | Management Device Threshold Data |
37 | Memory Channel |
38 | IPMI Device |
39 | Power Supply |
Display Power supply information, enter:
# dmidecode --type 39
Display CPU information, enter:
# dmidecode --type processor
Read man page for more information:
$ man dmidecode
By: V. Gite