This guide will help you understand how to check hardware information on Linux with dmidecode. Most Laptops have a limit on the maximum memory you can install on it. Knowing this limit will help you plan accordingly on hardware upgrades.
What is dmidecode?
This is a tool used for dumping a computer’s DMI in a human-readable format. The data is printed in a tabular form and it contains a description of the system’s hardware components, as well as other useful pieces of information such as serial numbers and BIOS revision.
Check memory information on Linux with dmidecode:
To get all memory information details on a Linux server, run dmidecode with -t option as shown below.
$ sudo dmidecode -t memory
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.
Handle 0x0007, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: None
Maximum Capacity: 16 GB
Error Information Handle: Not Provided
Number Of Devices: 2
Handle 0x001A, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0007
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: SODIMM
Set: None
Locator: DIMM1
Bank Locator:
Type: DDR3
Type Detail: Synchronous
Speed: 1600 MT/s
Manufacturer: Samsung
Serial Number: 20DE69E3
Asset Tag: 03151600
Part Number: M471B1G73QH0-YK0
Rank: 2
Configured Memory Speed: 1600 MT/s
Handle 0x001C, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0007
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: SODIMM
Set: None
Locator: DIMM2
Bank Locator:
Type: DDR3
Type Detail: Synchronous
Speed: 1600 MT/s
Manufacturer: Samsung
Serial Number: 20DE69E4
Asset Tag: 03151600
Part Number: M471B1G73QH0-YK0
Rank: 2
Configured Memory Speed: 1600 MT/s
From the output, you can get:
- Memory Maximum Capacity
- The number Of Devices
- RAM Form Factor e.g SODIMM e.t.c
- Installed device size
- Clock speed in MT/s
- Type e.g DDR4, DDR3 e.t.c.
- Voltage
You can further filter details with grep
$ sudo dmidecode -t memory | grep -i "maximum capacity"
Maximum Capacity: 32 GB
$ sudo dmidecode -t memory | grep -i "speed"
Speed: 2133 MT/s
Configured Clock Speed: 2133 MT/s
Speed: 2133 MT/s
Configured Clock Speed: 2133 MT/s
Check processor information on Linux with dmidecode
To view all processor related information, us the command:
$ sudo dmidecode -t processor
# dmidecode 3.1
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.
Handle 0x0009, DMI type 4, 48 bytes
Processor Information
Socket Designation: U3E1
Type: Central Processor
Family: Core i5
Manufacturer: Intel(R) Corporation
ID: E9 06 08 00 FF FB EB BF
Signature: Type 0, Family 6, Model 142, Stepping 9
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) i5-7200U CPU @ 2.50GHz
Voltage: 0.8 V
External Clock: 100 MHz
Max Speed: 2700 MHz
Current Speed: 2400 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: 2
Core Enabled: 2
Thread Count: 4
Characteristics:
64-bit capable
Multi-Core
Hardware Thread
Execute Protection
Enhanced Virtualization
Power/Performance Control
From this you can get:
- CPU family
- Supported Flags
- Processor version e.t.c
For system information run:
$ sudo dmidecode -t system
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: Dell Inc.
Product Name: Dell Precision M3800
Version: A10
Serial Number: 2FQF562
UUID: 4c4c4544-0046-5110-8046-b2c04f353632
Wake-up Type: Power Switch
SKU Number: Dell Precision M3800
Family:
Handle 0x0013, DMI type 12, 5 bytes
System Configuration Options
Option 1: To Be Filled By O.E.M.
Handle 0x0016, DMI type 23, 13 bytes
System Reset
Status: Disabled
Watchdog Timer: Not Present
Handle 0x0017, DMI type 32, 20 bytes
System Boot Information
Status: No errors detected
Get System UUID
To get your system UUID, run:
$ sudo dmidecode --string system-uuid
0B1B6E67-A5F9-6546-BCF6-A81E84B0E901
You can convert the output to lower case using:
$ sudo dmidecode --string system-uuid | tr '[:upper:]' '[:lower:]'
0b1b6e67-a5f9-6546-bcf6-a81e84b0e901
This will give you system information like hardware manufacturer, system family, product name, e.t.c. For a more detailed how-to guide, refer to:
$ dmidecode --help
Usage: dmidecode [OPTIONS]
Options are:
-d, --dev-mem FILE Read memory from device FILE (default: /dev/mem)
-h, --help Display this help text and exit
-q, --quiet Less verbose output
-s, --string KEYWORD Only display the value of the given DMI string
-t, --type TYPE Only display the entries of given type
-H, --handle HANDLE Only display the entry of given handle
-u, --dump Do not decode the entries
--dump-bin FILE Dump the DMI data to a binary file
--from-dump FILE Read the DMI data from a binary file
--no-sysfs Do not attempt to read DMI data from sysfs files
--oem-string N Only display the value of the given OEM string
-V, --version Display the version and exit
Try other dmidecode options to obtain the system details you need.