The tool dmidecode reads the system DMI table to display BIOS and hardware information of the server. Apart from getting current configuration of the system, you can also get information about maximum supported interface slots and memory capacity. dmidecodeis able to give information about the current RAM size on the system and the maximum RAM size supported by the system.
This article will provide you with some practicale tips how to use dmidecode if you do need details on your computer system and the motherboard manual is not available.
1. The dmidecode Command
The DMI table (Desktop Management interface) contains standardised information about computer systems. The Distributed Management Task Force provides intormation abaout the DMI specification and the SMBIOS specification.
Hint: dmidecode accesses memory areas of your system that do require access permissions of privileged users, e.g. the root account. Some Unix/Linux distributions do not provide the password of the root account. In these cases you may use the command sudo to execute single commands in the context of the root account.
The following output shows the principle set-up of the records:
Handle 0x0002, DMI type 2, 8 bytes. Base Board Information Manufacturer: Intel Product Name: C440GX+ Version: 727281-001 Serial Number: INCY92700942
Each record has:
- A handle. This is a unique identifier, which allows records to reference each other. For example, processor records usually reference cache memory records using their handles.
- A type. The SMBIOS specification defines different types of elements a computer can be made of. In this example, the type is 2, which means that the record contains “Base Board Information”.
- A size. Each record has a 4-byte header (2 for the handle, 1 for the type, 1 for the size), the rest is used by the record data. This value doesn’t take text strings into account (these are placed at the end of the record), so the actual length of the record may be (and is often) greater than the displayed value.
- Decoded values. The information presented of course depends on the type of record. Here, we learn about the board’s manufacturer, model, version and serial number.
Sample output of the command:
$ sudo dmidecode | head -18 # dmidecode 2.9 SMBIOS 2.3 present. 61 structures occupying 1884 bytes. Table at 0x000F0450. Handle 0xDA00, DMI type 218, 53 bytes OEM-specific Type Header and Data: DA 35 00 DA B2 00 17 0B 0E 18 00 00 80 00 80 01 00 02 80 02 80 01 00 00 A0 00 A0 01 00 58 00 58 00 01 00 59 00 59 00 01 00 05 80 05 80 01 00 FF FF 00 00 00 00 Handle 0xDA01, DMI type 218, 17 bytes OEM-specific Type Header and Data: DA 11 01 DA B2 00 17 0B 0E 18 00 FF FF 00 00 00 00
1.1. DMI types
Each hardware component is organized in a separate records with definite type id’s. The DMI specification defines DMI types as follows:
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 126 Disabled components 127 EOF (End Of File) marker 128-255 OEM-specific data
Instead of requesting data via type id’s dmidecode provides a number of keywords. Each keyword is equivalent to a list of type numbers:
Keyword Types ────────────────────────────── 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
The following examples show you how to use type id’s and keywords:
# request details about the BIOS $ dmidecode --type 0 # request details about the BIOS language $ dmidecode --type 13 # do the same using the keyword 'BIOS' $ dmidecode --type BIOS
1.2. Fetch values for scripting
If you are interested in using dmidecode in your own scripts there are a number of system properties that can be requested by using one of the following list of keywords:
Valid string keywords are: bios-vendor bios-version bios-release-date system-manufacturer system-product-name system-version system-serial-number system-uuid baseboard-manufacturer baseboard-product-name baseboard-version baseboard-serial-number baseboard-asset-tag chassis-manufacturer chassis-type chassis-version chassis-serial-number chassis-asset-tag processor-family processor-manufacturer processor-version processor-frequency
To fetch details about your processor you may use the following commands:
# sample session with hardware specific output $ dmidecode -s processor-family Pentium 4 $ dmidecode -s processor-frequency 1800 MHz
1.3. Get information on physical memory (RAM)
To fetch details on the maximum supported memory capacity you have to fetch the data for DMI type id 16. Details about the present RAM modules detected by the BIOS are available in DMI type id 17.
The following example shows a sample session where the memory configuration of a computer is requested. Pre-empting the result, there is a maximum supported capacity of 4 GB RAM with a present configuration of 4×1GB RAM in Slots 0…3. Especially type id 17 contains a lot of hardware specific details, that are not available on labels at your mainboard and RAM modules.
# fetch data about the maximum supported RAM configuration $ dmidecode -t 16 SMBIOS 2.3 present. Handle 0x0043, DMI type 16, 15 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: None Maximum Capacity: 4 GB <--- Maximum supported RAM !!! Error Information Handle: Not Provided Number Of Devices: 4 <--- number of available extension slots # ---------------- # fetch data on the number and the type of plugged-in RAM modules # that have been detected by the BIOS $ dmidecode -t 17 SMBIOS 2.3 present. Handle 0x0044, DMI type 17, 27 bytes Memory Device Array Handle: 0x0043 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 1024 MB <--- Slot 0 contains a 1 GB RAM DIMM Form Factor: DIMM Set: None Locator: A0 Bank Locator: Bank0/1 Type: Unknown Type Detail: None Speed: 333 MHz (3.0 ns) Manufacturer: None Serial Number: None Asset Tag: None Part Number: None Handle 0x0045, DMI type 17, 27 bytes Memory Device Array Handle: 0x0043 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 1024 MB <--- Slot 1 contains a 1 GB RAM DIMM Form Factor: DIMM Set: None Locator: A1 Bank Locator: Bank2/3 Type: Unknown Type Detail: None Speed: 333 MHz (3.0 ns) Manufacturer: None Serial Number: None Asset Tag: None Part Number: None Handle 0x0046, DMI type 17, 27 bytes Memory Device Array Handle: 0x0043 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 1024 MB <--- Slot 2 contains a 1 GB RAM DIMM Form Factor: DIMM Set: None Locator: A2 Bank Locator: Bank4/5 Type: Unknown Type Detail: None Speed: 333 MHz (3.0 ns) Manufacturer: None Serial Number: None Asset Tag: None Part Number: None Handle 0x0047, DMI type 17, 27 bytes Memory Device Array Handle: 0x0043 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 1024 MB <--- Slot 3 contains a 1 GB RAM DIMM Form Factor: DIMM Set: None Locator: A3 Bank Locator: Bank6/7 Type: Unknown Type Detail: None Speed: 333 MHz (3.0 ns) Manufacturer: None Serial Number: None Asset Tag: None Part Number: None
1.4. Get information on your BIOS
Utilizing the keyword BIOS you will get an overview about the BIOS installed in your computer system:
$ dmidecode -t BIOS SMBIOS 2.3 present. Handle 0x0000, DMI type 0, 20 bytes BIOS Information Vendor: Phoenix Technologies, LTD Version: ASUS A8N-SLI DELUXE ACPI BIOS Revision 1016 Release Date: 12/01/2005 Address: 0xE0000 Runtime Size: 128 kB ROM Size: 512 kB Characteristics: 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 LS-120 boot is supported ATAPI Zip drive boot is supported BIOS boot specification is supported Handle 0x0042, DMI type 13, 22 bytes BIOS Language Information Installable Languages: 3 n|US|iso8859-1 n|US|iso8859-1 r|CA|iso8859-1 Currently Installed Language: n|US|iso8859-1
1.5. Get information on your processors
Utilizing the keyword PROCESSOR you will get an overview about your CPU’s and all supported features:
$ dmidecode --type processor SMBIOS 2.3 present. Handle 0x0004, DMI type 4, 35 bytes Processor Information Socket Designation: Socket 939 Type: Central Processor Family: Athlon 64 Manufacturer: AMD ID: 32 0F 02 00 FF FB 8B 17 Signature: Family 15, Model 35, Stepping 2 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)Do effective nail polish very! Fragrances http://3dprintshow.com/ price nursing for great HATE candidsky.com month extreme mix buy cialis canadian spots been expensive apply. Mommy candidsky having with weight clumps pomade pfizer viagra canada best. Told packaging because buy cialis online self-coloring. Up cut has http://www.serratto.com/ out. Gold applied better real viagra online use on back money.CMOV (Conditional move instruction supported) PAT (Page attribute table) PSE-36 (36-bit page size extension) CLFSH (CLFLUSH instruction supported) MMX (MMX technology supported) FXSR (Fast floating-point save and restore) SSE (Streaming SIMD extensions) SSE2 (Streaming SIMD extensions 2) HTT (Hyper-threading technology) Version: AMD Athlon(tm) 64 X2 Dual Core Processor 4400+ Voltage: 1.3 V External Clock: 200 MHz Max Speed: 3700 MHz Current Speed: 2200 MHz Status: Populated, Enabled Upgrade: Socket 939 L1 Cache Handle: 0x000A L2 Cache Handle: 0x000B L3 Cache Handle: Not Provided Serial Number: Asset Tag: Part Number:
1.6. Get information on Manufacturer, Model and Serial number of the equipment
The keyword SYSTEM subsumes a number of DMI type id’s in a single command. Take a look on the following sample output:
$ dmidecode --type system SMBIOS 2.3 present. Handle 0x0100, DMI type 1, 25 bytes System Information Manufacturer: Dell Computer Corporation Product Name: OptiPlex GX240 Version: Not Specified Serial Number: 5182J0J UUID: 44454C4C-3100-1038-8032-B5C04F4A304A Wake-up Type: Power Switch Handle 0x0F00, DMI type 15, 31 bytes System Event Log Area Length: 2049 bytes Header Start Offset: 0x0000 Header Length: 16 bytes Data Start Offset: 0x0010 Access Method: Memory-mapped physical 32-bit address Access Address: 0xFFF82000 Status: Valid, Not Full Change Token: 0x0000000E Header Format: Type 1 Supported Log Type Descriptors: 4 Descriptor 1: POST error Data Format 1: POST results bitmap Descriptor 2: System limit exceeded Data Format 2: System management Descriptor 3: Log area reset/cleared Data Format 3: None Descriptor 4: Multi-bit ECC memory error Data Format 4: Handle Handle 0x2000, DMI type 32, 11 bytes System Boot Information Status: No errors detected
if (document.currentScript) {