# Linux Mint: Zweiter Monitor verschwunden – NVIDIA-Treiber durch Secure Boot blockiert

Nach einem Start von Linux Mint funktionierte plötzlich nur noch einer von zwei Bildschirmen. Die Grafikkarte wurde grundsätzlich erkannt, der NVIDIA-Treiber aber offenbar nicht korrekt geladen.

Da parallel Windows 11 installiert war und UEFI Secure Boot aktiviert war, lag der Verdacht nahe, dass Secure Boot eine Rolle spielen könnte. Statt Secure Boot sofort im UEFI abzuschalten, ließ sich die Ursache zunächst unter Linux genauer prüfen.

## Das Problem

Das auffälligste Symptom:

- nur ein Bildschirm wurde erkannt,
- die NVIDIA-Grafikkarte war vorhanden,
- die eigentliche Grafikbeschleunigung funktionierte aber nicht.

Ein erster Check mit:

```bash
xrandr
inxi -Gxx
lspci | grep -Ei 'vga|3d|display'

zeigte im konkreten Fall eine NVIDIA GeForce GTX 1650.

Entscheidend waren aber mehrere andere Hinweise aus inxi:

driver: N/A
gpu: N/A

Außerdem wurde als OpenGL-Renderer nur Software-Rendering verwendet:

renderer: llvmpipe

xrandr erkannte ebenfalls nur einen einzigen Ausgang.

Damit war bereits klar: Die Grafikkarte selbst wurde vom System gesehen, aber der NVIDIA-Treiber arbeitete nicht korrekt.

Ist Secure Boot wirklich die Ursache?

Zunächst ließ sich prüfen, ob Secure Boot überhaupt aktiv war:

mokutil --sb-state

Die Ausgabe:

SecureBoot enabled

belegt zunächst nur, dass Secure Boot eingeschaltet ist. Sie beweist noch nicht, dass Secure Boot auch den NVIDIA-Treiber blockiert.

Deshalb folgten weitere Prüfungen:

ubuntu-drivers devices

dpkg -l | grep -Ei 'nvidia|linux-modules-nvidia'

lsmod | grep -Ei 'nvidia|nouveau'

modinfo nvidia 2>/dev/null | grep -Ei 'filename|version|signer|sig_id'

journalctl -k -b | grep -Ei 'nvidia|secure boot|mok|module verification|lockdown|key'

Der entscheidende Befund

Die NVIDIA-Pakete waren installiert. Im konkreten Fall war unter anderem der offene NVIDIA-Kerneltreiber der 580er-Reihe vorhanden.

modinfo zeigte außerdem, dass das NVIDIA-Modul signiert war:

sig_id: PKCS#7
signer: localhost.localdomain Secure Boot Module Signature key

Im Kernel-Log erschienen gleichzeitig Meldungen wie:

secureboot: Secure boot enabled

und:

Kernel is locked down from EFI Secure Boot mode

Vor allem aber:

Loading of module with unavailable key is rejected

Damit war die Ursache nicht mehr nur eine Vermutung.

Der NVIDIA-Kerneltreiber war vorhanden und signiert, aber der dafür verwendete Schlüssel wurde von Secure Boot nicht als vertrauenswürdig akzeptiert. Das Modul wurde deshalb nicht geladen.

Lösung: MOK-Schlüssel eintragen statt Secure Boot abschalten

Secure Boot musste in diesem Fall nicht deaktiviert werden.

Stattdessen wurde der bereits vorbereitete Machine Owner Key, kurz MOK, zur Registrierung vorgemerkt:

sudo update-secureboot-policy --enroll-key

Darauf erschien ein textbasierter Dialog mit dem Hinweis, dass für die Verwendung von Drittanbieter-Treibern unter Secure Boot ein Machine Owner Key registriert werden müsse.

In diesem Dialog wurde ein Passwort vergeben.

Falls sich ein solcher Dialog nicht mit der Maus bedienen lässt, funktionieren typischerweise:

Danach wurde das System neu gestartet.

MOK beim Neustart bestätigen

Beim nächsten Start erschien der MOK-Manager.

Dort wurde der vorbereitete Schlüssel über den Menüpunkt

Enroll MOK

registriert und mit dem zuvor vergebenen Passwort bestätigt.

Secure Boot selbst blieb dabei aktiviert.

Anschließend startete Linux Mint wieder normal.

Ergebnis prüfen

Direkt nach dem Neustart funktionierten beide Monitore wieder.

Zusätzlich ließ sich der Zustand mit folgenden Befehlen kontrollieren:

mokutil --sb-state
lsmod | grep nvidia
nvidia-smi

Secure Boot war weiterhin aktiv:

SecureBoot enabled

Gleichzeitig waren nun die NVIDIA-Module geladen, unter anderem:

nvidia
nvidia_modeset
nvidia_drm
nvidia_uvm

Auch nvidia-smi erkannte die GeForce GTX 1650 wieder korrekt und zeigte den NVIDIA-Treiber als aktiv an.

Damit war der Fehler behoben.

Was hier tatsächlich passiert war

Der Ablauf ließ sich in diesem Fall eindeutig nachvollziehen:

  1. Die NVIDIA-Grafikkarte wurde vom System erkannt.
  2. Der NVIDIA-Kerneltreiber war installiert.
  3. Das Kernelmodul war signiert.
  4. Secure Boot war aktiviert.
  5. Der verwendete Signaturschlüssel war nicht als vertrauenswürdig registriert.
  6. Der Kernel verweigerte deshalb das Laden des NVIDIA-Moduls.
  7. Linux fiel auf Software-Rendering zurück.
  8. Dadurch stand auch die normale NVIDIA-Ausgabe für die angeschlossenen Monitore nicht zur Verfügung.
  9. Nach Registrierung des MOK-Schlüssels konnte das Modul geladen werden.
  10. Beide Bildschirme funktionierten wieder.

Diagnose in Kurzform

Wenn Linux Mint mit NVIDIA-Grafik plötzlich nur noch einen Monitor erkennt, kann folgende Reihenfolge sinnvoll sein:

mokutil --sb-state
xrandr
inxi -Gxx
lspci | grep -Ei 'vga|3d|display'
ubuntu-drivers devices
dpkg -l | grep -Ei 'nvidia|linux-modules-nvidia'
lsmod | grep -Ei 'nvidia|nouveau'
modinfo nvidia 2>/dev/null | grep -Ei 'filename|version|signer|sig_id'
journalctl -k -b | grep -Ei 'nvidia|secure boot|mok|module verification|lockdown|key'

Besonders aussagekräftig ist eine Kombination aus:

driver: N/A

oder Software-Rendering über:

llvmpipe

und Kernel-Meldungen wie:

Loading of module with unavailable key is rejected

Erst damit ist tatsächlich belegt, dass nicht nur ein allgemeines NVIDIA-Problem vorliegt, sondern die Vertrauenskette von Secure Boot das Laden des Moduls verhindert.

Fazit

In diesem Fall war das Abschalten von Secure Boot nicht nötig.

Die bessere Lösung bestand darin, den bereits signierten NVIDIA-Kerneltreiber über einen registrierten Machine Owner Key für Secure Boot vertrauenswürdig zu machen.

Der Vorteil: Der NVIDIA-Treiber funktioniert wieder, beide Monitore stehen zur Verfügung und Secure Boot kann aktiviert bleiben.


Für „Patches & Notes“ eignet sich das aus meiner Sicht gut als klassischer **Fehlerbild → Diagnose → belegte Ursache → Reparatur → Verifikation**-Artikel. Ich habe dabei bewusst die konkreten lokalen Hostnamen und den ausgegebenen lokalen Systempfad des MOK-Schlüssels weggelassen.