Prime intel/nvidia wayland modeset=1 Solution and Problem

Ich spreche das ganze hier nochmal an.

Das Problem:
Das setzen von nvidia_drm.modeset=1 bei hybrid Grafik intel/nvidia endet in einem schwarzen Bildschirm.

Die halbe Lösung:
Das System ist nicht abgestürzt, es läuft nur der Bildschirm ist dunkel !
Editiere per E wenn das Grub-Menu angezeigt wird die Grub Befehlszeile.
Füge nvidia_drm.modeset=1 hinzu ( Achtung englische Tastatur, der _ ist das ? und das = die Taste rechts neben dem ? ) Das gilt dann nur für den aktuellen Bootvorgang und ist beim nächsten wieder weg. Ideal zum testen.
Wechsel mit Ctrl+Alt+F2 in das Terminal und melde dich an.
Nach erfolgreicher Anmeldung starte wayland mit
dbus-launch startplasma-wayland

Damit läuft wayland mit intel/nvidia perfekt ! Kein geflacker etc

sudo cat /sys/module/nvidia_drm/parameters/modeset                                ✔ 
[sudo] Passwort für weingeist: 
Y
    ~  inxi -G                                                                    ✔  5s  
Graphics:
  Device-1: Intel Raptor Lake-P [Iris Xe Graphics] driver: i915 v: kernel
  Device-2: NVIDIA AD106M [GeForce RTX 4070 Max-Q / Mobile] driver: nvidia
    v: 545.29.06
  Device-3: SunplusIT FHD Webcam driver: uvcvideo type: USB
  Display: wayland server: X.org v: 1.21.1.10 with: Xwayland v: 23.2.3
    compositor: kwin_wayland driver: X: loaded: modesetting unloaded: nvidia
    dri: iris,nouveau gpu: i915,nvidia resolution: 2560x1600
  API: EGL v: 1.5 drivers: iris,nvidia,swrast
    platforms: gbm,wayland,x11,surfaceless,device
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: intel mesa v: 23.3.3-manjaro1.1
    renderer: Mesa Intel Graphics (RPL-P)
  API: Vulkan v: 1.3.274 drivers: nvidia surfaces: xcb,xlib,wayland

Das Problem im einzelnen

Das Problem ist der sddm

journalctl -p 4 -b --no-hostname --no-pager | grep sddm                         4 ✘ 
Feb 17 17:01:33 sddm[707]: Failed to read display number from pipe
Feb 17 17:01:33 sddm[707]: Attempt 1 starting the Display server on vt 2 failed
Feb 17 17:01:36 sddm[707]: Failed to read display number from pipe
Feb 17 17:01:36 sddm[707]: Attempt 2 starting the Display server on vt 2 failed
Feb 17 17:01:39 sddm[707]: Failed to read display number from pipe
Feb 17 17:01:39 sddm[707]: Attempt 3 starting the Display server on vt 2 failed
Feb 17 17:01:39 sddm[707]: Could not start Display server on vt 2
Feb 17 17:14:52 sddm[707]: Signal received: SIGTERM

Gefunden habe ich das ganze hier

Ist nicht ideal, ich weiß.

in english (deepl)
I’ll address the whole thing again here.

The problem:
Setting nvidia_drm.modeset=1 on hybrid graphics intel/nvidia ends in a black screen.

Half the solution:
The system is not crashed, it is only running the screen is dark !
Edit the grub command line with E when the grub menu is displayed.
Add nvidia_drm.modeset=1 ( Attention English keyboard, the _ is the ? and the = is the key to the right of the ? ) This then only applies to the current boot process and will disappear the next time. Ideal for testing.
Switch to the terminal with Ctrl+Alt+F2 and log in.
After successfully logging in, start wayland with
dbus-launch startplasma-wayland

This wayland runs perfectly with intel/nvidia ! No flickering etc

1 Like

für was soll man sich eine leistungsfähige nvidia karte holen wenn mit dieser “lösung” am ende auf der internen hilfgrafikkarte gerendert wird ?
ist für mich jedenfalls keine zufriedenstellende lösung.

prime-run inxi -G                                                                 ✔ 
Graphics:
  Device-1: Intel Raptor Lake-P [Iris Xe Graphics] driver: i915 v: kernel
  Device-2: NVIDIA AD106M [GeForce RTX 4070 Max-Q / Mobile] driver: nvidia
    v: 545.29.06
  Device-3: SunplusIT FHD Webcam driver: uvcvideo type: USB
  Display: wayland server: X.org v: 1.21.1.10 with: Xwayland v: 23.2.3
    compositor: kwin_wayland driver: X: loaded: modesetting unloaded: nvidia
    dri: iris,nouveau gpu: i915,nvidia resolution: 2560x1600
  API: EGL v: 1.5 drivers: iris,nvidia,swrast
    platforms: gbm,wayland,x11,surfaceless,device
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 545.29.06
    renderer: NVIDIA GeForce RTX 4070 Laptop GPU/PCIe/SSE2
  API: Vulkan v: 1.3.274 drivers: nvidia surfaces: xcb,xlib,wayland

prime-run macht den Unterschied.

Natürlich ist die Lösung nicht perfekt.
Dazu müsste jemand den sddm korrigieren.

es gibt immer noch zuhauf laptops bei denen externe monitore nur über die nvidia-karte angesteuert werden. da hilft einem prime-run rein garnichts wenn man einen externen monitor betreiben will.
auch wer mit der internen grafik den laptopmonitor und einen externen 4k-monitor nutzen will merkt schnell das die interne gpu das nicht flüssig kann. auch da hilft einem prime-run nichts.

Wenn man zusätzlich in der Grub-Kommandozeile splash löscht und systemd.unit=multi-user.target hinzu fügt landet man direkt im Terminal und umgeht den sddm komplett.

Ich bin schließlich auch beim schwarzen Bildschirm gelandet, weil letztlich SDDM nicht mehr gestartet ist. Zu Beginn ging es noch, hat aber keine X11-Session mehr zugelassen, sondern nur die Wayland-Session. Diese dafür mit Erkennung des externen Monitors - was vorher nicht funktionierte.
Ich vermute, bei meinen Konfigurationsabenteuern ist dann zwischenzeitlich irgendeine Config beim mehrmaligen Gebrauch von

mkinitcpio -P

kaputtgegangen.

@weingeist Deine Lösung via Editieren von grub ist da gefahrloser.

Manjaro auf Wayland lief im Prinzip problemlos bei mir. Beim Gaming via Steam gab es aber ein paar Quirks und die Framerates waren nicht ganz so gut und stabil wie aktuell mit X11. Das mag aber auch an meinem älteren System liegen und Wayland kann sich sicher diesbezüglich noch weiterentwickeln.

Man kann aber nicht sagen, Wayland und NVidia würden und werden zusammen nicht funktionieren! In meinen Augen ist das reines NVidia-Gebashe und ich bin bestimmt kein NVidia-Fanboy.

Ich bin auch der Meinung, dass da noch etwas bei SDDM nicht stimmt oder beim Zusammenspiel des Systems und/oder X11 mit SDDM irgendwelche Konfigurationsparameter nicht richtig ausgetauscht werden.

Da Wayland aber aktuell auf meinem System schlechter performt und die seltsamen Probleme mit SDDM hat, werde ich zum jetzigen Zeitpunkt bei X11 bleiben.

Bin mal wieder etwas zum testen gekommen.

https://wiki.archlinux.org/title/External_GPU#Xorg_rendered_on_iGPU,_PRIME_render_offload_to_eGPU

Aufpassen das die richtige BUS-ID gesetzt wird.

Damit startet die grafische Oberfläche mit nvidia_drm.modeset=1
Unter Systemsettings - Starten und Beenden - Verhalten dann einstellen ob x11 oder wayland.
Grund: Abmelden und umschalten geht nicht da schwarzer Bildschirm.

Wie sich das alles mit einen externen Monitor verhält weiß ich nicht. War auch nie der Sinn dieses Threads.

Edit:
Das obige vergessen und einfach

GBM_BACKEND=nvidia-drm
__GLX_VENDOR_LIBRARY_NAME=nvidia

in die environment schreiben.
Das Problem schwarzer Bildschirm beim abmelden zum wechseln bleibt.