If you would like to know information about your system then where you will go and look into … proc filesystem and dmesg. Yes, you will get some information out of it, but that is not the full information. Then you go and search for the spec sheet given my manufacturer to find what you are looking for. But what if you are handling remote system ??
For all these purposes the two utilities which could provide you the complete information are dmidecode & boisdecode. The location of the scripts are /usr/sbin. As these resides in /usr/sbin, so you will be needing root privileges to run these scripts. (root privileges can be gained by using sudo or changing the user to root by “su –“)

BIOSDECODE

The biosdecode command parses the BIOS memory and prints information about all structures or entry points known to it. Following are the current entry point types:

  • 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
  • SNY – Sony-specific, not decoded
  • VPD – Vital Product Data, IBM-specific
  • FJKEYINF – Application Panel, Fujitsu-specific

Following will be the output of the command when you run it with root privileges.

$ sudo biosdecode
# biosdecode 2.9
ACPI 1.0 present.
	OEM Identifier: COMPAQ
	RSD Table 32-bit Address: 0x7E5C2040
PCI Interrupt Routing 1.0 present.
	Router ID: 00:1f.0
	Exclusive IRQs: None
	Slot Entry 1: ID 07:04, slot number 1
SYSID present.
	Revision: 0
	Structure Table Address: 0x000F1940
	Number Of Structures: 1
PNP BIOS 1.0 present.
	Event Notification: Not Supported
	Real Mode 16-bit Code Address: F000:7AE2

This command shows a compact version of the information, not the full. Well, this information doesn’t really make much sense to a normal person. For that we will be using dmidecode, which will give us much sensible information about my system.

DMIDECODE

DMIDECODE stands for “DMI table decoder“. As i had already told you, this will give you much better and verbose information about your system. This commands dumps a computer’s DMI/SMBIOS table contents in a human-readable format. 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. While speed and volume of information is something for which this tool stands for but at the same time the presented information possibly could be unreliable.
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). Author Alan Cox & Jean Delvare has these lines written in their man page “More often than not, information contained in the DMI tables is inaccurate, incomplete or simply wrong”, which completely clarifies that instead of completely relying on this information, we should match this with information from proc filesystem and dmesg, which should give you enough idea.
When you run the command without any arguments in it, then you will get the complete output and information about your system, a part of which is shown below.

$ sudo dmidecode | less
# dmidecode 2.9
SMBIOS 2.5 present.
70 structures occupying 2048 bytes.
Table at 0x000EA7C0.

Handle 0x0001, DMI type 0, 24 bytes
BIOS Information
        Vendor: Hewlett-Packard
        Version: 786F2 v01.51
        Release Date: 08/01/2008
        Address: 0xE0000
        Runtime Size: 128 kB
        ROM Size: 4096 kB
        Characteristics:
                PCI is supported
                PNP is supported

When you are looking for some information then i am sure you must be looking for some specific hardware. dmidecode gives you the option to specify the option at command line.

$ sudo dmidecode -t
Type number or keyword expected
Valid type keywords are:
  bios
  system
  baseboard
  chassis
  processor
  memory
  cache
  connector
  slot

So, for example if you would like to know the information about the baseboard installed in your system, that can be done like this.

$ sudo dmidecode -t baseboard
# dmidecode 2.9
SMBIOS 2.5 present.

Handle 0x0003, DMI type 2, 14 bytes
Base Board Information
        Manufacturer: Hewlett-Packard
        Product Name: 2820h
        Version: Not Specified
        Serial Number: SGH945P5VG

You can also use the number type as the value for the “-t” argument. You can use the following number individually or in a comma separated list to get the information

Type Information
—————-
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

I tried these commands at my system and got correct results. Please try these at your system and drop a comment in case you found some inaccurate results.

Resources:

  1. Man pages of biosdecode & dmidecode written by Alan Cox & Jean Delvare
If you enjoyed this post, make sure you subscribe to my RSS feed!!!!