by Paul Arnote (parnote)
Linux, Unix and BSD users have it good. Real good. Especially when it comes to polling their computer about its current BIOS settings.
BIOS stands for "Basic Input Output System," and the computer's BIOS acts like a traffic cop or translator, making it possible for all of the different components and parts of your computer hardware to talk with one another and interoperate in harmony. Sometimes, your computer BIOS is also sometimes known as DMI, which is an abbreviation for Desktop Management Interface.
Source: Wikipedia
How many times have you wondered about whether a certain setting was available or enacted in your computer's BIOS? Or, how many times did you wonder about your computer's hardware configuration? Well, with the dmidecode command, you can find all of that sort of information your mind can ingest.
dmidecode is already installed on your PCLinuxOS installation. Open a terminal session, switch to the root user, and type dmidecode at the command line prompt. You should be shown hundreds of lines of output that provides details about most every aspect of your computer hardware. Below is a snippet of information dmidecode is able to provide. This dmidecode output is from my IBM Thinkpad T42 laptop.
# dmidecode 2.12
SMBIOS version fixup (2.33 -> 2.3).
SMBIOS 2.3 present.
61 structures occupying 2126 bytes.
Table at 0x000E0010.
Handle 0x0000, DMI type 0, 20 bytes
BIOS Information
Vendor: IBM
Version: 1RETDNWW (3.19 )
Release Date: 10/13/2005
Address: 0xDC000
Runtime Size: 144 kB
ROM Size: 1024 kB
Characteristics:
PCI is supported
PC Card (PCMCIA) is supported
PNP is supported
APM 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"/720 kB 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
BIOS boot specification is supported
Handle 0x0001, DMI type 1, 25 bytes
System Information
Manufacturer: IBM
Product Name: 23738TU
Version: ThinkPad T42
Serial Number: L32321Z
UUID: 56A11681-48B1-11CB-8DF4-B7968D3A47CB
Wake-up Type: Power Switch
Handle 0x0002, DMI type 2, 8 bytes
Base Board Information
Manufacturer: IBM
Product Name: 23738TU
Version: Not Available
Serial Number: VJ0BV5CG145
Handle 0x0003, DMI type 3, 17 bytes
Chassis Information
Manufacturer: IBM
Type: Notebook
Lock: Not Present
Version: Not Available
Serial Number: Not Available
Asset Tag: No Asset Information
Boot-up State: Unknown
Power Supply State: Unknown
Thermal State: Unknown
Security Status: Unknown
OEM Information: 0x00000000
Handle 0x0004, DMI type 126, 17 bytes
Inactive
Handle 0x0005, DMI type 126, 17 bytes
Inactive
Handle 0x0006, DMI type 4, 35 bytes
Processor Information
Socket Designation: None
Type: Central Processor
Family: Pentium M
Manufacturer: GenuineIntel
ID: D6 06 00 00 BF F9 E9 AF
Signature: Type 0, Family 6, Model 13, Stepping 6
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)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction 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)
CLFSH (CLFLUSH instruction supported)
DS (Debug store)
ACPI (ACPI supported)
MMX (MMX technology supported)
FXSR (FXSAVE and FXSTOR instructions supported)
SSE (Streaming SIMD extensions)
SSE2 (Streaming SIMD extensions 2)
SS (Self-snoop)
TM (Thermal monitor supported)
PBE (Pending break enabled)
Version: Intel(R) Pentium(R) M processor
Voltage: 1.3 V
External Clock: 400 MHz
Max Speed: 1700 MHz
Current Speed: 1700 MHz
Status: Populated, Enabled
Upgrade: None
L1 Cache Handle: 0x000A
L2 Cache Handle: 0x000B
L3 Cache Handle: Not Provided
Serial Number: Not Specified
Asset Tag: Not Specified
Part Number: Not Specified
Handle 0x0007, DMI type 5, 20 bytes
Memory Controller Information
Error Detecting Method: None
Error Correcting Capabilities:
None
Supported Interleave: One-way Interleave
Current Interleave: One-way Interleave
Maximum Memory Module Size: 1024 MB
Maximum Total Memory Size: 2048 MB
Supported Speeds:
Other
Supported Memory Types:
DIMM
SDRAM
Memory Module Voltage: 2.9 V
Associated Memory Slots: 2
0x0008
0x0009
Enabled Error Correcting Capabilities:
None
Handle 0x0008, DMI type 6, 12 bytes
Memory Module Information
Socket Designation: DIMM Slot 1
Bank Connections: 0 1
Current Speed: Unknown
Type: DIMM SDRAM
Installed Size: 1024 MB (Double-bank Connection)
Enabled Size: 1024 MB (Double-bank Connection)
Error Status: OK
Handle 0x0009, DMI type 6, 12 bytes
Memory Module Information
Socket Designation: DIMM Slot 2
Bank Connections: 2 3
Current Speed: Unknown
Type: DIMM SDRAM
Installed Size: 1024 MB (Double-bank Connection)
Enabled Size: 1024 MB (Double-bank Connection)
Error Status: OK
Yes, that's a lot of information ... and that's just a fraction of the total amount of information supplied. To be certain, that's a lot of information to wade through if you are looking for specific information about specific parts of your system. Fortunately, there's a way to limit the dmidecode output.
Looking through the dmidecode output listed above, notice how each "section" of the output is labeled with a specific "DMI type." By knowing what DMI type relates to which section of hardware information, you can tailor dmidecode to show you only the specific data you are seeking.
Here's a list of the different DMI types you can specify:
- BIOS
- System
- Base Board
- Chassis 4 Processor
- Memory Controller
- Memory Module
- Cache
- Port Connector
- System Slots
- On Board Devices
- OEM Strings
- System Configuration Options
- BIOS Language
- Group Associations
- System Event Log
- Physical Memory Array
- Memory Device
- 32-bit Memory Error
- Memory Array Mapped Address
- Memory Device Mapped Address
- Built-in Pointing Device
- Portable Battery
- System Reset
- Hardware Security
- System Power Controls
- Voltage Probe
- Cooling Device
- Temperature Probe
- Electrical Current Probe
- Out-of-band Remote Access
- Boot Integrity Services
- System Boot
- 64-bit Memory Error
- Management Device
- Management Device Component
- Management Device Threshold Data
- Memory Channel
- IPMI Device
- Power Supply
To utilize the different DMI types, issue the command dmidecode -t x, where x is the number of the DMI type you want to display. Thus, dmidecode -t 21 will display the following information that provides details about the built-in pointing devices on my Thinkpad T42:
dmidecode -t 21
# dmidecode 2.12
SMBIOS version fixup (2.33 -> 2.3).
SMBIOS 2.3 present.
Handle 0x0033, DMI type 21, 7 bytes
Built-in Pointing Device
Type: Track Point
Interface: PS/2
Buttons: 3
Handle 0x0034, DMI type 21, 7 bytes
Built-in Pointing Device
Type: Touch Pad
Interface: PS/2
Buttons: 0
Thus, to display information about the memory device, you would enter dmidecode -t 17. To display information about the specific memory modules installed in your computer, you could enter dmidecode -t 6. You could continue with any of the defined DMI types in the list above. If you come across a DMI type that isn't supported by your particular BIOS, you will see the following:
# dmidecode 2.12
SMBIOS version fixup (2.33 -> 2.3).
SMBIOS 2.3 present.
There is an alternate way to display DMI types, and that is by using dmidecode keywords. Let's say you want to inspect all the information about the memory installed in your computer. Instead of specifying DMI types 5, 6, 16 and 17 separately, you could simply type dmidecode -t memory. When you do, all the information from the relevant sections will be displayed all at once.
Here are the dmidecode keywords you can use, followed by the sections that they relate to:
bios 0, 13
system 1, 12, 15, 23, 32
baseboard 2, 10
chassis 3
processor 4
memory 5, 6, 16, 17
cache 7
connector 8
slot 9
Is dmidecode perfect? Nope. In fact, dmidecode has sometimes provided unreliable information. It has nothing to do with any "flaws" in dmidecode. Rather, it's the nature of the beast. DMI data has been proven to be too unreliable to be just trusted blindly. dmidecode doesn't poll the hardware itself. Instead, it simply reports what the BIOS tells it.
Still, dmidecode is a very useful tool in any Linux user's arsenal. So, the next time you need to gather information about your computer configuration, dmidecode is one tool that can quickly provide that necessary information.
|