How to Sign Nvidia Drivers, as to Work With Secure Boot

I’m currently trying to dual-boot Windows 11 and CashyOS on my Lenovo Legion 5, that has both an Intel iGPU as well as a Nvidia dGPU. I first installed Windows 11 with Secure Boot on, no problems there. I then disabled Secure Boot as to install CashyOS on a different drive, both drives installed in the same laptop. Everything went smoothly, and after completing the installation I booted into CashyOS to setup Secure Boot, as instructed by the official Wiki. All this went by increadibly smoothly, especially as limine picked up my Windows-install automatically. My problem is now that my Nvidia dGPU doesn’t seem to get picked up by the system. All drivers are installed, so I believe that the problem lies in the fact that the Nvidia drivers aren’t signed, and are therefore being blocked by Secure Boot. My question is then, how can I sign my Nvidia drivers so that Secure Boot doesn’t block them? And how do I do this, so that when I update my drivers I don’t have to manually sign them again? Thanks in advance!

Please include this:

pacman -Ss nvidia|grep installed     

It should just work at the signing stage. And it dose:

sudo sbctl verify && nvidia-smi                                                                              ─╯
[sudo] password for me: 
Verifying file database and EFI images in /boot/efi...
✓ /boot/efi/997733ed59bf48b2aa6cef8b9601cb3a/linux-cachyos/vmlinuz-linux-cachyos is signed
✓ /boot/efi/EFI/BOOT/BOOTX64.EFI is signed
✓ /boot/efi/EFI/cachyos/grubx64.efi is signed
✓ /boot/efi/EFI/limine/limine_x64.efi is signed
✓ /boot/vmlinuz-linux-cachyos-custom is signed
✓ /boot/vmlinuz-linux-cachyos-lts is signed
✓ /boot/efi/997733ed59bf48b2aa6cef8b9601cb3a/linux-cachyos-lts/vmlinuz-linux-cachyos-lts is signed
✓ /boot/efi/be9379fb7f2345d1a854c5da8fa34cdd/linux-cachyos-lts/vmlinuz-linux-cachyos-lts is signed
✓ /boot/efi/be9379fb7f2345d1a854c5da8fa34cdd/linux-cachyos/vmlinuz-linux-cachyos is signed
✓ /boot/vmlinuz-linux-cachyos is signed
Mon Apr  6 13:58:16 2026       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 595.58.03              Driver Version: 595.58.03      CUDA Version: 13.2     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3050 ...    Off |   00000000:01:00.0  On |                  N/A |
| N/A   40C    P8              4W /   80W |     347MiB /   4096MiB |     10%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A            3184      G   /usr/bin/ksecretd                         1MiB |
|    0   N/A  N/A            3270      G   /usr/bin/kwin_wayland                     7MiB |
|    0   N/A  N/A            3314      G   /usr/bin/plasma-keyboard                 48MiB |
|    0   N/A  N/A            3347      G   /usr/bin/Xwayland                         6MiB |
|    0   N/A  N/A            3382      G   /usr/bin/ksmserver                        1MiB |
|    0   N/A  N/A            3384      G   /usr/bin/kded6                            1MiB |
|    0   N/A  N/A            3409      G   /usr/bin/plasmashell                     65MiB |
|    0   N/A  N/A            3426      G   /usr/bin/kaccess                          1MiB |
|    0   N/A  N/A            3427      G   ...it-kde-authentication-agent-1          1MiB |
|    0   N/A  N/A            3529      G   /usr/bin/kdeconnectd                      1MiB |
|    0   N/A  N/A            3844      G   /usr/bin/konsole                          1MiB |
|    0   N/A  N/A            3975      G   /usr/bin/python                           1MiB |
|    0   N/A  N/A            4048      G   /usr/lib/xdg-desktop-portal-kde           1MiB |
|    0   N/A  N/A            4420      G   /usr/bin/kwalletd6                        1MiB |
+-----------------------------------------------------------------------------------------+

What pacman -Ss nvidia|grep installed gives me:

pacman -Ss nvidia|grep installed
cachyos-v3/lib32-nvidia-utils 595.58.03-1 [installed]
cachyos-v3/lib32-opencl-nvidia 595.58.03-1 [installed]
cachyos-v3/libxnvctrl 595.58.03-1 [installed]
cachyos-v3/linux-cachyos-lts-nvidia-open 6.18.20-1 [installed]
cachyos-v3/linux-cachyos-nvidia-open 6.19.10-1 [installed]
cachyos-v3/nvidia-settings 595.58.03-1 [installed]
cachyos-v3/nvidia-utils 595.58.03-1 [installed]
cachyos-v3/opencl-nvidia 595.58.03-1 [installed]
cachyos-extra-v3/egl-gbm 1.1.3-1.1 [installed]
cachyos-extra-v3/egl-wayland 4:1.1.21-1.1 [installed]
cachyos-extra-v3/egl-wayland2 1.0.1-1.1 [installed]
cachyos-extra-v3/egl-x11 1.0.5-1.1 [installed]
cachyos-extra-v3/libva-nvidia-driver 0.0.16-1.2 [installed]
cachyos-extra-v3/libvdpau 1.5-4.1 [installed]
cachyos-extra-v3/libxnvctrl 595.58.03-1.1 [installed: 595.58.03-1]
cachyos-extra-v3/nvidia-settings 595.58.03-1.1 [installed: 595.58.03-1]
cachyos/lib32-nvidia-utils 595.58.03-1 [installed]
cachyos/lib32-opencl-nvidia 595.58.03-1 [installed]
cachyos/libxnvctrl 595.58.03-1 [installed]
cachyos/linux-cachyos-lts-nvidia-open 6.18.20-1 [installed]
cachyos/linux-cachyos-nvidia-open 6.19.10-1 [installed]
cachyos/linux-firmware-nvidia 1:20260309-1 [installed]
cachyos/nvidia-settings 595.58.03-1 [installed]
cachyos/nvidia-utils 595.58.03-1 [installed]
cachyos/opencl-nvidia 595.58.03-1 [installed]
core/linux-firmware-nvidia 20260309-1 [installed: 1:20260309-1]
extra/egl-gbm 1.1.3-1 [installed: 1.1.3-1.1]
extra/egl-wayland 4:1.1.21-1 [installed: 4:1.1.21-1.1]
extra/egl-wayland2 1.0.1-1 [installed: 1.0.1-1.1]
extra/egl-x11 1.0.5-1 [installed: 1.0.5-1.1]
extra/libva-nvidia-driver 0.0.16-1 [installed: 0.0.16-1.2]
extra/libvdpau 1.5-4 [installed: 1.5-4.1]
extra/libxnvctrl 595.58.03-1 [installed]
extra/nvidia-prime 1.0-5 [installed]
extra/nvidia-settings 595.58.03-1 [installed]
extra/nvidia-utils 595.58.03-1 [installed]
extra/opencl-nvidia 595.58.03-1 [installed]
multilib/lib32-nvidia-utils 595.58.03-1 [installed]
multilib/lib32-opencl-nvidia 595.58.03-1 [installed]

Mine doesn’t seem to have everything signed…

sudo sbctl verify && nvidia-smi
[sudo] password for me:
Verifying file database and EFI images in /boot...
✗ /boot/32ddc08dba944e58bd2908b02408382b/limine_history/vmlinuz-linux-cachyos-lts_sha256_5d8c6e23cab2c641c36f705a035947111fb1a5c06c0dfba691ad2f46510652ae is not signed
✗ /boot/32ddc08dba944e58bd2908b02408382b/limine_history/vmlinuz-linux-cachyos_sha256_6febea8f7aacf9e91f9a4c573dc911be957008443e5ea0a5048732916c24e94d is not signed
✗ /boot/32ddc08dba944e58bd2908b02408382b/linux-cachyos/vmlinuz-linux-cachyos is not signed
✗ /boot/32ddc08dba944e58bd2908b02408382b/linux-cachyos-lts/vmlinuz-linux-cachyos-lts is not signed
✗ /boot/EFI/BOOT/BOOTX64.EFI is not signed
✓ /boot/EFI/limine/limine_x64.efi is signed
✓ /boot/vmlinuz-linux-cachyos is signed
✓ /boot/vmlinuz-linux-cachyos-lts is signed
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

Thanks for taking your time!

For me it went like this:

sudo pacman -S sbctl

sudo sbctl create-keys

sudo sbctl enroll-keys --microsoft --firmware-builtin

sudo  sbctl-batch-sign


And all should be good from there.

You will have to start just the signing process over though. (Setup Mode)

I see! The last command sudo sbctl-batch-sign wasn’t included in the Wiki-tutorial, and I didn’t therefore run it the first time. So I tried starting the signing process over (Setup Mode), but was met with the following (probably because I’m using limine as my bootloader?):

sudo  sbctl-batch-sign
Limine detected, please do not use this script.

Is there a similar command that would work for limine? I’m guessing you’re using a different bootloader (or do you have some other type of set-up)?

Have you followed the steps here?

there have been some changes with limine recently

Yep I blew right by limine mea culpa`

This should work as is:

sudo sbctl enroll-keys --microsoft

This is a limine boot:

sudo sbctl verify && nvidia-smi                                                                                 ─╯
[sudo] password for me: 
Verifying file database and EFI images in /boot...
✗ /boot/982a366da64e4a1daa4fd022c2886afa/limine_history/vmlinuz-linux-cachyos-bore_sha256_0f1acc864567e447df1d7cd44879e4c79a2e8a2a0217937e8a9d60f0f2d84c68 is not signed
✗ /boot/982a366da64e4a1daa4fd022c2886afa/limine_history/vmlinuz-linux-cachyos-lts_sha256_5d8c6e23cab2c641c36f705a035947111fb1a5c06c0dfba691ad2f46510652ae is not signed
✗ /boot/982a366da64e4a1daa4fd022c2886afa/limine_history/vmlinuz-linux-cachyos-rc_sha256_04a93f21ef60942825a9818dd3b9d53ff0d1e7f3f584637d179124e0add42f37 is not signed
✗ /boot/982a366da64e4a1daa4fd022c2886afa/limine_history/vmlinuz-linux-cachyos_sha256_6febea8f7aacf9e91f9a4c573dc911be957008443e5ea0a5048732916c24e94d is not signed
✓ /boot/982a366da64e4a1daa4fd022c2886afa/linux-cachyos/vmlinuz-linux-cachyos is signed
✓ /boot/982a366da64e4a1daa4fd022c2886afa/linux-cachyos-bore/vmlinuz-linux-cachyos-bore is signed
✓ /boot/982a366da64e4a1daa4fd022c2886afa/linux-cachyos-lts/vmlinuz-linux-cachyos-lts is signed
✓ /boot/982a366da64e4a1daa4fd022c2886afa/linux-cachyos-rc/vmlinuz-linux-cachyos-rc is signed
✗ /boot/EFI/BOOT/BOOTX64.EFI is not signed
✓ /boot/EFI/limine/limine_x64.efi is signed
Mon Apr  6 15:40:33 2026       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 595.58.03              Driver Version: 595.58.03      CUDA Version: 13.2     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3050 ...    On  |   00000000:01:00.0  On |                  N/A |
| N/A   42C    P8              4W /   80W |     278MiB /   4096MiB |      6%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A            1325      G   /usr/bin/ksecretd                         1MiB |
|    0   N/A  N/A            1404      G   /usr/bin/kwin_wayland                     7MiB |
|    0   N/A  N/A            1458      G   /usr/bin/Xwayland                         6MiB |
|    0   N/A  N/A            1488      G   /usr/bin/ksmserver                        1MiB |
|    0   N/A  N/A            1490      G   /usr/bin/kded6                            1MiB |
|    0   N/A  N/A            1544      G   /usr/bin/plasmashell                     64MiB |
|    0   N/A  N/A            1561      G   /usr/bin/kaccess                          1MiB |
|    0   N/A  N/A            1562      G   ...it-kde-authentication-agent-1          1MiB |
|    0   N/A  N/A            1629      G   /usr/bin/kdeconnectd                      1MiB |
|    0   N/A  N/A            2005      G   /usr/bin/python                           1MiB |
|    0   N/A  N/A            2077      G   /usr/lib/xdg-desktop-portal-kde           1MiB |
|    0   N/A  N/A            2436      G   /usr/bin/kwalletd6                        1MiB |
|    0   N/A  N/A            2479      G   /usr/bin/konsole                          1MiB |
+-----------------------------------------------------------------------------------------+

I finally found a solution! After some more digging (reading the Wiki-tutorial thoroughly), it seems as though it’s totally normal (and even beneficial) that you don’t sign everything when using Limine. The result I was getting when running sudo sbctl verify was in other words totally like it should be, hence why the Wiki-tutorial doesn’t include the sudo sbctl-batch-sign-step for Limine.

The thing that was causing the issue of my dGPU not getting recognized, was that I in Windows, in the for Legion laptops configuration program called Legion Space, had turned on a mode called “Hybrid-Auto Mode” which only uses the iGPU when not plugged in, and switches between the iGPU and the dGPU when plugged in depending on the task in question (or at least that’s how I’ve understood it). This must’ve stayed on even when I booted into CashyOS, which then probably wasn’t able to understand the mode, and just left the dGPU off completely (regardless of if the laptop was plugged in or not). Switching the mode to “Hybrid” (turning off “Hybrid-Auto Mode”) fixed this, and now my dGPU is getting recognized in CashyOS and works as intended!

Thanks to everyone for helping out along the way (especially @anon15508052 <3)!