When diagnosing hardware failures or attempting to optimize a Linux server, system administrators often rely on a patchwork of different tools—using lscpu for processor data, lsblk for hard drives, and lsusb for peripherals. This fragmented approach is slow and inefficient. If you need a comprehensive, deeply technical diagnostic report covering absolutely every component installed in the machine, you should use the hwinfo command.
Installing the Utility
Because it is a highly specialized diagnostic tool originally developed for openSUSE, hwinfo is not installed by default on most mainstream distributions like Ubuntu or CentOS. You must install it manually.
On Ubuntu, Debian, or Linux Mint, run:
sudo apt install hwinfo
On Fedora, RHEL, or CentOS, run:
sudo dnf install hwinfo
Generating a Comprehensive Hardware Report
Because hwinfo probes the hardware at a very low level, bypassing the operating system’s abstraction layers to read data directly from the BIOS and controllers, it requires root privileges to function properly.
sudo hwinfo
Running this command without any flags will generate a massive, overwhelming dump of text—often thousands of lines long—detailing the exact vendor ID, firmware revision, memory address, and IRQ interrupt status of every single microchip on the motherboard.
To make this data useful, it is highly recommended that you redirect the output into a text file so you can read it slowly or email it to a hardware vendor for support.
sudo hwinfo > full_system_diagnostic.txt
Filtering by Specific Components
If you do not want to parse a 5,000-line text file, you can instruct hwinfo to only query and report on one specific type of hardware. The syntax is incredibly intuitive.
To view detailed diagnostic information exclusively about your system’s RAM (memory), use the --memory flag:
sudo hwinfo --memory
To view detailed information about the network interface cards (NICs), including their exact MAC addresses and driver modules, run:
sudo hwinfo --network
Other useful filtering flags include --cpu, --disk, --sound, and --monitor. If you just want a quick, high-level summary of the entire system rather than a deep diagnostic dive, use the --short flag.