Hardware Guides

Hardware Guides

Ubuntu hardware guides covering Nvidia Optimus, hybrid GPU setups, printer drivers, scanners, and peripheral troubleshooting โ€” tested on real machines, not VMs.

Hardware is where Ubuntu’s “it just works” promise meets the messy, frustrating reality of vendor support, proprietary firmware blobs, and kernel module versioning. This section covers the hardware topics that generate the most questions and the most headaches: hybrid GPU configurations (especially Nvidia Optimus), printer and scanner drivers for manufacturers who treat Linux as an afterthought, and the peripheral quirks that surface whenever you try to run Ubuntu on hardware that wasn’t designed with it in mind. We write from direct experience โ€” real laptops, real printers, real hours spent staring at dmesg output โ€” because that’s the only way to produce guides that actually help. If you’re looking for the CLI fundamentals behind driver management and kernel modules, our Documentation section has the foundational knowledge.

The Hardware Challenge on Ubuntu

Let’s be honest: hardware support on Linux is dramatically better than it was a decade ago. Kernel 6.x ships with drivers for an enormous range of devices, and Ubuntu’s Hardware Enablement (HWE) stacks bring newer kernel and Mesa versions to LTS releases so you don’t have to wait two years for support. But “dramatically better” doesn’t mean “solved.”

The pain points that remain tend to cluster around:

  • Hybrid GPU laptops โ€” Intel/AMD integrated + Nvidia discrete. The hardware works fine; the software stack for switching between GPUs has been a moving target since 2010.
  • Printers from Canon, Brother, and HP โ€” Each vendor handles Linux drivers differently, and “differently” is a charitable word for what Canon does.
  • Wireless adapters โ€” Most Intel and Qualcomm/Atheros chips work out of the box; Broadcom and Realtek are another story entirely.
  • Bluetooth peripherals โ€” Pairing often works; reconnecting reliably after suspend is another matter.
  • Fingerprint readers โ€” fprintd support varies wildly by sensor model and firmware version.

This section tackles these topics one at a time, with the kind of detail that actually gets your hardware working.

Nvidia Optimus on Ubuntu: PRIME, Bumblebee, and Beyond

This is the big one. Nvidia Optimus โ€” the technology that lets a laptop switch between an integrated GPU (for battery life) and a discrete Nvidia GPU (for performance) โ€” has been a source of confusion on Linux for over a decade. The landscape has shifted significantly:

  • Bumblebee was the original community solution. It worked, mostly, but required manual configuration and had performance limitations due to the way it copied frames between GPUs.
  • PRIME Offloading (nvidia-prime) is the modern approach on Ubuntu. You can switch profiles via prime-select or the Nvidia Settings GUI, and recent driver versions support on-demand rendering where the discrete GPU only activates when explicitly requested.
  • Reverse PRIME handles the case where the Nvidia GPU drives the display outputs (common on docking stations) while the integrated GPU handles the internal panel.

Our Optimus guide covers all three approaches, explains which one applies to your hardware and Ubuntu version, and walks through the troubleshooting steps for the most common failure modes: black screen after driver install, login loop with GDM, prime-select switching that doesn’t stick, and the dreaded “Xorg falls back to llvmpipe” scenario.

If you’ve got an Nvidia GPU in your Ubuntu laptop, start here. It’s the most-read page in this section for a reason.

What We Cover (and How)

Every hardware guide on Ubuntu Portal follows a practical structure:

  1. Hardware landscape โ€” What the technology is, which variants exist, and what Ubuntu supports out of the box.
  2. Installation and configuration โ€” Step-by-step instructions with exact commands, including which packages to install and which to avoid.
  3. Verification โ€” How to confirm that your hardware is actually working correctly after setup. This matters more than most guides acknowledge โ€” a driver can install without errors and still not be active.
  4. Troubleshooting โ€” Specific symptoms matched to specific causes. Not “check the logs” (though yes, check the logs) โ€” more like “if you see NVRM: GPU at PCI:0000:01:00: GPU has fallen off the bus in dmesg, here’s what that means and here’s how to fix it.”
  5. Common pitfalls โ€” The mistakes that trip up experienced users, not just beginners. Skipping dkms after a kernel update, mixing PPA drivers with Ubuntu’s own, forgetting to update initramfs.
  6. Related reading โ€” Internal links to Ubuntu Portal pages that cover related topics.

We test on actual hardware whenever possible. VM testing is useful for some workflows, but GPU drivers, printer configuration, and Bluetooth pairing are not among them.

Printer and Scanner Drivers

After GPUs, printers and scanners are the second most common hardware headache on Ubuntu. The situation varies by manufacturer:

  • HP โ€” Generally the best Linux support, thanks to HPLIP (HP Linux Imaging and Printing). Most HP printers work with the hplip package in Ubuntu’s repos. Occasionally you need a newer version from HP’s website for very recent models.
  • Brother โ€” Provides Linux drivers as .deb packages for most of their printers and multifunction devices. The install process is slightly clunky (their driver installer scripts make assumptions about your system), but the results are generally reliable.
  • Canon โ€” The most frustrating vendor for Linux users. Drivers are released sporadically, sometimes only as RPM packages (which need alien to convert), and documentation is minimal. We have detailed guides for specific Canon models because the generic instructions often don’t work.
  • Epson โ€” Provides Linux drivers through the epson-inkjet-printer-escpr packages and their Download Center. Support is decent for recent models.

The CUPS (Common Unix Printing System) framework handles most of the heavy lifting on Ubuntu, and system-config-printer or the GNOME Settings printer panel is where you start. But when auto-detection fails โ€” and with certain models, it will โ€” you need to know how to install drivers manually, configure PPD files, and troubleshoot connection issues.

Wireless and Networking Hardware

Most wireless chipsets work out of the box on Ubuntu in 2024. The Intel iwlwifi driver covers the vast majority of modern laptop wireless cards, and Qualcomm/Atheros chips using ath10k and ath11k are similarly well-supported.

The exceptions:

  • Broadcom โ€” Some models need the bcmwl-kernel-source package (Broadcom’s proprietary STA driver) or the b43 firmware. The Additional Drivers tool in Ubuntu usually detects this, but it’s worth knowing how to install manually if you’re working from a fresh install with no network access (a fun chicken-and-egg problem).
  • Realtek โ€” USB wireless adapters using Realtek chipsets often need out-of-tree drivers. The rtl8812au and rtl8821cu drivers from GitHub repositories are commonly needed. These drivers need to be rebuilt after every kernel update โ€” dkms handles this, but only if you set it up correctly.
  • MediaTek โ€” Increasingly common in newer laptops. Kernel 6.x has improved support substantially, but some very new chipsets may need a newer kernel than your LTS ships with (this is where HWE stacks help).

Bluetooth, Fingerprint, and Other Peripherals

Bluetooth works reasonably well on Ubuntu for audio devices and keyboards. The rough edges appear with:

  • Reconnection after suspend โ€” Many Bluetooth devices fail to reconnect automatically when the laptop wakes from sleep. The fix varies: sometimes it’s a tlp power management setting disabling the Bluetooth controller, sometimes it’s a kernel regression, sometimes it’s a firmware quirk.
  • Bluetooth codecs โ€” If you want high-quality audio (AAC, aptX, LDAC), you’ll need PipeWire configured correctly. PulseAudio’s Bluetooth support is limited to SBC by default.

Fingerprint readers are supported through fprintd and libfprint. Coverage depends entirely on the sensor model โ€” Synaptics and Elan sensors have the broadest support. Check lsusb for your sensor’s USB ID and compare it against the libfprint supported devices list before assuming it’ll work.

Getting Help

If your hardware issue isn’t covered yet in this section, here’s the diagnostic starting point:

# Identify your hardware
lspci -nnk     # PCI devices (GPUs, network cards, etc.)
lsusb          # USB devices (printers, scanners, wireless adapters)
dmesg | tail -50   # Recent kernel messages (errors show up here)

These three commands give you the information you need to search effectively and to provide useful details if you ask for help. From there, check the Nvidia Optimus guide if it’s a GPU issue, or browse the Documentation section for the underlying system concepts โ€” kernel modules, dkms, firmware loading โ€” that apply across all hardware topics.