Real-world guides for running NVIDIA GPUs on Linux, written while building a Linux From Scratch system with a GTX 1660 Super on kernel 7.0-rc3.
These aren't theoretical — every issue was encountered, debugged, and solved hands-on. Each guide documents the exact symptoms, root causes, and fixes.
How to compile the NVIDIA proprietary driver (590.x) on Linux kernel 6.15+ / 7.0+, where stock drivers fail to build.
Covers:
EXTRA_CFLAGSremoval in kernel 6.15 (headers silently not found)- BTF/pahole build failure on kernel 7.0
- Kernel 6.19+ API changes (zone_device, folio_free, timer_delete_sync)
- nvidia-uvm.ko build failure and workarounds
- Mesa GLX conflict ("Another vendor already registered")
- Display output naming differences (AMD vs NVIDIA)
- Complete build procedure with CachyOS patches
- Patch compatibility matrix by kernel version
How to get VP9/H264/HEVC hardware video decode working in Firefox with nvidia-vaapi-driver.
Covers:
- nvidia-vaapi-driver VP9 silently disabled without GStreamer codecparsers
- EGL DMA-BUF import failure (
EGL_BAD_PARAMETERon NV12 per-plane import) - Complete 6-layer debugging cheat sheet (GPU → vainfo → vaapitest → gfxVars → DMA-BUF → nvidia-smi)
- Firefox preferences and environment variables
- 7 common pitfalls and how to avoid them
| Component | Detail |
|---|---|
| GPU | ASUS TUF GTX 1660 Super 6GB (Turing TU116) |
| Driver | NVIDIA 590.48.01 |
| Kernel | 7.0.0-rc3 |
| Board | Gigabyte EP43T-UD3L (LGA 775, Legacy BIOS) |
| CPU | Pentium E6500K @ 3.90 GHz (Wolfdale) |
| Display | LG 45GX950A 5K2K OLED, 5120x2160 @ 165Hz via DP 1.4 DSC |
| OS | Linux From Scratch r12.4 (SysV init) |
| Firefox | 148.0.2 (built from source) |
| nvidia-vaapi-driver | 0.0.16 |
| FFmpeg | 7.1.3 (with VA-API hwaccel) |
| Package | Version | Why It Matters |
|---|---|---|
| nvidia-vaapi-driver | >= 0.0.16 | Fixes DMA-BUF export for Firefox EGL import |
| gstreamer | 1.28.1 | Required for nvidia-vaapi-driver VP9 support |
| gst-plugins-bad | 1.28.1 | Provides gstreamer-codecparsers-1.0 |
| CachyOS patches | kernel 7.0 | Fixes EXTRA_CFLAGS, BTF, and 6.19 API changes |
- Linux From Scratch / Gentoo / Arch users building NVIDIA drivers from source
- Anyone running NVIDIA on kernel 6.15+ where the stock driver fails to compile
- Firefox users trying to get hardware video decode working on NVIDIA
- People debugging VA-API issues with
nvidia-smi pmonshowingdec=0
Found an issue or have additional fixes? Open an issue or PR.
These guides are public domain. Use them however you want.