There are plenty of tools on Linux to check your Linux system’s hardware information.
Most commands only report specific hardware components such as cpu or memory or hard disk, but the Dmidecode command covers most hardware information.
Dmidecode is a tool that reads the contents of a computer’s DMI table and displays the computer hardware information in a human-readable format.
It stands for the Desktop Management Interface, but some say SMBIOS – stands for System Management BIOS
This table contains a description of the system’s hardware components, as well as other useful information such as serial number, manufacturer information, release date, and BIOS revision, etc,.
If you are looking for an alternative tool for this, read the following articles about Linux hardware and find a suitable one from the list.
- inxi – A Great Tool for Checking Hardware Information on Linux
- LSHW (Hardware Lister) -Nifty tool to get Hardware information in Linux
- hwinfo (Hardware Info) – A nifty tool to detect system hardware information in Linux
- python-hwinfo : Display summary of Hardware information using standard Linux utilities
The DMI table does not currently describe what the system is made of, which can also report potential evolution’s (such as faster supported CPU or maximum memory support).
Will it help you analyze whether or not your hardware capability supports the latest application version.
As soon you run it, dmidecode will try to locate the DMI table. If it succeeds, it will parse this table and display a list of records you expect.
To use it effectively you need to know about the types of DMI and its keywords so that you can play well without any problems.
DMI Types: The SMBIOS specification defines the following DMI types.
+------+----------------------------------+------+------------------------------------+ | Type | Information | Type | Information | +------+----------------------------------+------+------------------------------------+ | 0 | BIOS | 21 | Built-in Pointing Device | | 1 | System | 22 | Portable Battery | | 2 | Base Board | 23 | System Reset | | 3 | Chassis | 24 | Hardware Security | | 4 | Processor | 25 | System Power Controls | | 5 | Memory Controller | 26 | Voltage Probe | | 6 | Memory Module | 27 | Cooling Device | | 7 | Cache | 28 | Temperature Probe | | 8 | Port Connector | 29 | Electrical Current Probe | | 9 | System Slots | 30 | Out-of-band Remote Access | | 10 | On Board Devices | 31 | Boot Integrity Services | | 11 | OEM Strings | 32 | System Boot | | 12 | System Configuration Options | 33 | 64-bit Memory Error | | 13 | BIOS Language | 34 | Management Device | | 14 | Group Associations | 35 | Management Device Component | | 15 | System Event Log | 36 | Management Device Threshold Data | | 16 | Physical Memory Array | 37 | Memory Channel | | 17 | Memory Device | 38 | IPMI Device | | 18 | 32-bit Memory Error | 39 | Power Supply | | 19 | Memory Array Mapped Address | 40 | Additional Information | | 20 | Memory Device Mapped Address | 41 | Onboard Device | +------+----------------------------------+------+------------------------------------+
Keywords can be used instead of type numbers with --type
. Each keyword is equivalent to a list of type numbers.
+------------------+------------------------+ | Keyword | Types | +------------------+------------------------+ | bios | 0 | | system | 1, 12, 15, 23, 32 | | baseboard | 2, 10, 41 | | chassis | 3 | | processor | 4 | | memory | 5, 6, 16, 17 | | cache | 7 | | connector | 8 | | slot | 9 | +------------------+------------------------+
How to Install Dmidecode on Linux
The Dmidecode package is available in most major distribution official repositories. Therefore, use your distribution package manager to install.
For Debian based systems, use apt-get command or apt command to install dmidecode.
$ sudo apt-get install dmidecode
For RHEL/CentOS based systems, use yum command to install dmidecode.
$ sudo yum install dmidecode
For Fedora/CentOS 8/RHEL 8 system, use dnf command to install dmidecode.
$ sudo dnf install dmidecode
For openSUSE system, use zypper command to install dmidecode.
$ sudo zypper in dmidecode
For Arch Linux based systems, use pacman command to install dmidecode.
$ sudo pacman -S dmidecode
1) How to Display the Default Output of the dmidecode Command
To verify all configured hardware information in a single command, run the dmidecode
command with no other options, which will display all hardware information by reading the DMI table from DMI type 0 to DMI type 41.
$ sudo dmidecode | more # dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. 48 structures occupying 2595 bytes. Table at 0x000E5FE0. Handle 0x0000, DMI type 0, 24 bytes BIOS Information Vendor: LENOVO Version: CDCN35WW Release Date: 03/29/2016 Address: 0xE0000 Runtime Size: 128 kB ROM Size: 6144 kB Characteristics: PCI is supported BIOS is upgradeable BIOS shadowing is allowed Boot from CD is supported Selectable boot is supported EDD is supported Japanese floppy for NEC 9800 1.2 MB is supported (int 13h) Japanese floppy for Toshiba 1.2 MB is supported (int 13h) 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) 8042 keyboard services are supported (int 9h) CGA/mono video services are supported (int 10h) ACPI is supported USB legacy is supported BIOS boot specification is supported Targeted content distribution is supported UEFI is supported BIOS Revision: 1.35 Firmware Revision: 1.35 Handle 0x0001, DMI type 1, 27 bytes System Information Manufacturer: LENOVO Product Name: 80NV Version: Lenovo ideapad Y700-15ISK Serial Number: XXXXXXXX UUID: 99XXXXX6-XXXX-xDDD-aXXX-c85XXXXX45c Wake-up Type: Power Switch SKU Number: LENOVO_MT_80NV_BU_idea_FM_Lenovo ideapad Y700-15ISK Family: IDEAPAD . . . Handle 0x002D, DMI type 222, 14 bytes OEM-specific Type Header and Data: DE 0E 2D 00 01 99 00 03 10 01 20 02 30 03 Strings: Memory Init Complete End of DXE Phase BIOS Boot Complete Handle 0x002E, DMI type 248, 18 bytes OEM-specific Type Header and Data: F8 12 2E 00 AC AC AA 17 00 00 00 00 00 00 00 00 00 00 Handle 0xFEFF, DMI type 127, 4 bytes End Of Table
2) How to Check the BIOS Information in Linux Using the dmidecode Command
To find BIOS information using dmidecode, run the dmidecode command with the -t
option, and then include the bios
keyword.
This will print the detailed BIOS information such as BIOS Version, Vendor name, release date, runtime size, ROM size, BIOS revision, firmware revision, etc.,.
$ sudo dmidecode -t bios # dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. Handle 0x0000, DMI type 0, 24 bytes BIOS Information Vendor: LENOVO Version: CDCN35WW Release Date: 03/29/2016 Address: 0xE0000 Runtime Size: 128 kB ROM Size: 6144 kB Characteristics: PCI is supported BIOS is upgradeable BIOS shadowing is allowed Boot from CD is supported Selectable boot is supported EDD is supported Japanese floppy for NEC 9800 1.2 MB is supported (int 13h) Japanese floppy for Toshiba 1.2 MB is supported (int 13h) 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) 8042 keyboard services are supported (int 9h) CGA/mono video services are supported (int 10h) ACPI is supported USB legacy is supported BIOS boot specification is supported Targeted content distribution is supported UEFI is supported BIOS Revision: 1.35 Firmware Revision: 1.35 Handle 0x0017, DMI type 13, 22 bytes BIOS Language Information Language Description Format: Long Installable Languages: 1 en|US|iso8859-1,0 Currently Installed Language: en|US|iso8859-1,0
3) How to Find the System Information in Linux Using the dmidecode Command
To get system information using dmidecode, run the dmidecode command with -t
option followed by system
keyword.
This will combine DMI types (1, 12, 15, 23 and 32 – system information, System Configuration Options, System Event Log, System Reset, and 64-bit Memory Error) and print the detailed system information such as manufacturer name, product name, Version, serial number, UUID, wake-up type, SKU number, family, etc.,.
$ sudo dmidecode -t system # dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. Handle 0x0001, DMI type 1, 27 bytes System Information Manufacturer: LENOVO Product Name: 80NV Version: Lenovo ideapad Y700-15ISK Serial Number: XXXXXXX UUID: 99XXXXX6-XXXX-xDDD-aXXX-c85XXXXX45c Wake-up Type: Power Switch SKU Number: LENOVO_MT_80NV_BU_idea_FM_Lenovo ideapad Y700-15ISK Family: IDEAPAD Handle 0x001B, DMI type 15, 29 bytes System Event Log Area Length: 0 bytes Header Start Offset: 0x0000 Header Length: 8192 bytes Data Start Offset: 0x2000 Access Method: General-purpose non-volatile data functions Access Address: 0x0000 Status: Valid, Not Full Change Token: 0x12345678 Header Format: OEM-specific Supported Log Type Descriptors: 3 Descriptor 1: POST memory resize Data Format 1: None Descriptor 2: POST error Data Format 2: POST results bitmap Descriptor 3: Log area reset/cleared Data Format 3: None
You can use the grep command to filter only the required details.
$ sudo dmidecode -t system | grep "Manufacturer\|Product Name\|Version\|Serial Number" Manufacturer: LENOVO Product Name: 80NV Version: Lenovo ideapad Y700-15ISK Serial Number: XXXXXXXX
4) How to Check the Baseboard Information in Linux Using the dmidecode Command
To get baseboard information using dmidecode, run the dmidecode command with -t
option followed by baseboard
keyword.
This will combine DMI types (2, 10, 41 – Base Board, On Board Devices, and Onboard Device) and print the detailed system baseboard information such as manufacturer name, product name, Version, serial number, chassis type, chassis handle, type, etc.,.
$ sudo dmidecode -t baseboard # dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. Handle 0x0002, DMI type 2, 15 bytes Base Board Information Manufacturer: LENOVO Product Name: Allsparks 5A Version: SDK0J40709 WIN Serial Number: XXXXXXXX Asset Tag: NO Asset Tag Features: Board is a hosting board Board is replaceable Location In Chassis: Type2 - Board Chassis Location Chassis Handle: 0x0003 Type: Motherboard Contained Object Handles: 0
5) How to Find the Chassis Information in Linux Using the dmidecode Command
To get chassis information using dmidecode, run the dmidecode command with -t
option followed by chassis
keyword.
This will print the detailed chassis information such as manufacturer name, Mount type, Boot-up state, power supply state, thermal state, security status, OEM information, etc.,.
$ sudo dmidecode -t chassis # dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. Handle 0x0003, DMI type 3, 22 bytes Chassis Information Manufacturer: LENOVO Type: Notebook Lock: Not Present Version: Lenovo ideapad Y700-15ISK Serial Number: XXXXXXX Asset Tag: NO Asset Tag Boot-up State: Safe Power Supply State: Safe Thermal State: Safe Security Status: None OEM Information: 0x00000000 Height: Unspecified Number Of Power Cords: 1 Contained Elements: 0 SKU Number: SKU Number
6) How to Find the Processor Information in Linux Using the dmidecode Command
To get processor information using dmidecode, run the dmidecode command with -t
option followed by processor
keyword.
This will print the detailed processor information such as socket designation, processor type, family, manufacturer name, ID, Signature, available flags, version, voltage, external clock, max speed, current speed, status, upgrade, L1, L2, L3 cache handle, core count, core enabled, thread count, etc.,.
$ sudo dmidecode -t processor # dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. Handle 0x0004, DMI type 4, 42 bytes Processor Information Socket Designation: U3E1 Type: Central Processor Family: Core i7 Manufacturer: Intel(R) Corporation ID: E3 06 05 00 FF FB EB BF Signature: Type 0, Family 6, Model 94, Stepping 3 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) 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) HTT (Multi-threading) TM (Thermal monitor supported) PBE (Pending break enabled) Version: Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz Voltage: 0.9 V External Clock: 100 MHz Max Speed: 2600 MHz Current Speed: 2500 MHz Status: Populated, Enabled Upgrade: Other L1 Cache Handle: 0x0006 L2 Cache Handle: 0x0007 L3 Cache Handle: 0x0008 Serial Number: To Be Filled By O.E.M. Asset Tag: To Be Filled By O.E.M. Part Number: To Be Filled By O.E.M. Core Count: 4 Core Enabled: 4 Thread Count: 8 Characteristics: 64-bit capable Multi-Core Hardware Thread Execute Protection Enhanced Virtualization Power/Performance Control
You can use the egrep command to filter only the required details.
$ sudo dmidecode -t processor | egrep "Family|Manufacturer|Version|Max Speed|Core Count|Thread Count" Family: Core i7 Manufacturer: Intel(R) Corporation Signature: Type 0, Family 6, Model 94, Stepping 3 Version: Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz Max Speed: 2600 MHz Core Count: 4 Thread Count: 8
7) How to Find the Memory Information in Linux Using the dmidecode Command
To get memory information using dmidecode, run the dmidecode command with -t
option followed by memory
keyword.
This will print the detailed information about memory such as Physical memory array, memory device, array handle, total width, data width, size, maximum capacity, etc.,.
$ sudo dmidecode -t memory # dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. Handle 0x001C, DMI type 16, 23 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: None Maximum Capacity: 32 GB Error Information Handle: No Error Number Of Devices: 2 Handle 0x001D, DMI type 17, 40 bytes Memory Device Array Handle: 0x001C Error Information Handle: No Error Total Width: 64 bits Data Width: 64 bits Size: 8192 MB Form Factor: SODIMM Set: None Locator: ChannelA-DIMM0 Bank Locator: BANK 0 Type: DDR4 Type Detail: Synchronous Speed: 2133 MT/s Manufacturer: SK Hynix Serial Number: xxxxxxxx Asset Tag: 9876543210 Part Number: HMA41GS6AFR8N-TF Rank: 2 Configured Memory Speed: 2133 MT/s Minimum Voltage: 1.25 V Maximum Voltage: 1.25 V Configured Voltage: 1.2 V Handle 0x001E, DMI type 17, 40 bytes Memory Device Array Handle: 0x001C Error Information Handle: No Error Total Width: Unknown Data Width: Unknown Size: No Module Installed Form Factor: Unknown Set: None Locator: ChannelA-DIMM1 Bank Locator: BANK 1 Type: Unknown Type Detail: None Speed: Unknown Manufacturer: Not Specified Serial Number: Not Specified Asset Tag: Not Specified Part Number: Not Specified Rank: Unknown Configured Memory Speed: Unknown Minimum Voltage: Unknown Maximum Voltage: Unknown Configured Voltage: Unknown Handle 0x001F, DMI type 17, 40 bytes Memory Device Array Handle: 0x001C Error Information Handle: No Error Total Width: 64 bits Data Width: 64 bits Size: 8192 MB Form Factor: SODIMM Set: None Locator: ChannelB-DIMM0 Bank Locator: BANK 2 Type: DDR4 Type Detail: Synchronous Speed: 2133 MT/s Manufacturer: SK Hynix Serial Number: xxxxxxxxx Asset Tag: 9876543210 Part Number: HMA41GS6AFR8N-TF Rank: 2 Configured Memory Speed: 2133 MT/s Minimum Voltage: 1.25 V Maximum Voltage: 1.25 V Configured Voltage: 1.2 V Handle 0x0020, DMI type 17, 40 bytes Memory Device Array Handle: 0x001C Error Information Handle: No Error Total Width: Unknown Data Width: Unknown Size: No Module Installed Form Factor: Unknown Set: None Locator: ChannelB-DIMM1 Bank Locator: BANK 3 Type: Unknown Type Detail: None Speed: Unknown Manufacturer: Not Specified Serial Number: Not Specified Asset Tag: Not Specified Part Number: Not Specified Rank: Unknown Configured Memory Speed: Unknown Minimum Voltage: Unknown Maximum Voltage: Unknown Configured Voltage: Unknown
You can use the egrep command to filter only the required details.
$ sudo dmidecode -t memory | egrep "Maximum Capacity|Number Of Devices|Size|Type:" | egrep -v "No Module|Unknown|None" Maximum Capacity: 32 GB Number Of Devices: 2 Size: 8192 MB Type: DDR4 Size: 8192 MB Type: DDR4
8) How to Check the Cache Information in Linux Using the dmidecode Command
To get cache information using dmidecode, run the dmidecode command with -t
option followed by cache
keyword.
This will print the detailed information about cache such as socket designation, configuration, operational mode, location , installed size, maximum size, supported SRAM types, installed SRAM types, error correction type, system type, etc.,.
$ sudo dmidecode -t cache # dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. Handle 0x0005, DMI type 7, 19 bytes Cache Information Socket Designation: L1 Cache Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Back Location: Internal Installed Size: 128 kB Maximum Size: 128 kB Supported SRAM Types: Synchronous Installed SRAM Type: Synchronous Speed: Unknown Error Correction Type: Parity System Type: Data Associativity: 8-way Set-associative Handle 0x0006, DMI type 7, 19 bytes Cache Information Socket Designation: L1 Cache Configuration: Enabled, Not Socketed, Level 1 Operational Mode: Write Back Location: Internal Installed Size: 128 kB Maximum Size: 128 kB Supported SRAM Types: Synchronous Installed SRAM Type: Synchronous Speed: Unknown Error Correction Type: Parity System Type: Instruction Associativity: 8-way Set-associative Handle 0x0007, DMI type 7, 19 bytes Cache Information Socket Designation: L2 Cache Configuration: Enabled, Not Socketed, Level 2 Operational Mode: Write Back Location: Internal Installed Size: 1024 kB Maximum Size: 1024 kB Supported SRAM Types: Synchronous Installed SRAM Type: Synchronous Speed: Unknown Error Correction Type: Single-bit ECC System Type: Unified Associativity: 4-way Set-associative Handle 0x0008, DMI type 7, 19 bytes Cache Information Socket Designation: L3 Cache Configuration: Enabled, Not Socketed, Level 3 Operational Mode: Write Back Location: Internal Installed Size: 6144 kB Maximum Size: 6144 kB Supported SRAM Types: Synchronous Installed SRAM Type: Synchronous Speed: Unknown Error Correction Type: Multi-bit ECC System Type: Unified Associativity: 12-way Set-associative
9) How to Check the Connector Information in Linux Using the dmidecode Command
To get connector information using dmidecode, run the dmidecode command with -t
option followed by connector
keyword.
$ sudo dmidecode -t connector # dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. Handle 0x0009, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J3A1 Internal Connector Type: None External Reference Designator: USB External Connector Type: Access Bus (USB) Port Type: USB Handle 0x000A, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J3A1 Internal Connector Type: None External Reference Designator: USB External Connector Type: Access Bus (USB) Port Type: USB Handle 0x000B, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J3A1 Internal Connector Type: None External Reference Designator: USB External Connector Type: Access Bus (USB) Port Type: USB Handle 0x000C, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J5A1 Internal Connector Type: None External Reference Designator: USB External Connector Type: Access Bus (USB) Port Type: USB Handle 0x000D, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J5A1 Internal Connector Type: None External Reference Designator: USB External Connector Type: Access Bus (USB) Port Type: USB Handle 0x000E, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J5A2 Internal Connector Type: None External Reference Designator: USB External Connector Type: Access Bus (USB) Port Type: USB Handle 0x000F, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J5A1 Internal Connector Type: None External Reference Designator: Network External Connector Type: RJ-45 Port Type: Network Port Handle 0x0010, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J30 Internal Connector Type: None External Reference Designator: Microphone In External Connector Type: Mini Jack (headphones) Port Type: Audio Port Handle 0x0011, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: J30 Internal Connector Type: None External Reference Designator: Speaker Out External Connector Type: Mini Jack (headphones) Port Type: Audio Port
10) How to Check the Slot Information in Linux Using the dmidecode Command
To get slot information using dmidecode, run the dmidecode command with -t
option followed by slot
keyword.
$ sudo dmidecode -t slot # dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. Handle 0x0012, DMI type 9, 17 bytes System Slot Information Designation: J6C1 Type: x1 PCI Express x1 Current Usage: In Use Length: Other ID: 1 Characteristics: PME signal is supported Hot-plug devices are supported Bus Address: 0000:00:1c.0 Handle 0x0013, DMI type 9, 17 bytes System Slot Information Designation: J6D2 Type: x1 PCI Express x1 Current Usage: Available Length: Other ID: 2 Characteristics: PME signal is supported Hot-plug devices are supported Bus Address: 0000:00:1c.1 Handle 0x0014, DMI type 9, 17 bytes System Slot Information Designation: J7C1 Type: x1 PCI Express x1 Current Usage: In Use Length: Other ID: 3 Characteristics: PME signal is supported Hot-plug devices are supported Bus Address: 0000:00:1c.2 Handle 0x0015, DMI type 9, 17 bytes System Slot Information Designation: J7D1 Type: x1 PCI Express x1 Current Usage: In Use Length: Other ID: 4 Characteristics: PME signal is supported Hot-plug devices are supported Bus Address: 0000:00:1c.3 Handle 0x0016, DMI type 9, 17 bytes System Slot Information Designation: J8C1 Type: x4 PCI Express x4 Current Usage: Available Length: Other ID: 5 Characteristics: PME signal is supported Hot-plug devices are supported Bus Address: 0000:00:1c.4
It’s really helpful.