I have a lenovo laptop with an amd gpu (ryzen 5 - 4000 series) and an nvidia gpu (GTX 1650). I recently installed AlmaLinux 10 and was pleased to see that I can now install the nvidia drivers directly: AlmaLinux OS - Forever-Free Enterprise-Grade Operating System
This has also worked so far. The problem now seems to be that my nvidia gpu is not being used. The output of the command nvidia-smi shows that no processes are running: No running processes found
The bigger problem is that I can’t run an external monitor. When I connect a monitor via HDMI, it simply shows that no signal was found.
I have tried many things and searched through other forums, but unfortunately have had no success so far. Most of the solutions also seem to be for X11. However, since AlmaLinux 10 only uses Wayland, I have not been able to find a solution to my problem. Perhaps someone here who also uses an nvidia gpu on AlmaLinux 10 can help me.
(I’m not a native english speaker either, so sorry for any misunderstandings.)
Based on the NVIDIA official documentation and the RHEL 10/AlmaLinux 10 release notes, adding the kernel parameter
nvidia-drm.modeset=1
to your GRUB configuration can enable KMS (Kernel Mode Setting) for the NVIDIA driver, which is required for external displays (such as HDMI) to work under Wayland when the HDMI port is wired directly to the NVIDIA GPU.
Once this parameter is active, you should be able to see gnome-shell or other desktop processes in nvidia-smi, and your external monitor may start working.
However, please note that I have not personally tested this on AlmaLinux 10 — my answer is based solely on the official NVIDIA README and AlmaLinux/RHEL documentation. If the change does not resolve the issue, the cause may be either the GRUB parameter not being applied correctly, or current Wayland limitations with NVIDIA’s proprietary driver.
For confirmation, after rebooting you can check:
cat /sys/module/nvidia_drm/parameters/modeset
Should return: 1
If it still returns 0 or the monitor does not work, you may want to test an Xorg session to determine whether the problem is Wayland-specific.
Thanks for the quick response and help. Unfortunately, neither method works. However, I have now been able to identify the following error in the system log:
kernel: [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
kernel: nvidia 0000:01:00.0: Direct firmware load for nvidia/580.65.06/gsp_tu10x.bin failed with error -2
kernel: [drm:nv_drm_dev_load [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to allocate NvKmsKapiDevice
kernel: [drm:nv_drm_register_drm_device.cold [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to load device
Apparently, the driver cannot be loaded. I will take another closer look at this. Thanks again for your help!
The GSP is “GPU System Processor”, a (RISC?) chip that cards starting Turing have to offload some operations from CPU. The “open” NVidia driver requires GSP and the GSP needs the firmware – the commands it runs.
That turns out to be a red herring. I do get that too:
[drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
nvidia 0000:01:00.0: Direct firmware load for nvidia/580.65.06/gsp_ga10x.bin failed with error -2
[drm:nv_drm_dev_load [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to allocate NvKmsKapiDevice
[drm:nv_drm_register_drm_device.cold [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to load device
Installation of the packages does it with file in /etc/modprobe.d/, not with kernel options:
$ cat /proc/cmdline
BOOT_IMAGE=(hd1,gpt2)/vmlinuz-6.12.0-55.24.1.el10_0.x86_64 root=UUID=a6..50 ro resume=UUID=b6..3d rd.driver.blacklist=nouveau rd.driver.blacklist=nova-core
$ cat /etc/modprobe.d/nvidia-modeset.conf
# Nvidia modesetting support. Set to 0 or comment to disable kernel modesetting
# and framebuffer console support. This must be disabled in case of Mosaic or SLI.
options nvidia-drm modeset=1
$ sudo cat /sys/module/nvidia_drm/parameters/modeset
Y
As already stated, the el10 has only Wayland, no “Xorg sessions”.
I do believe that that is the main issue. One does not get additional connectors for monitors when one adds a discrete GPU to a laptop. Both the IGP and the GPU are somehow connected to the connectors that the laptop has.
There is usually a need for some additional tool (“optimus” ?) that directs applications to either the IGP or the discrete GPU. The main idea is to use the low power IGP by default and only explicitly run programs on GPU in order to save battery.
That, however, does not explain why the HDMI port is dead. If the above were the whole thruth, the IGP should be able to write to the HDMI.
Disclaimer: I don’t use laptops. Hence, I don’t truly know them.
AlmaLinux does use Nouveau for NVidia by default (before one installs the NVidia’s own driver). How did the system behave with Nouveau?
So I didn’t give up. I tried a few more things, but none of them worked. Now I’ve uninstalled all the drivers from nvidia.
With Nouveau, the external monitor works, but unfortunately I can’t adjust the brightness. I also need access to CUDA. I’ve now added the RPM Fusion Repo and installed the nvidia drivers via akmod-nvidia.
If anyone else is having problems with NVIDIA on their Lenovo laptop, here’s my solution:
I would like to thank everyone involved in troubleshooting this issue!
I will now test the setup and hopefully won’t bother you with any more questions
I have tested everything so far. My use cases are functioning. Even the NVIDIA Container Toolkit with Podman is functioning as expected. Also waking up from suspend is working. I use the laptop as a workstation, which may not be the primary focus of Almalinux as a distribution. Have a great conference! Many thanks to all!