Use lshw (Hardware lister) to get detailed information on the hardware configuration of your Linux system

There are many ways you can find our various information about the hardware configuration of a Linux system. You can get the information directly from /proc, you can use lspci, etc. And if you are using X then there are many ways to show this information in a nice way. Still, I would like to show you the power of this little tool (lshw) that I found very useful if you are using a SSH connection to the system, and you want to get a quick overview on the hardware details of the system. LSHW can report exact memory configuration, firmware version, mainboard configuration, CPU version and speed, cache configuration, bus speed, etc.

The installation is really simple, and you can find some details about installing lshw on Debian, or Rhel, Centos, or Fedora in the small posts I have written for this.

Once you have lswh installed on the system the usage is straightforth. Here is the short help listing:

Hardware Lister (lshw) - B.02.06
usage: lshw [-format] [-options ...]
lshw -version

-version        print program version (B.02.06)

format can be
-html           output hardware tree as HTML
-xml            output hardware tree as XML
-short          output hardware paths
-businfo        output bus information

options can be
-class CLASS    only show a certain class of hardware
-C CLASS        same as '-class CLASS'
-disable TEST   disable a test (like pci, isapnp, cpuid, etc. )
-enable TEST    enable a test (like pci, isapnp, cpuid, etc. )

Normally I am using this with the -short parameter to get a quick look on the hardware details of the system. It can output to html, or xml if you want that, and used without any parameters will list full details. Here is a sample output taken from a dual Xeon system, where for the sake of the example I have used the -short parameter:

lshw -short
H/W path                    Device     Class      Description
=============================================================
system     NCCH-DL
/0                                     bus        NCCH-DL
/0/0                                   memory     128KB BIOS
/0/4                                   processor  Intel(R) Xeon(TM) CPU 3.20GHz
/0/4/b                                 memory     16KB L1 cache
/0/4/d                                 memory     1MB L2 cache
/0/4/f                                 memory     L3 cache
/0/4/7.1                               processor  Logical CPU
/0/4/7.2                               processor  Logical CPU
/0/5                                   processor  Intel(R) Xeon(TM) CPU 3.20GHz
/0/5/c                                 memory     16KB L1 cache
/0/5/e                                 memory     1MB L2 cache
/0/5/10                                memory     L3 cache
/0/5/7.1                               processor  Logical CPU
/0/5/7.2                               processor  Logical CPU
/0/23                                  memory     2GB System Memory
/0/23/0                                memory     512MB DIMM DDR Synchronous
/0/23/1                                memory     512MB DIMM DDR Synchronous
/0/23/2                                memory     512MB DIMM DDR Synchronous
/0/23/3                                memory     512MB DIMM DDR Synchronous
/0/e0000000                            bridge     82875P/E7210 Memory Controller Hub
/0/e0000000/1                          bridge     82875P Processor to AGP Controller
/0/e0000000/1/0                        display    315PRO PCI/AGP VGA Display Adapter
/0/e0000000/1c                         bridge     6300ESB 64-bit PCI-X Bridge
/0/e0000000/1e                         bridge     82801 PCI Bridge
/0/e0000000/1e/9            scsi0      storage    MegaRAID
/0/e0000000/1e/9/1.0.0      /dev/sda   disk       68GB LD0 RAID1 70135R
/0/e0000000/1e/9/1.0.0/1    /dev/sda1  disk       Linux filesystem partition
/0/e0000000/1e/9/1.0.0/2    /dev/sda2  disk       Linux filesystem partition
/0/e0000000/1e/9/1.0.0/3    /dev/sda3  disk       Linux swap / Solaris partition
/0/e0000000/1e/9/1.0.0/4    /dev/sda4  disk       61GB Extended partition
/0/e0000000/1e/9/1.0.0/4/5  /dev/sda5  disk       Linux filesystem partition
/0/e0000000/1e/9/1.0.0/4/6  /dev/sda6  disk       Linux filesystem partition
/0/e0000000/1e/a            eth0       network    82557/8/9 [Ethernet Pro 100]
/0/e0000000/1f                         bridge     6300ESB LPC Interface Controller
/0/e0000000/1f.1                       storage    6300ESB PATA Storage Controller
/0/e0000000/1f.1/0          ide0       bus        IDE Channel 0
/0/e0000000/1f.1/0/0        /dev/hda   disk       149GB WDC WD1600BB-55GUC0
/0/e0000000/1f.1/0/0/1      /dev/hda1  disk       Linux filesystem partition
/0/e0000000/1f.3                       bus        6300ESB SMBus Controller

If you are using X then you might want to check also the nice front-end lswh provides (you will need to additionally install the lshw-gtk package on debian and lshw-gui on RHEL/Centos/Fedora).

For more details you can check the lshw project home page: http://ezix.org/project/wiki/HardwareLiSter

comments powered by Disqus