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:
apt update apt install pve-kernel-5.19
2. Avoid simplefb claiming iGPU:
nano /etc/default/grub
addinitcall_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
6. Within LXC-container enable GUC (maybe unnecessary):
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.
Great tutorial. Unfortunately, my Plex still says "transcoding" and not "hw-transcode." The only difference I have with you is my CPU is i9-11900k, but still should be the same process.