Fun with DMI Decode PDF Print E-mail
Written by JLangbridge   
Wednesday, 20 May 2009 12:59

BIOSThe System Management BIOS (SMBIOS) was created to allow the storage and retrieval of specific information about a computer. Computer parks were becoming bigger and bigger, and sooner or later, something had to be done. Managing systems and inventories was a nightmare, and soon the trend was to install a "watchdog" on each and every computer, not to spy on the users, but to spy on the hardware. A systems administrator knew instantly what his park was like, the weak points and what needed to be done. 40 machines were running with only 512Mb of RAM? The application could retrieve this information and warn administrators. It could also be used to catch sneaky people who decided to alleviate the amount of RAM sticks in a machine, but that's another story.

The Desktop Management Interface was the framework that was used. The DMI provided a table, provided by the BIOS, that could be parsed and gave information about the entire system. Computer serial number, BIOS revision, the type of RAM installed, all of those are potentially hidden away inside your machine, there incase someone needs it. On personal computers, it is rarely used, but it is a requirement since 1999 for anyone who wants to have Microsoft certification, so most, if not all OEMs use it.

Linux is shipped with the dmidecode utility, that can parse the DMI tables and return some useful information. There have been blog posts about people wondering how to use it, what it can be used for, and essentialy give some tips on what has been done. For my use, I need to keep track of a small fleet of netbooks; I need to know their BIOS version, installed hardware and, of course, the serial number of the machine, and I can get all this information using a secure system that keeps the user data safe from my prying eyes.

dmidecode needs root priviledges to run, since it needs to access protected memory, but that it all it needs. Run it on the command line, and it will dump the entire table. More specific information can be retrieved using flags:

root@PC20090514:~/Desktop/Dev# dmidecode -s system-manufacturer
Hewlett-Packard

HP. That's what it says on the front panel. To see what can information can be retrieved, run dmidecode -c

To see more complete information, run dmidecode with the -t flag

root@PC20090514:~/Desktop/Dev# dmidecode -t 1
# dmidecode 2.9
SMBIOS 2.4 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
    Manufacturer: Hewlett-Packard
    Product Name: HP dx5150 MT(PE679AV)
    Version: 
    Serial Number: CZC6012FR9
    UUID: 00F61AC7-A3EB-1010-A02E-91CA71C6A9A6
    Wake-up Type: Power Switch
    SKU Number: 
    Family: 103C_53307F


For RAM info:

root@PC20090514:~/Desktop/Dev# dmidecode -t 17
# dmidecode 2.9
SMBIOS 2.4 present.

Handle 0x0025, DMI type 17, 27 bytes
Memory Device
    Array Handle: 0x0024
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 512 MB
    Form Factor: DIMM
    Set: None
    Locator: A0
    Bank Locator: Bank0/1
    Type: DDR
    Type Detail: Synchronous
    Speed: 400 MHz (2.5 ns)
    Manufacturer: None
    Serial Number: None
    Asset Tag: None
    Part Number: None

Handle 0x0026, DMI type 17, 27 bytes
Memory Device
    Array Handle: 0x0024
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: No Module Installed
    Form Factor: DIMM
    Set: None
    Locator: A1
    Bank Locator: Bank2/3
    Type: DDR
    Type Detail: Synchronous
    Speed: 400 MHz (2.5 ns)
    Manufacturer: None
    Serial Number: None
    Asset Tag: None
    Part Number: None

Handle 0x0027, DMI type 17, 27 bytes
Memory Device
    Array Handle: 0x0024
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 512 MB
    Form Factor: DIMM
    Set: None
    Locator: A2
    Bank Locator: Bank4/5
    Type: DDR
    Type Detail: Synchronous
    Speed: 400 MHz (2.5 ns)
    Manufacturer: None
    Serial Number: None
    Asset Tag: None
    Part Number: None

Handle 0x0028, DMI type 17, 27 bytes
Memory Device
    Array Handle: 0x0024
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: No Module Installed
    Form Factor: DIMM
    Set: None
    Locator: A3
    Bank Locator: Bank6/7
    Type: DDR
    Type Detail: Synchronous
    Speed: 400 MHz (2.5 ns)
    Manufacturer: None
    Serial Number: None
    Asset Tag: None
    Part Number: None

 2 gigs of memory, with 4 512Mb RAM modules. Time to upgrade my dev PC... At least I know what to ask for, the frequency, etc. All that done by a simple command, that can be interfaced remotely.

Last Updated on Monday, 25 May 2009 13:33
 

Add comment


Security code
Refresh