I finally managed to make hw transcoding work with Proxmox and Plex in an LXC container with Jasper Lake CPU. This has always been relatively easy with other hardware, but these Jasper Lake CPU’s (N5105, N6005 etc.) have been causing me headaches previously. But no more!
(Basically this is a combination of many discussions within this forum, some chinese forums and Plex's forums.)
1. Update kernel within Proxmox host to 5.19:
2. Avoid simplefb claiming iGPU:
add
within GRUB_CMDLINE_LINUX_DEFAULT after quiet
3. Enable GUC in Proxmox host:
4. Download missing ehl_gux_70.1.1.bin to /lib/firmware/i915 within Proxmox host:
Note: this may be unnecessary - I've had one installation where this file already existed, but also one where manual download was needed.
5. Make sure iGPU is passed thru to LXC-container with following lines with it’s .conf -file:
6. Within LXC-container enable GUC (maybe unnecessary):
7. Within LXC-container install Intel’s non-free drivers:
8. Install latest Plex 1.29.x or higher, enable hw transcoding:
Note: Enabling HDR tone-mapping may still cause “AVHWDeviceContext … No matching devices found.” error within Plex. This shouldn't be happening, however wven with N6005 the difference on CPU load with or without tone mapping with 4K HDR video is very low: 3-4% without tone mapping for single 4K movie, 5-7% with tone mapping on.
(Basically this is a combination of many discussions within this forum, some chinese forums and Plex's forums.)
1. Update kernel within Proxmox host to 5.19:
apt update
apt install pve-kernel-5.19
2. Avoid simplefb claiming iGPU:
nano /etc/default/grub
add
initcall_blacklist=sysfb_init
within GRUB_CMDLINE_LINUX_DEFAULT after quiet
3. Enable GUC in Proxmox host:
echo “options i915 enable_guc=2” >> /etc/modprobe.d/i915.conf
4. Download missing ehl_gux_70.1.1.bin to /lib/firmware/i915 within Proxmox host:
cd /lib/firmware/i915
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/i915/ehl_guc_70.1.1.bin
Note: this may be unnecessary - I've had one installation where this file already existed, but also one where manual download was needed.
5. Make sure iGPU is passed thru to LXC-container with following lines with it’s .conf -file:
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.cgroup2.devices.allow: c 29:0 rwm
lxc.mount.entry: /dev/fb0 dev/fb0 none bind,optional,create=file
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.entry: /dev/dri/renderD128 dev/renderD128 none bind,optional,create=file
echo “options i915 enable_guc=2” >> /etc/modprobe.d/i915.conf
7. Within LXC-container install Intel’s non-free drivers:
apt install intel-media-va-driver-non-free
8. Install latest Plex 1.29.x or higher, enable hw transcoding:
wget https://artifacts.plex.tv/plex-media-server-experimental/1.29.2.6273-2b xx xx x x.deb
dpkg -i plexmediaserver_1.29.2.6273-2b xx xx x x.deb
Note: Enabling HDR tone-mapping may still cause “AVHWDeviceContext … No matching devices found.” error within Plex. This shouldn't be happening, however wven with N6005 the difference on CPU load with or without tone mapping with 4K HDR video is very low: 3-4% without tone mapping for single 4K movie, 5-7% with tone mapping on.
Last edited: