NVIDIA UVM driver not loaded at boot

I reinstalled Tumbleweed last night after a brief distrohop (Turns out I missed a lot about openSUSE that I didn’t realise) and I decided to remove the NVIDIA repos at install time and try the 610 run file instead. It worked well (And was actually so fast I wasn’t sure it had actually worked). The only issue I had was that I had to blacklist nouveau manually, and on first boot I have to type nvidia-smi before playing a game otherwise my GPU isn’t detected (I have also had this issue installing from the repos, so I can’t blame the run file for that). Just posting my anecdote incase it helps someone.

Running nvidia-smi is actually a known quirk with manual NVIDIA driver installs. Because no graphical service explicitly requests the NVIDIA driver during early boot, the kernel modules may not be loaded automatically.

Refer
https://en.opensuse.org/SDB:NVIDIA_drivers#NVIDIA_UVM_driver_not_loaded_at_boot

Also, which DE are you using? There are ways to launch graphical applications and ensure the NVIDIA modules are loaded when the they start.

How did you manage to blacklist nouveau? blacklist nouveau in a modprobe.d conf didn’t work for me, adding rd.driver.blacklist and two other arguments I can’t remember now to boot options just made the whole system panic when I tried.

Thanks Deano, I’ve actually seen this from a repo install as well, but also I load nvidia + uvm/drm/modeset in the initramfs with dracut, I diffed lsmod before/after running nvidia-smi and nothing changed. It’s very weird.

I am on KDE Plasma, I could just write a systemd service but it seems like a hack, if you know of a better fix I would be very happy!

Strange. modprobe.blacklist=nouveau and rd.driver.blacklist=nouveau should work.

Did you rebuild your initramfs and update your bootloader entries after changing the commandline?

Hmmm…post the output of ls -l /dev/nvidia* before and after running nvidia-smi? Show its output too.

Assuming that’s what dracut -f does, then yes. i added those entries to /etc/kernel/cmdline (using systemd-boot) and got nouveau spewing errors during boot. I admit I wasn’t paying full attention because I was pretty annoyed at that point and wanted it to be over with.

Interesting, yeah I can see UVM doesn’t appear there until I run nvidia-smi. Can I just throw it into modules-load.d?

crw-rw-rw-. 1 root root 195, 255 Aug 20 00:22 /dev/nvidiactl
crw-rw-rw-. 1 root root 195, 254 Aug 20 00:22 /dev/nvidia-modeset
crw-rw-rw-. 1 root root 195,   0 Aug 20 00:22 /dev/nvidia0
crw-rw-rw-. 1 root root 195, 255 Aug 20 00:22 /dev/nvidiactl
crw-rw-rw-. 1 root root 195, 254 Aug 20 00:22 /dev/nvidia-modeset
crw-rw-rw-. 1 root root 239,   0 Aug 20 00:25 /dev/nvidia-uvm
crw-rw-rw-. 1 root root 239,   1 Aug 20 00:25 /dev/nvidia-uvm-tools

/dev/nvidia-caps:
total 0
cr--------. 1 root root 242, 1 Aug 20 00:25 nvidia-cap1
cr--r--r--. 1 root root 242, 2 Aug 20 00:25 nvidia-cap2
Thu Aug 20 00:25:40 2026       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 610.57.04              KMD Version: 610.57.04     CUDA UMD Version: 13.3     |
+-----------------------------------------+------------------------+----------------------+
| 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 4090        Off |   00000000:01:00.0  On |                  Off |
|  0%   45C    P8             26W /  450W |    1395MiB /  24564MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A            2301    C+G   /usr/bin/kwin_wayland                   164MiB |
|    0   N/A  N/A            2359      G   /usr/bin/Xwayland                         9MiB |
|    0   N/A  N/A            2494      G   /usr/bin/plasmashell                    314MiB |
|    0   N/A  N/A            2866      G   /usr/bin/xwaylandvideobridge              6MiB |
|    0   N/A  N/A            3071      G   ...share/Steam/ubuntu12_32/steam         13MiB |
|    0   N/A  N/A            3259      G   ./steamwebhelper                         44MiB |
|    0   N/A  N/A            3292      G   ...am/ubuntu12_64/steamwebhelper         44MiB |
|    0   N/A  N/A            4585      G   gwenview                                  6MiB |
|    0   N/A  N/A            6237      G   /app/lib/firefox/firefox                301MiB |
+-----------------------------------------------------------------------------------------+

I would try loading it manually

sudo modprobe nvidia_uvm
ls -l /dev/nvidia*

then
sudo dracut -f
Reboot and check again.

@Shortwave8115 See https://forums.developer.nvidia.com/t/nvidia-unified-memory-kernel-module-to-load-at-boot/174562

Create a /etc/systemd/system/nvidia-uvm.service file with;

[Unit]
Description=Load nvidia-uvm module at boot time
After=nvidia-persistenced.service

[Service]
Type=oneshot
ExecStart=/usr/bin/sh -c "/usr/bin/nvidia-modprobe --unified-memory --create-nvidia-device-file=0 >> /var/log/nvidia-uvm.log 2>&1"

[Install]
WantedBy=multi-user.target

Then systemctl enable nvidia-uvm.service test on a reboot…

Likewise if using the run file, I use;

./NVIDIA-Linux-x86_64-$RUN_VERSION.run \
    --ui=none \
    --no-questions \
    --accept-license \
    --disable-nouveau \
    --no-install-libglvnd \
    --no-cc-version-check

I probably need to test with adding the --dkms option…

That’s the weird thing, I don’t have an nvidia-persistenced service, but I have the binary. I’ll look into it some more tonight, thanks for the pointers !

@Shortwave8115 … I added these lines to top of my /etc/modprobe.d/90-nvidia.conf

# Modprobe won't load nvidia_uvm automatically without this !?
softdep nvidia post: nvidia_uvm

Then you’re good to go

widowmaker:/home/dart/Downloads # lsmod | grep nvidia
nvidia_drm            167936  12
nvidia_modeset       1818624  30 nvidia_drm
nvidia_uvm           2334720  0
nvidia              118992896  413 nvidia_uvm,nvidia_drm,nvidia_modeset
drm_ttm_helper         20480  2 nvidia_drm
video                  81920  1 nvidia_modeset