Driver Manager on Manjaro (mhwd)

manjaro 26 / published / guide #77 / ≈ 4 min read

Manjaro's answer to "do I have the right drivers?" is a small tool called mhwd — short for Manjaro Hardware Detection. It scans your hardware, knows which packages provide which drivers, and installs them (especially the proprietary NVIDIA driver) in a way that survives kernel updates.

There's also a graphical wrapper called Manjaro Settings Manager → Hardware Configuration, which is just mhwd with a friendly face. This guide covers both.

The two flavours of mhwd

  • mhwd — for PCI devices (GPUs, mostly). Picks driver packages.
  • mhwd-kernel — for kernels. Covered in the separate picking a kernel with mhwd guide.

This guide is about the first one.

Step 1: see what hardware is in your box

mhwd -l --pci             # every PCI device, with the suggested driver bundles
mhwd -li                  # what's currently installed
mhwd -lh                  # which devices are hot (need a driver?)

The output groups devices by class. Class 0300 is graphics; that's the one most people care about.

Step 2: auto-install the recommended drivers

The single command that does most of the work:

sudo mhwd -a pci nonfree 0300

Decoded:

  • -a — auto: pick the best match.
  • pci — operate on PCI devices.
  • nonfree — allow proprietary drivers (NVIDIA, etc.). Use free to force open-source only.
  • 0300 — PCI class for graphics. (0200 = network, 0403 = audio, etc.)

For an NVIDIA card, this installs the proprietary driver plus the right utilities, blacklists nouveau, and sets up the kernel module to rebuild with future kernel updates.

Step 3: prefer the free driver instead

Some setups (older NVIDIA cards, Optimus laptops where you'd rather use the Intel iGPU only) want the open driver. Same command, different keyword:

sudo mhwd -a pci free 0300

Step 4: install a specific driver by name

You can also pick exactly what you want:

mhwd -l --pci                      # see the available "video-nvidia-*" or "video-linux" rows
sudo mhwd -i pci video-nvidia      # install that specific driver bundle

The package names usually start with video- for graphics, network- for network adapters.

Step 5: remove a driver

sudo mhwd -r pci video-nvidia

Removing the NVIDIA driver puts you back on nouveau (the open driver). Reboot afterwards.

Step 6: kernels and mhwd talk to each other

When you install a new kernel via mhwd-kernel -i, mhwd automatically rebuilds installed drivers for that kernel. That's why the workflow is "install kernels with mhwd-kernel, install drivers with mhwd, and they'll never get out of sync."

If something does get out of sync (rare, usually after a manual pacman -S of a kernel), force a re-check:

sudo mhwd-kernel --list-installed
sudo mkinitcpio -P                 # rebuild initramfs for every installed kernel
sudo dkms autoinstall              # rebuild DKMS modules (NVIDIA, VirtualBox, …)

The graphical alternative: Hardware Configurator

If you'd rather click than type, Manjaro ships a tool called Hardware Configurator — it does the same job as the commands above, with a list view and an install/remove button per device.

  1. Open the application menu and search for Hardware Configurator (sometimes shown as Manjaro Settings Manager → Hardware Configuration depending on edition).
  2. You'll see a list grouped by device: each row is a piece of hardware with the driver currently in use and the alternatives.
  3. Right-click a device → Install to grab a different driver, or Remove to drop one.
  4. Type your password when prompted, then reboot for graphics drivers to take effect.

Under the hood, Hardware Configurator is literally a thin GUI over mhwd. Both views always agree, and any change you make via the GUI shows up in mhwd -li immediately. Use whichever you're comfortable with.

Hybrid graphics (Optimus / NVIDIA + Intel laptops)

If you have a laptop with both Intel and NVIDIA, mhwd offers two relevant choices:

  • video-hybrid-intel-nvidia-prime — Intel by default, NVIDIA on-demand via PRIME render offload. Best battery, mostly works.
  • video-nvidia — NVIDIA all the time. Worse battery, no display switching weirdness.

Install the hybrid one:

sudo mhwd -i pci video-hybrid-intel-nvidia-prime
sudo reboot

Then to run a single app on the NVIDIA GPU:

prime-run glxinfo | grep "OpenGL renderer"

What if it broke things?

The classic safety routine on Manjaro:

  1. Boot into the older kernel from the GRUB advanced menu.
  2. Roll back from the Timeshift snapshot taken before the driver install.
  3. Or simply sudo mhwd -r pci video-nvidia from a TTY and reboot.

This is why every "first hour with Manjaro" walkthrough tells you to set up Timeshift before touching drivers.

The done check

mhwd -li                                       # what got installed
lspci -nnk | grep -A2 -iE "VGA|3D"             # which driver is currently bound
glxinfo | grep "OpenGL renderer"               # confirm GPU is in use (needs mesa-utils)

If lspci -k shows the driver you expect (e.g. Kernel driver in use: nvidia) and glxinfo reports the right card, you're done.

← back to index