Skip to main content

Nvidia Driver Install on Proxmox

1. Blacklist nouveau:
vi /etc/modprobe.d/blacklist-nouveau.conf

2. Paste, save and quit:
blacklist nouveau
options nouveau modeset=0

3. Update initramfs:
update-initramfs -u

4. Check if nouveau is enabled:
lsmod | grep nouveau

5. Disable nouveau and verify:
rmmod nouveau
lsmod | grep nouveau

6. Ensure GPU is visible:
lspci | grep NVIDIA

7. Download driver (check for most recent version compatible with nvidia-utils-xxx-server):
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/550.90.07/NVIDIA-Linux-x86_64-550.90.07.run
chmod +x NVIDIA-Linux-x86_64-550.90.07.run

8.Install build packages:
apt install build-essential pve-headers-$(uname -r)

9. Run instalation:
./NVIDIA-Linux-x86_64-550.90.07.run

10. Check if instalation was successfull:
nvidia-smi

11. [optional] Turn on persistane mode if necessary (lowers IDLE power consumption):
https://docs.nvidia.com/deploy/driver-persistence/index.html
nvidia-smi --persistence-mode=1 #only for current session
nvidia-persistenced

12. After creating CT shut it down and edit lxc configuration file (location might be diffrent):
vi /etc/pve/nodes/pve/lxc/10001.conf

13. run ls -al /dev/nvidia* to find out your VMID, in our case is 195,255

$ sudo ls -al /dev/nvidia*

13.root@pve:/home#  Paste,ls save-al and/dev/nvidia*
crw-rw-rw- quit.1 Ifroot youroot have195,   more0 thanJan one31 GPU, change02:03 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 Jan 31 02:03 /dev/nvidia0nvidiactl
crw-rw-rw- to1 root root 508,   0 Jan 31 02:03 /dev/nvidia<GPUnvidia-uvm
crw-rw-rw- ID>1 root root 508,   1 Jan 31 02:03 /dev/nvidia<GPUnvidia-uvm-tools

ID>:

14. Edit your lxc config, /etc/pve/lxc/XXX.conf append the following

lxc.cgroup2.devices.allow: c 195:* rwm
lxc.cgroup2.devices.allow: c 243:508:* rwm
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
lxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file
lxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file

Conf example

arch: amd64
cores: 4
features: nesting=1
hostname: immich
memory: 8096
mp0: nvme:105/vm-105-disk-1.raw,mp=/nvme/upload,size=500G
mp1: /zfs/media,mp=/mnt/media
nameserver: 192.168.3.1
net0: name=eth0,bridge=vmbr0,hwaddr=BC:24:11:E2:D3:5D,ip=dhcp,type=veth
onboot: 1
ostype: ubuntu
rootfs: nvme:105/vm-105-disk-0.raw,size=50G
swap: 2048
lxc.cgroup2.devices.allow: c 195:* rwm
lxc.cgroup2.devices.allow: c 508:* rwm
lxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file
lxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file

 

14. Start Push the nvidia driver to your CTLXC andby install (onselecting the CT):
aptLXC installVMID

nvidia-utils-550-server

sudo pct push <VMID> ./NVIDIA-Linux-x86_64-550.90.07.run /root/NVIDIA-Linux-x86_64-550.90.07.run

15. VerifyInstall installationNvidia (driver on theLXC

CT)
sudo ./NVIDIA-Linux-x86_64-525.89.02.run --no-kernel-module

Test with nvidia-smi