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 BoundariesTask: 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 providedTask: 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 supportedUnderstanding 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
Other tools and commands to gather hardware information
- Linux list hardware information with lshw command
- dconf – Linux command to gather hardware and software snapshot for troubleshooting
- Linux display system hardware status information gathered from /proc filesystem in easy format
- Linux display information about installed hardware
- Linux command to gathers up information about a Linux system
Updated for accuracy.



30 comment
Very Very Good
thank 😀
Very nice article! It helps me in writing documentation about servers.
Thanks vivek 🙂
gud one !! i think i will learn lots new things from this site !! thx buddy 🙂
Works in Ubuntu Desktop 7.10, if you put the SUDO command in front of it.
The last few examples have the typo: “midecode” instead of “dmidecode”.
Patrick,
Thanks for the heads up!
That’s very good.
Thanks for this, very handy 😀
+1 thanks – very handy tool
hi, I will study to vsftpd. I want help me to source.
i work in a school as a IT manager. i need to get into the bios through command prompt and check the memory and other things. what is the code to do so.
all suggestions would be kindly accepted
i am frequent visitor to this site and i get lot of suitable information. please help me in writing shell script for getting information of thumb drive like id no., name of manufacturer, hostname who has inserted in etc… similarly for CDROM also…
please help me out…
thanks
regards
Thanks Buddy 🙂 Its works
It’s great and I got more than what I want.
🙂
Great resource!
Thanks!
Very good tool, however it would be nice if you could do a compressed list like lshw -short does.
Just my 2cents tho.
Do you have a Bios Decoder for Windows servers in a script format or command to obtain the same information described in this article.
Very intersting article indeed.
Thank you, Zirigo
i really love it
thanks,
Nice…. 🙂
Is there any way from where I can change BIOS values/options from Linux Console.
e.g. Changing Boot priority from HDD to CDROM or PXE.
you can use smartstart scripting toolkit for linux
or hpasmcli
Salamo Alikom
can i do this in assembly ?
Nice Article, really helpful in audit.
Very nice. it help me a lot.
I want commercial information like “HP Proliant DL380 G5” or SERVER TYPE using Linux command
use: hpasmcli -s “show server”
This is indeed very useful information.
However, be aware that parsing BIOS memory on a live server can have negative consequences. I have just seen dmidecode halt Apache on a live webserver. If you choose to run dmidecode on a live server: immediately check end user experience to verify vital services have not been halted or interrupted. In my case, Apache reported up, but all httpd processes and dependent processes such as mysql and php were terminated.
By now this is an old thread, but still I’d like to add… Nice article! Thanks!
thanks as well.
so how do I edit the DMI information returned?
I would like to convert my hp PC into a server by changing some BIOS settings. Somebody
changed for me from being a server into a PC, now I want to change it back.