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*
root@pve:/home# ls -al /dev/nvidia*
crw-rw-rw- 1 root root 195, 0 Jan 31 02:03 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 Jan 31 02:03 /dev/nvidiactl
crw-rw-rw- 1 root root 508, 0 Jan 31 02:03 /dev/nvidia-uvm
crw-rw-rw- 1 root root 508, 1 Jan 31 02:03 /dev/nvidia-uvm-tools
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 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
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. Push the nvidia driver to your LXC by selecting the LXC VMID
sudo pct push <VMID> ./NVIDIA-Linux-x86_64-550.90.07.run /root/NVIDIA-Linux-x86_64-550.90.07.run
15. Install Nvidia driver on LXC
sudo ./NVIDIA-Linux-x86_64-525.89.02.run --no-kernel-module
Test with nvidia-smi