Web Presence
| Fun with DMI Decode |
|
|
|
| Written by JLangbridge |
| Wednesday, 20 May 2009 12:59 |
|
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 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 |





The 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.