iGPU Passthrough to LXC
Setting up fstab to auto-mount NAS shares via SMB/CIFS
- Install Jellyfin via Proxmox Helper Scripts
- Select custom installation and be sure the container is created as privileged vs. unprivileged so the NFS/CIFS mounts and hardware transcoding can work properly.
- Power the LXC container down to make modifications 3. Go to Options > Features and click Edit
- Add NFS, SMB/CIFS as needed
- Power on the LXC container
- Install CIFS Utils and/or NFS Utils (use sudo if not logged in as root user)
bash apt install cifs-utils nfs-common
- Edit the fstab
- Go to the first blank/open line and enter the following:
# CIFS/SMB Mount
# //192.168.2.6/Media /mnt/media cifs user=jellyfin,password=jellyfin,iocharset=utf8,noperm 0 0
# NFS Mount
192.168.2.6:/mnt/user/Media /mnt/media nfs rw,hard 0 0
- Save changes to the fstab
Configuration to pass through iGPU
- https://jellyfin.org/docs/general/administration/hardware-acceleration/intel#lxc-on-proxmox
- Load the correct graphics driver for the container
nano /etc/modprobe.d/i915.conf
- Add the following line to the blank file and save:
options i915 enable_guc=3
- Modify the LXC container's config file where the ###.conf is the ID of the container
nano /etc/pve/lxc/101.conf
- Add the following lines to the end of the container config (the Proxmox Helper Script may have added these lines already - no need to add them 2x if they are already there):
lxc.cgroup2.devices.allow: c 226:0 rwm lxc.cgroup2.devices.allow: c 226:128 rwm lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
- Pass through the iGPU
- Verify the passthrough in the Jellyfin LXC
- Install drivers in the container
apt install vainfo intel-gpu-tools
- Verify driver install status and supported codecs by running the
vainfo command and intel_gpu_top
- Make sure user and group settings are correct
usermod -aG video jellyfin usermod -aG input jellyfin usermod -aG render jellyfin
- Restart the Jellyfin service for changes to take effect
systemctl restart jellyfin.service
- Select Intel QSV/QuickSync transcoding in the dropdown and select the correct codecs.
- Depending on the generation of Intel CPU/iGPU you are using, you may/will likely need to enable both low power modes.
- 12. To configure and verify low power (LP) mode, install the following: ```bash apt update && apt install -y linux-firmware ``` 13. Add the following to the host system to enable loading of GuC and HuC low power firmwares: ```bash mkdir -p /etc/modprobe.d sh -c "echo 'options i915 enable_guc=2' >> /etc/modprobe.d/i915.conf" ``` 14. Update the initramfs and grub ```bash update-initramfs -u && update-grub ``` 15. Reboot the system for the changes to take effect 16. Verify the firmware status and be sure there is no ERROR or FAIL in the output ```bash dmesg | grep i915 cat /sys/kernel/debug/dri/0/gt/uc/guc_info cat /sys/kernel/debug/dri/0/gt/uc/hu
_info ```
- or FAIL in the output ```bash dmesg | grep i915 cat /sys/kernel/debug/dri/0/gt/uc/guc_info cat /sys/kernel/debug/dri/0/gt/uc/hu