šŸŽ New User? Get 20% off your first purchase with code NEWUSER20 Register Now →
Menu

Categories

dmidecode Command

Beginner System Information man(8)

Read hardware information from BIOS/UEFI DMI table

šŸ“… Updated: Mar 16, 2026
SYNTAX
dmidecode [OPTIONS]

What Does dmidecode Do?

The dmidecode command reads the DMI (Desktop Management Interface) / SMBIOS (System Management BIOS) data from the system BIOS or UEFI firmware. This provides detailed hardware information that is not available through other Linux tools — including motherboard model, BIOS version, RAM slot details, serial numbers, and CPU socket information.

dmidecode is invaluable for system inventory, hardware troubleshooting, capacity planning, and remote server management. When you cannot physically inspect a server, dmidecode tells you exactly what hardware is installed, how many RAM slots are available (and which are populated), the maximum supported memory, BIOS version for firmware updates, and chassis/asset information.

The DMI data is organized into numbered types, each representing a category of hardware information. The most commonly used types are: Type 0 (BIOS), Type 1 (System), Type 2 (Baseboard/Motherboard), Type 4 (Processor), Type 16 (Physical Memory Array), and Type 17 (Memory Device/RAM).

Options & Flags

OptionDescriptionExample
(no options) Dump all DMI data sudo dmidecode
-t TYPE Show only specific DMI type sudo dmidecode -t memory
-t bios Show BIOS information (type 0) sudo dmidecode -t bios
-t system Show system manufacturer, model, serial (type 1) sudo dmidecode -t system
-t baseboard Show motherboard info (type 2) sudo dmidecode -t baseboard
-t processor Show CPU socket info (type 4) sudo dmidecode -t processor
-t memory Show RAM slots and installed DIMMs (types 16,17) sudo dmidecode -t memory
-s KEYWORD Show only a specific string value sudo dmidecode -s system-serial-number
-t chassis Show chassis/enclosure info sudo dmidecode -t chassis

Practical Examples

#1 Check server model and serial

Get the server manufacturer, model name, and serial number — essential for support tickets and inventory.
$ sudo dmidecode -t system | grep -E "Manufacturer|Product|Serial"
Output: Manufacturer: Dell Inc.\n Product Name: PowerEdge R740\n Serial Number: ABC1234

#2 Check BIOS version

View BIOS vendor, version, and release date. Important for firmware update planning.
$ sudo dmidecode -t bios

#3 Check RAM configuration

Show installed RAM modules: size, type (DDR4/DDR5), speed, and which physical slot they occupy.
$ sudo dmidecode -t memory | grep -E "Size|Type|Speed|Locator"

#4 Find maximum RAM capacity

Check the maximum RAM the system supports — crucial for memory upgrade planning.
$ sudo dmidecode -t 16 | grep "Maximum Capacity"
Output: Maximum Capacity: 512 GB

#5 Count available RAM slots

Count total DIMM slots (including empty ones).
$ sudo dmidecode -t 17 | grep -c "Size:"
Output: 16

#6 Get serial number for scripting

Output just the serial number string — perfect for inventory scripts and CMDB integration.
$ sudo dmidecode -s system-serial-number
Output: ABC1234

#7 Check CPU socket information

See CPU socket type, installed processor model, core/thread count, and clock speed.
$ sudo dmidecode -t processor | grep -E "Socket|Version|Core|Thread|Speed"

Tips & Best Practices

Requires root access: dmidecode reads from /dev/mem or /sys/firmware/dmi and requires root privileges. Always run with sudo.
Virtual machines: In VMs, dmidecode shows the virtualization platform (VMware, KVM, VirtualBox, Hyper-V) as the manufacturer. Useful for detecting if you are on physical or virtual hardware.
Data accuracy: DMI data is written by the BIOS/UEFI manufacturer. Some fields may be inaccurate or empty on cheap hardware. Cross-reference with lscpu, lspci, and free for verification.
Useful -s keywords: Quick single values: dmidecode -s system-product-name, -s system-serial-number, -s bios-version, -s baseboard-product-name, -s processor-version

Frequently Asked Questions

How do I find my server serial number in Linux?
Run: sudo dmidecode -s system-serial-number. For the service tag (Dell): sudo dmidecode -s system-serial-number. Works remotely via SSH.
How do I check how much RAM I can install?
sudo dmidecode -t 16 shows Maximum Capacity (total supported RAM). sudo dmidecode -t 17 shows each DIMM slot with current size and maximum speed.
Does dmidecode work in virtual machines?
Yes, but it shows VM details: QEMU, VMware Virtual Platform, VirtualBox, etc. as the manufacturer. The hypervisor populates the DMI tables for the guest.
How do I check if my server supports DDR5?
Run sudo dmidecode -t 17 and look at the Type field for installed DIMMs, and check the motherboard/BIOS documentation for supported memory types.

Master Linux with Professional eBooks

Curated IT eBooks covering Linux, DevOps, Cloud, and more

Browse Books →