Locate and fix hardware faults

Case Study

© Lead Image © Sean Gladwell, Fotolia.com

© Lead Image © Sean Gladwell, Fotolia.com

Article from Issue 205/2017

If your hardware is causing trouble, good advice can be hard to find, but Linux users have a number of easily installed analysis tools to help systematically track down the root cause of problems. This month, we present a selection of these tools.

Because computer systems are complex, problems are often difficult to identify when working on a PC or server. Besides software bugs and faulty configurations, hardware defects are the main cause of failures. An expensive and time-consuming replacement will obviously show which of the components is no longer working correctly; however, various Linux programs and kernel modules support troubleshooting and help you find problem configurations. In this article, I take a closer look at some of these tools.

System Components

Sometimes even identifying the hardware can be tricky. Laptops and convertibles whose components differ from current standards often make it difficult for users and administrators to identify the chipsets and GPUs or the status of individual assemblies. A hardware overview should determine the actual capacity of a laptop battery or the motherboard and BIOS revision.

Sometimes you can reach your target by replacing a flat battery or updating obsolete firmware. Especially with mobile systems, reading out the temperature values can point to error sources, such as a dried up thermal paste or a dusty fan that is consequently working inefficiently.

You can't normally expect software to repair your defective hardware, but targeted tests reveal error sources. The right choice of analysis software helps to isolate these errors quickly. Sometimes, proactive replacement of individual components makes sense, for example, for disks that show the first symptoms of impending faults. Hardware analysis tools and their test routines make a valuable contribution to data security.


While the features included in most graphical desktop environments often only support superficial diagnosis, the inxi [1] command-line tool, which is based on dmidecode [2], provides a detailed overview of the hardware installed on the system. Inxi is available in almost all software repositories and is therefore easily installed with your distribution's package manager.

The inxi -help command displays the script's very extensive parameter list. Inxi primarily provides detailed hardware information, but it also lists some operating system-specific data, including the kernel version, number of processes, memory consumption, init system with version number, run level, and desktop environment. The inxi -v 7 command, which the admin runs with root privileges, provides a largely complete list, including the temperature values reported by sensors in the system (Figure 1).

Figure 1: Inxi is visually very plain but technically provides very detailed information about installed hardware.

Although inxi will run with normal user rights, you won't see all the data: Details about the installed memory, such as the manufacturer, clock speed, bus width, and slot assignments, are missing in user mode. In addition to hardware-specific information, the software displays the BIOS firmware revision and the exact partitioning data for the mass storage media, and it identifies network cards, including wireless WAN hardware. If the server has a RAID array, it also appears in the output with all the relevant details. The software reads the laptop batteries' firmware and provides information on defective or exhausted cells based on the capacity data and – if available – the number of charge cycles.

If you don't need the full output, inxi lets you display individual, optionally combinable parameters in a short listing. Additionally, you can set the level of detail for the program output with the -v <detail level> parameter, which ranges from 0 to 7. The use of color combinations makes the output clearer and easier to read.


You should always keep inxi up to date, because new hardware is constantly coming onto the market. Thus, older versions may display components and their data inaccurately or incompletely. Inxi can be updated using the package manager, by entering inxi -U with root privileges. The software then checks the version status and, if necessary, loads a newer version off the Internet; this also updates the man page (Figure 2).

Figure 2: Inxi has its own update function to detect the latest hardware.

Because of its detailed detection function, inxi is very well suited to broadly isolate hardware problems: If certain components do not show up in the detail view or data is incorrect (e.g., the amount of RAM), you can draw conclusions about possible defects.

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

  • Charly's Column – inxi

    The name of the tool that columnist Charly Kühnast recommends this month may sound like the Teletubbies, but it is but far from infantile when it comes to functionality. In fact, inxi provides detailed and precisely controllable hardware and system usage information for the host computer.

  • inxi-gui

    Inxi gives users a comprehensive inventory of their system hardware – but only at the command line. Inxi-gui, a graphical front end, makes things a little more convenient.

  • Inxi

    The inxi command-line tool provides useful information from the depths of the system.

  • StressLinux

    StressLinux helps you optimize your hardware and eke out more performance from individual components.

  • Ask Klaus!
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