Don’t you hate when you need to know and exact model of a specific hardware component but don’t want to open up the machine or find the original documentation on it? Never fear, Linux has you covered.

There are a variety of ways to find out what kind of hardware you’re running, but one of the easiest ways that gives you large amounts of valuable data is to use lshw (Hardware Lister). I’m running Ubuntu 8.10 (Intrepid Ibex), and lshw is installed by default. You can test if you have lshw installed on you system by running the following command:

sudo lshw

If you get a large listing spewed out on your terminal, you’re good to go. Skip down to the Using lshw section. If you run the lshw command and get a “bash: lshw: command not found” error, you should be able to install lshw using your system’s package manager easily.

Installing

lshw is available on most package management systems.

If you use APT (Debian-based distros: Ubuntu, Linux Mint, and others), run the following command in terminal:

sudo apt-get install lshw

If you use Yum (Red Hat, Fedora, CentOS, Yellow Dog Linux, etc), run the following command in terminal:

sudo yum install lshw

If these instructions don’t match your package manager, look for specific instructions on the lshw site to get it installed on your system.

Using lshw

If you just run lshw by itself on the command line, your screen will be flooded with large amounts of text. Fortunately, it is very easy to get lshw to give you output that meets your needs.

Shorter Output

If you just quickly want to quickly find the chipset version of a piece of hardware is, you can run the following to provide a very short output that should give you what you need:

sudo lshw -short

For example, here is a sample when I run this on my Dell Studio 17 laptop (Note: I’ve removed a large portion of the output to make this fit):

Device   Class       Description
=====================================
         system      Studio 1735
         bus         0H275K
         memory      64KiB BIOS
         processor   Intel(R) Core(TM)2 Duo CPU T8100  @ 2.10GHz
         memory      32KiB L1 cache
         memory      3MiB L2 cache
         memory      4GiB System Memory
         memory      2GiB DIMM DDR Synchronous 667 MHz (1.5 ns)
         memory      2GiB DIMM DDR Synchronous 667 MHz (1.5 ns)
         display     Mobility Radeon HD 3650
         multimedia  RV635 Audio device [Radeon HD 3600 Series]
         multimedia  82801H (ICH8 Family) HD Audio Controller
eth1     network     BCM4322 802.11a/b/g/n Wireless LAN Controller
eth0     network     NetLink BCM5784M Gigabit Ethernet PCIe
/dev/sda disk        250GB WDC WD2500BEVS-7

This of course leaves out a lot of detail. Maybe we just need to store the data somewhere so it’s easier to work with.

Storing Output to a File

If you’d like to put all the lshw output into a file, you can do so easily from the terminal with output redirection.

sudo lshw > hardware.txt

This will run the lshw command and put all the output into a file in the current directory called hardware.txt. Note that this will replace any file in the current directory called hardware.txt. Make sure that you either backup the file, give the output file a unique name, or are prepared to lose that original file’s information.

Now you can open the hardware.txt file with your favorite editor and look through the informations.

Creating HTML or XML Output

lshw has the ability to format its output in either HTML or XML. This can be very helpful if you want to post your hardware specs somewhere online to be viewed or to send the data to a storage system.

To create HTML output, simply give lshw the -html option:

sudo lshw -html > hardware.html

This will format the output into a HTML document and save the output in a file called hardware.html.

Creating XML is done with the -xml option:

sudo lshw -xml > hardware.xml

Like before, this will output the document in XML format and save it to hardware.xml.

Conclusion

lshw is a fantastic tool to quickly and easily find out what hardware is running on your system. Not only that, it can provide output can be given to others when you ask for help about the hardware on your system.

I saved the HTML output for my Dell Studio 17 system. You can see it here.