# Graphics drivers

pearOS NiceC0re picks your GPU driver for you. There is no driver choice in the boot menu, and there is nothing to configure after installing. This page explains what actually happens, so you know where to look when it goes wrong.

# The short version

Your GPU Live session After installing
GeForce 8000 – GTX 400 (Fermi) nouveau nouveau
GTX 600 / 700 (Kepler) nouveau NVIDIA 470xx
GTX 750 – 1080 Ti (Maxwell, Pascal) nouveau NVIDIA 580xx
GTX 16xx, RTX 20xx – 40xx (Turing, Ampere, Ada) NVIDIA open NVIDIA open
RTX 50xx (Blackwell) NVIDIA open NVIDIA open
AMD amdgpu amdgpu
Intel i915 i915

If you have a Pascal card or older, the live session runs on nouveau and feels slow. That is expected. The proprietary driver for your card is installed during installation, and the installed system is fast.

# Why the live session differs

The ISO carries only the open NVIDIA kernel modules. Those support Turing and newer. The 470xx and 580xx branches that older cards need are several hundred megabytes each, and shipping all three would roughly double the size of the image for a session most people spend ten minutes in.

So the ISO ships one driver and downloads the right one during installation.

# How the live session decides

Nothing is decided at boot time, and nothing is passed on the kernel command line. Instead, every request to load an NVIDIA module is routed through a small script:

# /etc/modprobe.d/nvidia-loader.conf
install nvidia /usr/local/bin/nvidia-module-loader
install nvidia_drm /usr/local/bin/nvidia-module-loader
install nvidia_uvm /usr/local/bin/nvidia-module-loader
install nvidia_modeset /usr/local/bin/nvidia-module-loader

The script asks chwd what profile your hardware actually needs. If the answer is one of the older branches, or nouveau, it loads nouveau. If the answer is the open profile, it loads the NVIDIA modules. If anything goes wrong, it falls back to nouveau.

Why not just blacklist nouveau

Because on a pre-Turing card the open NVIDIA module refuses to load. With nouveau blacklisted the machine would end up with no driver at all and a black screen. The loader decides after it knows what the card is, which is the only order that works for every card.

For this to work, no GPU driver may be loaded from the initramfs, so nouveau is deliberately absent from MODULES and the kms hook is not used. Intel and AMD are unaffected: they are listed explicitly and still load early, so Plymouth keeps its native resolution on those machines.

# How the installed system decides

During installation, chwd --autoconfigure detects the card and installs the matching profile, pulling it from the CachyOS repository. Profile priorities decide the winner when several match:

nouveau            18   old cards, by device ID
nvidia-470xx       14   Kepler
nvidia-580xx       12   Maxwell, Pascal, Volta
nvidia-open        10   everything else NVIDIA

Turing and newer get a prebuilt module, so nothing is compiled. Kepler, Maxwell and Pascal get a DKMS module, which is built against your kernel during installation. That step needs kernel headers, which are installed automatically.

This step needs an internet connection

The driver for an older card is downloaded during installation. Without a network connection the installer still finishes, but the machine boots on nouveau and you will need to run sudo chwd -a -f once you are online.

# Boot menu entries

Entry Use it when
pearOS NiceC0re arch (x86_64, UEFI) Always, unless something is broken
No Plymouth (Debug) The boot splash freezes or crashes
Legacy Hardware (GPU nomodeset) Black screen, or a very old GPU

The BIOS menu offers the same three entries.

# When something goes wrong

Black screen right after selecting the first entry. Reboot and pick Legacy Hardware (GPU nomodeset). That entry disables kernel modesetting and blacklists the NVIDIA modules outright, which gets almost anything to a desktop.

The desktop is slow on an NVIDIA card after installing. Check what was actually installed:

chwd --list-installed
lsmod | grep -E 'nvidia|nouveau'

If nouveau is loaded on a card that should be using NVIDIA, run the detection again:

sudo chwd -a -f
sudo mkinitcpio -P

Then reboot.

Nothing detected at all. Confirm the card is visible to the system:

lspci -d '10de:*:030x' -nn

No output means the GPU is not being reported by the firmware, which is a hardware or BIOS problem rather than a driver one.