[Bug] nvidia-gpu-firmware upgrade leaves Ada GPU firmware dirs as ".rpmmoved" without creating replacement symlinks → nouveau GSP init fails → black screen on boot (RTX 4050 / AD107)

Summary

After a dom0 update, the nvidia-gpu-firmware package (part of linux-firmware) deduplicated the GSP firmware for Ada GPUs by replacing the physical directories ad103, ad104, ad106, ad107 with symlinks to ad102. During the RPM upgrade, the old physical directories were renamed to *.rpmmovedbut the replacement symlinks were never created. Nouveau then fails to find the required GSP firmware at boot, GPU probe fails entirely, no DRM device is created, and the system boots to a black screen with X unable to start on any driver path.

This is a known cross-distro packaging pitfall: Debian has already confirmed and fixed the equivalent bug, and Arch Linux published a manual-intervention notice for it. The RPM path (affecting Fedora-based dom0 in Qubes) appears to still be unfixed — see “Prior art” below.

Affected setup

  • Qubes OS R4.2.4, dom0 fc37

  • Laptop: Acer Predator, NVIDIA RTX 4050 Mobile (AD107M), NVIDIA-only internal display path (G-SYNC panel; no iGPU output to the panel)

  • nvidia-gpu-firmware-20260519-1.fc37.noarch

  • Kernels ≥ 6.11 affected (nouveau requires GSP firmware on Ada); kernel 6.6 LTS still boots via efifb without it, which is what made recovery possible

Symptoms

  • LUKS passphrase prompt degrades to text mode (plymouth graphical splash gone)

  • After decryption: black screen with blinking cursor

  • dmesg:

nouveau 0000:01:00.0: gsp: Failed to load required firmware for device
nouveau 0000:01:00.0: gsp ctor failed: -2
nouveau 0000:01:00.0: probe with driver nouveau failed with error -2

/dev/dri/ absent; /dev/fb0 absent on newer kernels; Xorg dies with “no screens found” on modesetting, fbdev and vesa alike

  • Notably hard to diagnose on Qubes: with no DRM device, logind reports CanGraphical=no for the seat, so lightdm waits indefinitely and never even attempts to start X — black screen with zero errors in any X or greeter log

Root cause

$ ls /lib/firmware/nvidia/ | grep ad10
ad102
ad103.rpmmoved
ad104.rpmmoved
ad106.rpmmoved
ad107.rpmmoved

The package intends ad107 -> ad102 (firmware is identical across these Ada variants), but after the upgrade only the .rpmmoved backup exists and the symlink is missing. Nouveau looks up /lib/firmware/nvidia/ad107/gsp/gsp-*.bin, gets ENOENT (-2), and aborts GPU initialization.

Fix / Workaround

sudo ln -s ad102 /lib/firmware/nvidia/ad107
sudo dracut -f --regenerate-all
reboot

After this, nouveau initializes with GSP firmware, /dev/dri/card0 appears, and graphical boot works normally on the latest kernel (7.0.6 in my case).

Users currently locked out can recover first by booting an older LTS kernel (6.6.x) from GRUB “Advanced options” — it still brings up an EFI framebuffer without nouveau.

Prior art (same bug in other distros)

  • Debian Bug #1112208 (firmware-nvidia-graphics): identical failure on an RTX 4060 (AD107) — failed to load nvidia/ad107/gsp/gsp-570.144.bin (-2) after a kernel update, fixed by the same symlink. The maintainer confirmed the root cause: physical directories were replaced by symlinks in the package, and dpkg does not handle this transition correctly on upgrade. Fixed in firmware-nonfree 20251021-1.

  • Arch Linux news, 2025-06: “linux-firmware >= 20250613 upgrade requires manual intervention” — the same ad103/ad104/ad106/ad107 directory-to-symlink conflict, requiring users to remove and reinstall linux-firmware.

  • openSUSE forums: RTX 4050 (AD107) user reporting the same gsp ctor failed: -2 with kernel-firmware-nvidia installed.

The dpkg failure mode (Debian) and the RPM .rpmmoved failure mode (Fedora/Qubes) differ mechanically but produce the same result: firmware directory gone, symlink missing, nouveau unable to init. The Debian side is fixed; the RPM side apparently is not.

Suggested action

  1. The RPM packaging (e.g. a %posttrans scriptlet) should ensure the symlinks are actually created when physical directories are replaced, or detect the .rpmmoved + missing-symlink state and repair it.

  2. Since the failure on Qubes is particularly opaque (silent lightdm wait, no X logs), consider a note in Qubes documentation / known issues for RTX 40 laptop users.

This likely affects all Ada laptop GPUs (ad103/ad104/ad106/ad107 — mobile RTX 4050 through 4080) on any Fedora-based system with this firmware package version, with NVIDIA-only display laptops hit hardest. Happy to provide full logs.

1 Like

Dump it within Markdown triple backtick quotes.

1 Like

1 Like

1 Like