You are not logged in.
Hi. After installing the nvidia-open drivers my graphics don't load so I boot to a black screen with a cursor.
I used to have this issue ever since I got my laptop two years ago. Switching to the nvidia proprietary drivers seemed to fix it. When I had it it used to resolve itself if I rebooted the system enough times. Now with the move back to nvidia-open I'm facing the same issue only now it doesn't work no matter how many times I reboot.
My Laptop: Lenovo Legion Pro 5i - RTX 4070, i7-14700HX
Journal of a black screen boot: https://0x0.st/PzG_.txt
I also get these errors when suspending/sleeping the system with the driver (They are also included in the journal log):
spd5118 13-0050: Failed to write b = 0: -6
spd5118 13-0050: PM: dpm_run_callback(): spd5118_resume [spd5118] returns -6
spd5118 13-0050: PM: failed to resume async: error -6
spd5118 13-0052: Failed to write b = 0: -6
spd5118 13-0052: PM: dpm_run_callback(): spd5118_resume [spd5118] returns -6
spd5118 13-0052: PM: failed to resume async: error -6Last edited by Franz d'Epinay (2025-12-25 21:53:02)
Offline
Your black screen is likely due to nvidia-open driver incompatibility with your Lenovo Legion Pro 5i and the spd5118 ACPI module. Use the proprietary NVIDIA driver instead, add modprobe.blacklist=spd5118 to kernel parameters, and try nvidia-drm.modeset=1 in GRUB. Rebuild initramfs with sudo mkinitcpio -P and check logs with journalctl -b. This usually resolves the issue.
Offline
spd5118 only complains when waking up from S3 and there's no output attached to the nvidia GPU, the i915 is the relevant chip.
The system seems to boot fine, the problem is likely SDDM.
Do you get an output when only booting the multi-user.target (2nd link below)?
And from there please post your Xorg log, https://wiki.archlinux.org/title/Xorg#General (the entire log, not! just the sample greps in the wiki)
Offline
Xorg log: http://0x0.st/PzRm.txt
Booting the multi-user.target looks fine. I don't know if I am supposed to look for anything specific.
I've also found out that when I switch to dGPU only mode from the BIOS everything works well. (The graphics work,but the suspend errors still appear unless I uninstall nvidia-open)
Nvidia related errors do appear when I use systemctl sleep, but it seems like another issue that's not related:
Dec 25 17:48:47 Skavenblight kernel: PM: suspend entry (s2idle)
Dec 25 17:48:47 Skavenblight kernel: Filesystems sync: 0.007 seconds
Dec 25 17:48:47 Skavenblight kernel: Freezing user space processes
Dec 25 17:48:47 Skavenblight kernel: Freezing user space processes completed (elapsed 0.002 seconds)
Dec 25 17:48:47 Skavenblight kernel: OOM killer disabled.
Dec 25 17:48:47 Skavenblight kernel: Freezing remaining freezable tasks
Dec 25 17:48:47 Skavenblight kernel: Freezing remaining freezable tasks completed (elapsed 0.000 seconds)
Dec 25 17:48:47 Skavenblight kernel: printk: Suspending console(s) (use no_console_suspend to debug)
Dec 25 17:48:47 Skavenblight kernel: NVRM: GPU 0000:01:00.0: PreserveVideoMemoryAllocations module parameter is set. System Power Management attempted with>
Dec 25 17:48:47 Skavenblight kernel: nvidia 0000:01:00.0: PM: pci_pm_suspend(): nv_pmops_suspend [nvidia] returns -5
Dec 25 17:48:47 Skavenblight kernel: nvidia 0000:01:00.0: PM: dpm_run_callback(): pci_pm_suspend returns -5
Dec 25 17:48:47 Skavenblight systemd-sleep[5744]: Failed to put system to sleep. System resumed again: Input/output error
Dec 25 17:48:47 Skavenblight kernel: nvidia 0000:01:00.0: PM: failed to suspend async: error -5
Dec 25 17:48:47 Skavenblight kernel: PM: Some devices failed to suspend, or early wake event detected
Dec 25 17:48:47 Skavenblight kernel: spd5118 3-0052: PM: dpm_run_callback(): spd5118_resume [spd5118] returns -6
Dec 25 17:48:47 Skavenblight kernel: spd5118 3-0052: PM: failed to resume async: error -6
Dec 25 17:48:47 Skavenblight kernel: spd5118 3-0050: PM: dpm_run_callback(): spd5118_resume [spd5118] returns -6
Dec 25 17:48:47 Skavenblight kernel: spd5118 3-0050: PM: failed to resume async: error -6
Dec 25 17:48:47 Skavenblight kernel: nvme nvme0: D3 entry latency set to 10 seconds
Dec 25 17:48:47 Skavenblight kernel: nvme nvme1: 28/0/0 default/read/poll queues
Dec 25 17:48:47 Skavenblight kernel: nvme nvme0: 28/0/0 default/read/poll queues
Dec 25 17:48:47 Skavenblight kernel: OOM killer enabled.
Dec 25 17:48:47 Skavenblight kernel: Restarting tasks: Starting
Dec 25 17:48:47 Skavenblight kernel: Restarting tasks: Done
Dec 25 17:48:47 Skavenblight kernel: efivarfs: resyncing variable state
Dec 25 17:48:47 Skavenblight kernel: efivarfs: finished resyncing variable state
Dec 25 17:48:47 Skavenblight kernel: random: crng reseeded on system resumption
Dec 25 17:48:47 Skavenblight kernel: PM: suspend exitOffline
[ 55.584] (EE)
[ 55.584] (EE) Backtrace:
[ 55.585] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 55.585] (EE) 0: /usr/lib/Xorg (?+0x0) [0x555ec3c0f654]
[ 55.586] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 55.586] (EE) 1: /usr/lib/libc.so.6 (?+0x0) [0x7f31e003e4d0]
[ 55.587] (EE) 2: /usr/lib/Xorg (xf86ScreenToScrn+0x2f) [0x555ec3c37a5f]
[ 55.587] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 55.587] (EE) 3: /usr/lib/Xorg (?+0x0) [0x555ec3c6e5dc]
[ 55.588] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 55.588] (EE) 4: /usr/lib/Xorg (?+0x0) [0x555ec3b698b7]
[ 55.588] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 55.588] (EE) 5: /usr/lib/Xorg (?+0x0) [0x555ec3b515f3]
[ 55.588] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 55.588] (EE) 6: /usr/lib/Xorg (?+0x0) [0x555ec3b5243d]
[ 55.589] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 55.589] (EE) 7: /usr/lib/Xorg (?+0x0) [0x555ec3ae0de3]
[ 55.590] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 55.590] (EE) 8: /usr/lib/libc.so.6 (?+0x0) [0x7f31e0027635]
[ 55.590] (EE) 9: /usr/lib/libc.so.6 (__libc_start_main+0x89) [0x7f31e00276e9]
[ 55.590] (EE) 10: /usr/lib/Xorg (_start+0x25) [0x555ec3ae1d05]
[ 55.591] (EE)
[ 55.591] (EE) Segmentation fault at address 0x555df6cee5f0
[ 55.591] (EE)
Fatal server error:
[ 55.591] (EE) Caught signal 11 (Segmentation fault). Server aborting[ 6.782] (II) Applying OutputClass "nvidia" options to /dev/dri/card0
[ 6.836] (II) modeset(G0): glamor X acceleration enabled on NVIDIA GeForce RTX 4070 Laptop GPU/PCIe/SSE2The nvidia driver isn't considered (despite the kernel module loading)
pacman -Qs 'nvidia|kernel'
pacman -Qikk nvidia-utilsOffline
pacman -Qs 'nvidia|kernel':
local/dkms 3.3.0-1
Dynamic Kernel Modules System
local/egl-gbm 1.1.2.1-1
The GBM EGL external platform library
local/egl-wayland 4:1.1.21-1
EGLStream-based Wayland external platform
local/egl-wayland2 1.0.0.rc.r51.gada1c37-1
EGLStream-based Wayland external platform (2)
local/egl-x11 1.0.4-1
NVIDIA XLib and XCB EGL Platform Library
local/fuse2 2.9.9-5
Interface for userspace programs to export a filesystem to the Linux kernel
local/fuse3 3.17.4-1
Interface for userspace programs to export a filesystem to the Linux kernel
local/iptables 1:1.8.11-2
Linux kernel packet control tool (using legacy interface)
local/kernel-modules-hook 0.1.7-3
Keeps your system fully functional after a kernel upgrade
local/kmod 34.2-1
Linux kernel module management tools and library
local/lib32-libdrm 2.4.128-1
Userspace interface to kernel DRM services (32-bit)
local/lib32-libvdpau 1.5-3
Nvidia VDPAU library
local/lib32-nvidia-utils 590.48.01-1
NVIDIA drivers utilities (32-bit)
local/libdrm 2.4.131-1
Userspace interface to kernel DRM services
local/libnetfilter_conntrack 1.0.9-2
Library providing an API to the in-kernel connection tracking state table
local/libnfnetlink 1.0.2-2
Low-level library for netfilter related kernel/userspace communication
local/libsysprof-capture 49.0-1
Kernel based performance profiler - capture library
local/libvdpau 1.5-3
Nvidia VDPAU library
local/libxnvctrl 590.48.01-1
NVIDIA NV-CONTROL X extension
local/linux 6.18.2.arch2-1
The Linux kernel and modules
local/linux-api-headers 6.17-1
Kernel headers sanitized for use in userspace
local/linux-firmware-nvidia 20251125-2
Firmware files for Linux - Firmware for NVIDIA GPUs and SoCs
local/linux-headers 6.18.2.arch2-1
Headers and scripts for building modules for the Linux kernel
local/mtdev 1.1.7-1
A stand-alone library which transforms all variants of kernel MT events to the slotted type B
protocol
local/nvidia-open 590.48.01-3
NVIDIA open kernel modules
local/nvidia-prime 1.0-5
NVIDIA Prime Render Offload configuration and utilities
local/nvidia-settings 590.48.01-1
Tool for configuring the NVIDIA graphics driver
local/nvidia-utils 590.48.01-1
NVIDIA drivers utilities
local/opencl-nvidia 590.48.01-1
OpenCL implemention for NVIDIA
local/python-comm 0.2.3-1
Python Comm implementation for the Jupyter kernel protocol
local/python-ipykernel 7.1.0-1
The ipython kernel for Jupyter
local/python-spyder-kernels 3.1.2-1
Jupyter Kernels for the Spyder consolepacman -Qikk:
Name : nvidia-utils
Version : 590.48.01-1
Description : NVIDIA drivers utilities
Architecture : x86_64
URL : http://www.nvidia.com/
Licenses : custom
Groups : None
Provides : vulkan-driver opengl-driver nvidia-libgl
Depends On : libglvnd egl-wayland egl-wayland2 egl-gbm egl-x11
Optional Deps : nvidia-settings: configuration tool [installed]
xorg-server: Xorg support [installed]
xorg-server-devel: nvidia-xconfig
opencl-nvidia: OpenCL support [installed]
Required By : lib32-nvidia-utils libglvnd nvidia-open nvidia-prime nvidia-settings steam
steam-native-runtime
Optional For : ffmpeg ffmpeg4.4 libvdpau sdl3 vulkan-icd-loader
Conflicts With : nvidia-libgl
Replaces : nvidia-libgl
Installed Size : 853.92 MiB
Packager : Peter Jung <ptr1337@archlinux.org>
Build Date : Thu 18 Dec 2025 06:56:03 PM EET
Install Date : Tue 23 Dec 2025 12:58:27 PM EET
Install Reason : Installed as a dependency for another package
Install Script : Yes
Validated By : Signature
nvidia-utils: 258 total files, 0 altered filesOffline
That looks ok… can you "systemctl start sddm" from the multi-user.target login?
Offline
Haha I always seem to get the cases that look ok. But yeah using systemctl start sddm from the muilti-user.target seems to work. Tried it three times in a row and it worked every one of them.
Offline
Race condition, sddm starts before the GPU is actually ready.
See https://bbs.archlinux.org/viewtopic.php … 8#p2256418 - but of course treat the SDDM service to that.
Offline
Just to make sure I'm actually doing it right. I enter systemctl edit sddm. And i edit it so it looks something like this:
GNU nano 8.7 /etc/systemd/system/sddm.service.d/.#override.conf08b7f0ada0230d1c
### Editing /etc/systemd/system/sddm.service.d/override.conf
### Anything between here and the comment below will become the contents of the drop-in file
ExecStartPre=/usr/bin/sleep 10
### Edits below this comment will be discarded
### /usr/lib/systemd/system/sddm.service
# [Unit]
# Description=Simple Desktop Display Manager
# Documentation=man:sddm(1) man:sddm.conf(5)
# Conflicts=getty@tty1.service
# After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service systemd-logind.service
# PartOf=graphical.target
# StartLimitIntervalSec=30
# StartLimitBurst=2
#
# [Service]
# ExecStart=/usr/bin/sddm
# Restart=always
#
# [Install]
# Alias=display-manager.serviceDoing that doesn't seem to net much of a result. I managed to get one good boot in and one where I SDDM works but after I enter the password it freezes, which is something that used to happen back when I had the issue two years ago. The other 3 tries were back to the black screen.
Offline
https://wiki.archlinux.org/title/Systemd#Drop-in_files
The key must be still placed in the appropriate section in the override file.
[Service]
ExecStartPre=/usr/bin/sleep 10Offline
My bad I didn't bother to read all of it. Using systemctl edit sddm --drop-in=customexec.conf I set it to 1 second and it works perfectly. Thank you for the help.
Offline