Nvidia Treiber wird nicht geladen

Hallo zusammen,

da bei meiner älteren Manjaro-Installation nach dem Update von linux66 die Nvidia-Treiber nicht mehr geladen wurden (mit linux61 lief es ohne Probleme), habe ich den Versuch gewagt, ob es mit der neueren ISO nun funktioniert.
In der Live-Umgebung der manjaro-kde-21.1.1-231223-linux66.iso wird der Treiber ohne Fehler geladen.
Sobald ich die neue Installation jedoch starte, sehe ich mit inxi -G, dass der Treiber wieder nicht geladen wird.

inxi -b                                                                                                          ✔  5s  
System:
  Host: Manjaro-Legion5 Kernel: 6.6.8-2-MANJARO arch: x86_64 bits: 64
    Desktop: KDE Plasma v: 5.27.10 Distro: Manjaro Linux
Machine:
  Type: Laptop System: LENOVO product: 82RF v: Legion 5 Pro 16IAH7H
    serial: <superuser required>
  Mobo: LENOVO model: LNVNB161216 v: SDK0T76461 WIN
    serial: <superuser required> UEFI: LENOVO v: J2CN56WW date: 09/18/2023
Battery:
  ID-1: BAT0 charge: 62.6 Wh (80.1%) condition: 78.2/80.0 Wh (97.8%)
CPU:
  Info: 14-core (6-mt/8-st) 12th Gen Intel Core i7-12700H [MST AMCP]
    speed (MHz): avg: 539 min/max: 400/4600:4700:3500
Graphics:
  Device-1: Intel Alder Lake-P GT2 [Iris Xe Graphics] driver: i915 v: kernel
  Device-2: NVIDIA GA104M [Geforce RTX 3070 Ti Laptop GPU] driver: nvidia
    v: 545.29.06
  Device-3: Chicony Integrated Camera driver: uvcvideo type: USB
  Display: x11 server: X.Org v: 21.1.10 driver: X: loaded: modesetting
    failed: nvidia dri: iris gpu: i915 s-res: 2560x1600 resolution: 2560x1600
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: intel mesa v: 23.1.9-manjaro1.1
    renderer: Mesa Intel Graphics (ADL GT2)
Network:
  Device-1: Intel Alder Lake-P PCH CNVi WiFi driver: iwlwifi
  Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    driver: r8169
Drives:
  Local Storage: total: 1.16 TiB used: 8.92 GiB (0.8%)
Info:
  Processes: 393 Uptime: 42m Memory: total: 32 GiB note: est.
  available: 31.08 GiB used: 3.73 GiB (12.0%) Shell: Zsh inxi: 3.3.31
journalctl -b | grep nvidia                                                                                      ✔  5s  
Dez 26 21:17:04 Manjaro-Legion5 kernel: nvidia: loading out-of-tree module taints kernel.
Dez 26 21:17:04 Manjaro-Legion5 kernel: nvidia: module license 'NVIDIA' taints kernel.
Dez 26 21:17:04 Manjaro-Legion5 kernel: nvidia: module verification failed: signature and/or required key missing - tainting kernel
Dez 26 21:17:04 Manjaro-Legion5 kernel: nvidia: module license taints kernel.
Dez 26 21:17:04 Manjaro-Legion5 kernel: nvidia-nvlink: Nvlink Core is being initialized, major device number 509
Dez 26 21:17:04 Manjaro-Legion5 kernel: nvidia 0000:01:00.0: enabling device (0000 -> 0003)
Dez 26 21:17:04 Manjaro-Legion5 kernel: nvidia 0000:01:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=none
Dez 26 21:17:04 Manjaro-Legion5 systemd-modules-load[376]: Inserted module 'nvidia'
Dez 26 21:17:04 Manjaro-Legion5 kernel: nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  545.29.06  Thu Nov 16 01:47:29 UTC 2023
Dez 26 21:17:04 Manjaro-Legion5 systemd-modules-load[376]: Inserted module 'nvidia_drm'
Dez 26 21:17:04 Manjaro-Legion5 kernel: [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
Dez 26 21:17:04 Manjaro-Legion5 kernel: [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:01:00.0 on minor 0
Dez 26 21:17:05 Manjaro-Legion5 kernel: nvidia_uvm: module uses symbols nvUvmInterfaceDisableAccessCntr from proprietary module nvidia, inheriting taint.
Dez 26 21:17:05 Manjaro-Legion5 systemd-modules-load[376]: Inserted module 'nvidia_uvm'
Dez 26 21:17:05 Manjaro-Legion5 kernel: nvidia-uvm: Loaded the UVM driver, major device number 507.
Dez 26 21:21:27 Manjaro-Legion5 kernel: nvidia-modeset: WARNING: GPU:0: Unable to read EDID for display device DP-4
Dez 26 21:21:27 Manjaro-Legion5 kernel: nvidia-modeset: WARNING: GPU:0: Unable to read EDID for display device DP-4
Dez 26 21:21:27 Manjaro-Legion5 systemd[1]: Starting Load/Save Screen Backlight Brightness of backlight:nvidia_0...
Dez 26 21:21:27 Manjaro-Legion5 systemd[1]: Finished Load/Save Screen Backlight Brightness of backlight:nvidia_0.
xrandr --listproviders                                                                                                  ✔ 
Providers: number : 1
Provider 0: id: 0x45 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 3 associated providers: 0 name:modesetting
lspci | grep -e VGA                                                                                                     ✔ 
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-P GT2 [Iris Xe Graphics] (rev 0c)
01:00.0 VGA compatible controller: NVIDIA Corporation GA104M [Geforce RTX 3070 Ti Laptop GPU] (rev a1)

Wie gesagt, ist eine frische Installation, also keine mkinitcpio oder grub Anpassungen. Wenn ich das ganze jetzt mit Kernel 6.1.* starte, wird der Treiber wieder ohne Probleme geladen.
Habe bei der alten Installation schon sämtliche Lösungsvorschläge aus dem Forum und Google durch, wie z.B. Treiber mit mhwd neu installieren, Module mit mkinitcpio früh laden, ibt=off, mem_encrypt=off oder nvidia_drm.modeset=1 in den Kernelparametern, aber nichts hat geholfen.

Wieso lädt das System den Treiber nicht?

Schon mal den kernel 6.7 ausprobiert? Ist zwar noch release candidate, könnte aber theoretisch besser funktionieren.

Ich habe auch dieses Problem → Frozen on BIOS logo after the GRUB selection - #31 by brahma

Funktioniert auch nicht, genau dieselben Meldungen wie bei 6.6.
6.5 ist EOL, den will ich mir nicht antuen.
Ich verstehe nicht, warum der Treiber nicht geladen werden kann, wenns doch mit 6.1 funktioniert und bei anderen auch mit 6.6.
Sieht wohl so aus, als dürfte ich wohl für immer bei 6.1 bleiben :confused:

EDIT:

journalctl -p3                                                                                                                                                                      INT ✘  2m 29s  
Dez 28 00:03:02 Manjaro-Legion5 kernel: iwlwifi 0000:00:14.3: WRT: Invalid buffer destination
Dez 28 00:03:02 Manjaro-Legion5 kernel: 
Dez 28 00:03:02 Manjaro-Legion5 kernel: NVRM: loading NVIDIA UNIX x86_64 Kernel Module  545.29.06  Thu Nov 16 01:59:08 UTC 2023
Dez 28 00:03:04 Manjaro-Legion5 kernel: Bluetooth: hci0: Malformed MSFT vendor event: 0x02
Dez 28 00:03:04 Manjaro-Legion5 bluetoothd[711]: src/adapter.c:reset_adv_monitors_complete() Failed to reset Adv Monitors: Failed (0x03)
Dez 28 00:03:04 Manjaro-Legion5 bluetoothd[711]: Failed to clear UUIDs: Failed (0x03)
Dez 28 00:03:04 Manjaro-Legion5 bluetoothd[711]: Failed to add UUID: Failed (0x03)
Dez 28 00:03:04 Manjaro-Legion5 bluetoothd[711]: Failed to add UUID: Failed (0x03)
Dez 28 00:03:04 Manjaro-Legion5 bluetoothd[711]: Failed to add UUID: Failed (0x03)
Dez 28 00:03:04 Manjaro-Legion5 bluetoothd[711]: Failed to set mode: Failed (0x03)
Dez 28 00:03:04 Manjaro-Legion5 bluetoothd[711]: Failed to add UUID: Failed (0x03)
Dez 28 00:03:04 Manjaro-Legion5 bluetoothd[711]: Failed to add UUID: Failed (0x03)
Dez 28 00:03:04 Manjaro-Legion5 bluetoothd[711]: Failed to add UUID: Failed (0x03)
Dez 28 00:03:05 Manjaro-Legion5 kernel: iwlwifi 0000:00:14.3: WRT: Invalid buffer destination
Dez 28 00:03:06 Manjaro-Legion5 kernel: NVRM: GPU 0000:01:00.0: RmInitAdapter failed! (0x24:0x72:1436)
Dez 28 00:03:06 Manjaro-Legion5 kernel: NVRM: GPU 0000:01:00.0: rm_init_adapter failed, device minor number 0
Dez 28 00:03:06 Manjaro-Legion5 kernel: NVRM: GPU 0000:01:00.0: RmInitAdapter failed! (0x24:0x72:1436)
Dez 28 00:03:06 Manjaro-Legion5 kernel: NVRM: GPU 0000:01:00.0: rm_init_adapter failed, device minor number 0

Kann damit vielleicht einer was anfangen?

Das Problem besteht übrigens immer noch, ich stecke immer noch bei Kernel 6.1 fest. Funktioniert zwar alles, auch Spiele mit der Nvidia Karte, aber komisch ist es trotzdem alles. Mir ist aufgefallen, dass lspci -v je nach Kernel unterschiedliche Ausgaben liefert.

Kernel 6.1:
lspci -v
01:00.0 VGA compatible controller: NVIDIA Corporation GA104M [Geforce RTX 3070 Ti Laptop GPU] (rev a1) (prog-if 00 [VGA controller])
        Subsystem: Lenovo Device 3aef
        Physical Slot: 1
        Flags: bus master, fast devsel, latency 0, IRQ 196, IOMMU group 19
        Memory at 60000000 (32-bit, non-prefetchable) [size=16M]
        Memory at 6000000000 (64-bit, prefetchable) [size=8G]
        Memory at 6200000000 (64-bit, prefetchable) [size=32M]
        I/O ports at 5000 [size=128]
        Expansion ROM at 61000000 [virtual] [disabled] [size=512K]
        Capabilities: <access denied>
        Kernel driver in use: nvidia
        Kernel modules: nouveau, nvidia_drm, nvidia
Kernel 6.6, 6.9, 6.10:
lspci -v
01:00.0 VGA compatible controller: NVIDIA Corporation GA104M [Geforce RTX 3070 Ti Laptop GPU] (rev a1) (prog-if 00 [VGA controller])
        Subsystem: Lenovo Device 3aef
        Physical Slot: 1
        Flags: bus master, fast devsel, latency 0, IRQ 16, IOMMU group 16
        Memory at 60000000 (32-bit, non-prefetchable) [size=16M]
        Memory at 6000000000 (64-bit, prefetchable) [size=256M]
        Memory at 6010000000 (64-bit, prefetchable) [size=32M]
        I/O ports at 5000 [size=128]
        Expansion ROM at 61000000 [virtual] [disabled] [size=512K]
        Capabilities: <access denied>
        Kernel driver in use: nvidia
        Kernel modules: nouveau, nvidia_drm, nvidia

Man beachte die Zeilen

Memory at 6000000000 (64-bit, prefetchable) [size=8G]
Memory at 6200000000 (64-bit, prefetchable) [size=32M]

Da ändert sich die Speichergröße und -Position, wenn ich einen anderen Kernel benutze.

Das sieht nach resizable bar aus. Mit Kernel 6.1 geht es mit den anderen nicht.
Prüfe doch mal

nvidia-smi -q -x | grep bar -C 4

Die Zeilen die wir beachten sollen hast du, glaube ich, vertauscht.

Mit Kernel 6.1:

nvidia-smi -q -x | grep bar -C 4
			<reserved>226 MiB</reserved>
			<used>9 MiB</used>
			<free>7958 MiB</free>
		</fb_memory_usage>
		<bar1_memory_usage>
			<total>8192 MiB</total>
			<used>3 MiB</used>
			<free>8189 MiB</free>
		</bar1_memory_usage>
		<cc_protected_memory_usage>
			<total>0 MiB</total>
			<used>0 MiB</used>
			<free>0 MiB</free>

Bei jedem anderen Kernel gibt’s keine Ausgabe.

Jain, beide Zeilen sind vom Kernel 6.1 und verändern sich, sobald ich einen anderen Kernel boote.
Der Korrektheit wegen:

Hier wird dein Problem diskutiert. Du bist nicht allein.

In diesem Beitrag

ist die Rede von Firmware.
Schau bitte das du

linux-firmware

installiert hast.

Danke für den Link. Sehe dort, dass es sich bei einem beteiligten um den gleichen Laptop handelt, wie bei mir (Lenovo Legion 5 Pro 16IAH7H).

Ist installiert, ändert jedoch nichts an der Situation.
Trotzdem vielen Dank für die Mühe, die du dir gibst, mir zu helfen.

Das Thema wurde im Nvidia Developer Forum diskutiert. Leider hat man als Privatperson da keinen Zugriff drauf. Eine wirkliche Lösung gibt es bis dato nicht.

Irgendwas muss ja ab ca Kernel 6.5 (laut Nvidia Developer Forum) verändert worden sein, was dieses Problem bei einigen, wenigen Laptops auslöst, vorzugsweise beim Lenovo Legion 5 Pro. Kann ja jetzt nicht noch Jahrzehnte bei Kernel 6.1 bleiben, Support läuft irgendwann ja auch mal aus, zum Glück erst Ende 2026.

Nachdem sich im Nvidia Developer Forum weitere betroffene Personen - wohlgemerkt alle mit nahezu demselben Laptop - gemeldet und das Problem weiter analysiert haben, weiß man nun, warum dieses Verhalten auftritt. Schuld ist bei dem Laptop Lenovo Legion 5 Pro 16IAH7H wohl das BIOS ab Version J2CN40WW.

Mit dieser und allen neueren BIOS-Versionen tritt genau mein Problem in allen Linux-Distributionen mit Kernel >6.4 auf. Mittlerweile habe ich ein downgrade der BIOS-Version auf J2CN37WW durchgeführt und keinerlei Probleme mehr. Nun kann ich endlich neuere Kernel als 6.1.* verwenden.

Grüße
David

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.