Make Room!

Charly's Column – lshw

Article from Issue 232/2020

In order to avoid complaints from his children, Charly prefers to use lshw instead of a screwdriver to analyze his home firewall PC's hardware details.

For many years, a small, fanless industrial PC with two Gigabit Ethernet interfaces has served as a firewall in my home storeroom. The hardware is not very powerful, but it is just about sufficient for forwarding network packets and a few iptables rules.

I seem to recall that this device has 2GB RAM – but whether in the form of a 2GB module or as two 1GB modules, I really don't know. How many RAM slots are there anyway, and what is the maximum amount of RAM I could use if I decided to upgrade? I would like to find that out without taking the firewall off the Internet and removing its case, because that always provokes disrespectful comments from my kids: "What kind of availability is that, Dad?"

Hardware Lister, lshw, [1] is a reliable tool for answering questions about hardware. It elicits extensive information from the system about every installed hardware component – usually more than I ever wanted to know.

In daily practice, I usually misuse lshw to find out whether I'm on a physical server or a virtual machine (VM). As always, many roads lead to Rome, but it's hard to get there faster than with lshw:

$ lshw -c system | grep -i product
product: VMware Virtual Platform

Ah, a VM. Sometimes you see KVM or VirtualBox, and so on, depending on the virtualization platform.

But back to my small firewall and the actual purpose of lshw. For example, typing

lshw -C cpu

gives you all the information that lshw finds about the installed CPU. In this case, it is an Intel Atom with a 32-bit core and two logical CPUs. My question about the RAM is also answered by lshw. The command

lshw -short -C memory

shows that there are four DIMM banks, of which only one is occupied by a 2GB module (Figure 1).

Figure 1: lshw's diagnosis is that there are four DIMM banks in Charly's firewall containing just one lonely 2GB module.

Despite the wealth of information, there is one little thing that lshw can't help me with: It doesn't tell me the maximum amount of RAM I can use. For this, I have to dig a little deeper into the toolbox and pull out dmidecode. The following command gives me the desired results:

$ dmidecode -t memory | grep size -i

With this, I discovered that the maximum expansion capacity is four DIMMs of 4GB each (Figure 2). Now, let me just check what I have available in spare RAM.

Figure 2: Potential to expand: Charly's firewall computer can take up to 16GB RAM.

The Author

Charly Kühnast manages Unix systems in the data center in the Lower Rhine region of Germany. His responsibilities include ensuring the security and availability of firewalls and the DMZ.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Where Did It Go?

    To write low-level scripts, as an admin, you need to know whether you are currently on a physical or a virtual machine. Charly finds out with a couple of clever hacks.

  • Charly's Column – SparkFun

    Is your neighbor burning the wrong kind of wood or did a couple of VWs just pass by your house? Charly finds out with a sensor. For an attractive approach to visualizing boring measurement figures, you can either use your own web server or rely on a specialized service like SparkFun.

  • The sys admin's daily grind: DenyHosts

    When it comes to warding off unwanted login tests on SSH port 22 and others, Charly likes to keep an ace or two up his sleeve by relying on DenyHosts instead of Fail2ban.

  • Charly's Column – Doorbell Pi

    When Charly puts on his headphones at home, he often fails to hear the doorbell. So, he dreamed up a solution with a Raspberry Pi Zero, a noise detector, and a power outlet with a LAN connection.

  • Charly's Column – The Fuck

    In the 25 years of Linux kernel history, a huge amount of code and many comments have accumulated. They can be explanatory, enlightening, funny, or even profane. Charly prefers to do things differently, so he types fuck in the shell.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More