# Nvidia Driver Install on Proxmox LXC

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

```bash
$ 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

```bash
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

```bash
sudo ./NVIDIA-Linux-x86_64-550.90.07.run --no-kernel-module
```

Test with nvidia-smi

![image.png](https://wiki.tinod.net/uploads/images/gallery/2025-01/scaled-1680-/gKFlUuMayZUN5Hor-image.png)