This is a read-only archive. Find the latest Linux articles, documentation, and answers at the new Linux.com!

Linux.com

Feature

dmidecode: What's it good for?

By Joe Barr on November 29, 2004 (8:00:00 AM)

Share    Print    Comments   

You know you're living in a cutthroat world when your BIOS lies to your operating system at boot time. Yet that's exactly what often happens, to one degree or another, depending on the manufacturer and model of the system. Some of the BIOS lies cause problems for Linux and some don't. The dmidecode project provides the means to learn exactly what claims your BIOS is making about your hardware. Strange as it might seem, it's useful information, even when it's not 100% reliable.

According to the project home page, dmidecode's purpose is to report "information about your system's hardware as described in your system BIOS according to the SMBIOS/DMI standard... This information typically includes system manufacturer, model name, serial number, BIOS version, asset tag as well as a lot of other details of varying level of interest and reliability depending on the manufacturer. This will often include usage status for the CPU sockets, expansion slots (e.g. AGP, PCI, ISA) and memory module slots, and the list of I/O ports (e.g. serial, parallel, USB)."

Alan Cox has since moved on to other things, and dmidecode has been rewritten and is now maintained by Jean Delvare. The code is used in a number of other programs, including most interestingly the Linux kernel.

In a perfect world, all manufacturers would write accurate and complete DMI table entries in the BIOS. Then people could do things like inventory all the PCs in the enterprise down to a tag number in the blink of an eye. Alas, we aren't anywhere near that in reality.

The amount and accuracy of information provided varies from manufacturer to manufacturer, and from model to model. Here's what dmidecode reports on the first few items in DMI on my homebuilt system:

 # dmidecode 2.5
SMBIOS 2.2 present.
42 structures occupying 1115 bytes.
Table at 0x000F0000.
Handle 0x0000
	DMI type 0, 19 bytes.
	BIOS Information
		Vendor: Phoenix Technologies, LTD
		Version: 6.00 PG
		Release Date: 07/25/2003
		Address: 0xE0000
		Runtime Size: 128 kB
		ROM Size: 512 kB
		Characteristics:
			ISA is supported
			PCI is supported
			PNP is supported
			APM is supported
			BIOS is upgradeable
			BIOS shadowing is allowed
			Boot from CD is supported
			Selectable boot is supported
			BIOS ROM is socketed
			EDD is supported
			5.25"/360 KB floppy services are supported (int 13h)
			5.25"/1.2 MB floppy services are supported (int 13h)
			3.5"/720 KB floppy services are supported (int 13h)
			3.5"/2.88 MB floppy services are supported (int 13h)
			Print screen service is supported (int 5h)
			8042 keyboard services are supported (int 9h)
			Serial services are supported (int 14h)
			Printer services are supported (int 17h)
			CGA/mono video services are supported (int 10h)
			ACPI is supported
			USB legacy is supported
			AGP is supported
			LS-120 boot is supported
			ATAPI Zip drive boot is supported
Handle 0x0001
	DMI type 1, 25 bytes.
	System Information
		Manufacturer: VIA Technologies, Inc.
		Product Name: KT400A-8235
		Version:  
		Serial Number:  
		UUID: Not Settable
		Wake-up Type: Power Switch
Handle 0x0002
	DMI type 2, 8 bytes.
	Base Board Information
		Manufacturer: http://www.abit.com.tw/
		Product Name: KD7A(VIA KT400A-8235)
		Version: 1.x
		Serial Number:  
Handle 0x0003
	DMI type 3, 13 bytes.
	Chassis Information
		Manufacturer:  
		Type: Desktop
		Lock: Not Present
		Version:  
		Serial Number:  
		Asset Tag:  
		Boot-up State: Unknown
		Power Supply State: Unknown
		Thermal State: Unknown
		Security Status: Unknown
Handle 0x0004
	DMI type 4, 32 bytes.
	Processor Information
		Socket Designation: Socket 7
		Type: Central Processor
		Family: Duron
		Manufacturer: AMD
		ID: 81 06 00 00 FF FB 83 03
		Signature: Family 6, Model 8, Stepping 1
		Flags:
			FPU (Floating-point unit on-chip)
			VME (Virtual mode extension)
			DE (Debugging extension)
			PSE (Page size extension)
			TSC (Time stamp counter)
			MSR (Model specific registers)
			PAE (Physical address extension)
			MCE (Machine check exception)
			CX8 (CMPXCHG8 instruction supported)
			APIC (On-chip APIC hardware supported)
			SEP (Fast system call)
			MTRR (Memory type range registers)
			PGE (Page global enable)
			MCA (Machine check architecture)
			CMOV (Conditional move instruction supported)
			PAT (Page attribute table)
			PSE-36 (36-bit page size extension)
			MMX (MMX technology supported)
			FXSR (Fast floating-point save and restore)
			SSE (Streaming SIMD extensions)
		Version: AMD Athlon(tm) XP
		Voltage: 1.6 V
		External Clock: 135 MHz
		Max Speed: 2250 MHz
		Current Speed: 1667 MHz
		Status: Populated, Enabled
		Upgrade: ZIF Socket
		L1 Cache Handle: 0x000A
		L2 Cache Handle: 0x000B
		L3 Cache Handle: No L3 Cache

More on page 2...

 

Share    Print    Comments   

Comments

on dmidecode: What's it good for?

Note: Comments are owned by the poster. We are not responsible for their content.

another great and more complete tool

Posted by: Anonymous Coward on November 30, 2004 06:22 PM
LSHW (list hardware) uses DMI and many other tricks to report with quite good accuracy what hardware is inside your machine. It supports PCs, Macs, Alphas and many other platforms (DMI is limited to PCs).
You can find it at <A HREF="http://ezix.org/software/lshw.html" title="ezix.org">http://ezix.org/software/lshw.html</a ezix.org>

#

This story has been archived. Comments can no longer be posted.



 
Tableless layout Validate XHTML 1.0 Strict Validate CSS Powered by Xaraya