Hardware HOWTO: check Linux hardware support before you buy

Updated November 2026

Most PC hardware works with Linux without extra drivers, because the drivers are part of the kernel. The parts that cause trouble are a short list: some Wi-Fi chips, NVIDIA graphics, fingerprint readers, and very new hardware on older kernels. This page shows how to check a machine before you buy it, how to identify what is inside a machine you already have, and how to get missing drivers and firmware.

The old Hardware HOWTO was a long list of supported cards. No list can keep up today. Instead, you look up the exact chip and check that your kernel has a driver for it.

Before you buy

  1. Look for the exact model in a hardware database. linux-hardware.org collects anonymous reports from real machines. It listed 357,968 tested computers and 607,143 tested parts as of November 2026. Search by model name and look at which devices have a working driver.
  2. Check certification lists. The Ubuntu Certified catalog lists laptops, desktops, servers and IoT boards tested by Canonical. The Red Hat Ecosystem Catalog does the same for RHEL servers and workstations.
  3. Consider machines sold with Linux. Several makers sell laptops with Linux preinstalled, and some big brands offer Linux on business models. That is the safest choice.
  4. Find out the chips, not just the brand. A laptop model can ship with different Wi-Fi cards in different years. Ask the seller, or look up reviews that list the chipset.
  5. Test with a live USB. Boot a live image from a USB stick in the shop or within the return period. Check Wi-Fi, sound, suspend and resume, the touchpad, and an external screen.

Known trouble spots

PartUsually fineCheck first
GraphicsIntel (i915 and xe drivers) and AMD Radeon (amdgpu) are in the kernel and work out of the box.NVIDIA: the in-kernel nouveau driver gives low performance on many cards. Most people install NVIDIA's driver, whose open kernel modules support Turing (GeForce 16/RTX 20) and later.
Wi-FiIntel (iwlwifi), MediaTek (mt76), Qualcomm (ath11k, ath12k) are supported kernel drivers.Cheap USB Wi-Fi sticks and some Realtek and Broadcom chips may need out-of-tree drivers. Look up the chip before buying.
Fingerprint readersModels on the libfprint supported list.Many laptop readers have no driver. Check the libfprint list by USB ID.
Printers and scannersPrinters that support IPP Everywhere or AirPrint work without drivers.Very cheap host-based ("GDI") printers. See Printing HOWTO.
Brand-new hardwareAnything older than about a year on a current distribution.Brand-new chips need a recent kernel. On LTS distributions, use the newer kernel your distribution offers (see Kernel HOWTO).

Identify what is inside

These commands list the hardware and, most importantly, which driver handles each device:

lspci -nnk          # PCI devices: graphics, Wi-Fi, Ethernet, sound, NVMe
lsusb               # USB devices with their vendor:product IDs
lsusb -t            # USB tree, with the driver for each interface
lsblk -o NAME,MODEL,SIZE,TRAN   # disks and how they are connected

A typical lspci -nnk entry looks like this:

02:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX200 [8086:2723] (rev 1a)
	Kernel driver in use: iwlwifi
	Kernel modules: iwlwifi

The numbers in brackets, 8086:2723, are the vendor and device IDs. They identify the chip exactly, whatever brand is on the box. "Kernel driver in use" means a driver is loaded. If that line is missing, the device has no working driver yet.

For a full inventory, these tools give more detail (install the package of the same name first):

sudo lshw -short    # every device in one tree
hwinfo --short      # summary by device class (openSUSE tool, packaged elsewhere)
inxi -b             # one-screen summary of CPU, graphics, network, disks

Before you paste output into a forum, hide serial numbers and addresses. With inxi, add -z (for example inxi -bz). With other tools, remove them yourself.

Find out why a device does not work

  1. Read the kernel log. Most problems show up here:
    sudo dmesg | grep -iE 'firmware|error|fail'
    journalctl -k -b    # kernel messages from this boot
  2. Search for the ID. Search the vendor:device ID (for example 8086:2723) on linux-hardware.org or a search engine. You will see which driver supports it and from which kernel version.
  3. Check the driver exists. modinfo iwlwifi shows whether the module is installed. sudo modprobe iwlwifi tries to load it. See Plug-and-Play HOWTO for modules and udev.
  4. Check the kernel version. uname -r. If support arrived in a newer kernel, upgrade the kernel through your distribution.

Firmware

Many devices (Wi-Fi, Bluetooth, graphics, some network cards) need a firmware file: a small program the driver uploads into the device at start-up. The driver is in the kernel, but the firmware is a separate file under /lib/firmware. A typical error is Direct firmware load for iwlwifi-... failed with error -2, which means the file is missing.

Firmware files come from the linux-firmware collection maintained at kernel.org, packaged by every distribution:

Updating device firmware with fwupd

BIOS/UEFI, SSD, dock, Thunderbolt and many USB device makers publish firmware updates through the LVFS (Linux Vendor Firmware Service). The fwupd service installs them. GNOME Software and KDE Discover show these updates automatically. From a terminal:

fwupdmgr get-devices      # devices fwupd can update, with current versions
fwupdmgr refresh          # download the latest list of updates
fwupdmgr get-updates      # show available updates
fwupdmgr update           # install them (may reboot to finish)

Plug in the laptop charger before a BIOS update. Do not switch off during the update. If your device is not listed, the maker does not publish to the LVFS. Use the vendor's own method, often a file run from the firmware setup menu. fwupdmgr security shows a report of platform security settings such as Secure Boot and TPM.

Share a hardware report

If a device works, or does not, a report helps the next buyer. The hw-probe tool uploads an anonymous report to linux-hardware.org and prints a link you can post when asking for help:

sudo -E hw-probe -all -upload

It hashes MAC addresses and serial numbers instead of sending them, and leaves out user names, host names and IP addresses. Install it from your distribution or as a Flatpak or AppImage, as described on the site.

Quick checklist

The classic Hardware HOWTO, with its 2000s-era device lists, is kept by the Linux Documentation Project at tldp.org.

Sources