(Last Updated On: May 31, 2018)

This guide will help you understand how to check hardware information on Linux with dmidecode.  Most Laptops have a limit on how much ram you can install on it. Knowing this limit will help you plan on the ram to have installed on your server or desktop.

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.1
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.

Handle 0x0002, 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: Not Provided
	Number Of Devices: 2

Handle 0x0003, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x0002
	Error Information Handle: Not Provided
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 4096 MB
	Form Factor: SODIMM
	Set: None
	Locator: ChannelA-DIMM0
	Bank Locator: BANK 0
	Type: DDR4
	Type Detail: Synchronous Unbuffered (Unregistered)
	Speed: 2133 MT/s
	Manufacturer: 4154
	Serial Number: 32363448
	Asset Tag: 9876543210
	Part Number: Z-2G3B1   1.,B      
	Rank: 1
	Configured Clock Speed: 2133 MT/s
	Minimum Voltage: Unknown
	Maximum Voltage: Unknown
	Configured Voltage: 1.2 V

Handle 0x0004, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x0002
	Error Information Handle: Not Provided
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 4096 MB
	Form Factor: SODIMM
	Set: None
	Locator: ChannelB-DIMM0
	Bank Locator: BANK 2
	Type: DDR4
	Type Detail: Synchronous Unbuffered (Unregistered)
	Speed: 2133 MT/s
	Manufacturer: SK Hynix
	Serial Number: 2959F5AB
	Asset Tag: 9876543210
	Part Number: HMA851S6AFR6N-UH    
	Rank: 1
	Configured Clock Speed: 2133 MT/s
	Minimum Voltage: Unknown
	Maximum Voltage: Unknown
	Configured Voltage: 1.2 V

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

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
-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