Plex in FreeNAS jail and vaapi Intel hardware acceleration support

Here’s how I got to the stage above. (Assuming its working properly, I’m new to Plex, so not 100% sure)

Setup:
FreeBSD 12.0-RELEASE
Intel i3-8300

Host:

pkg install drm-fbsd12.0-kmod

this will bring gpu-firmware-kmod along as well
I’m currently running
drm-fbsd12.0-kmod-4.16.g20181215
gpu-firmware-kmod-g20181104

Then add the following to /etc/rc.conf

kld_list="/boot/modules/i915kms.ko"
devfs_load_rulesets="YES"

this will load the kernel module on boot and tells devfs to look at the local rules file

You then need to create /etc/devfs.rules
This is what I used

[devfsrules_plex_jail=10]
add include $devfsrules_hide_all
add include $devfsrules_unhide_basic
add include $devfsrules_unhide_login
add include $devfsrules_jail
add path 'dri*' unhide
add path 'dri/*' unhide
add path 'drm*' unhide
add path 'drm/*' unhide

This creates a new ruleset that allows access to the dri and drm devices
use iocage to add this ruleset to your plex jail

iocage set devfs_ruleset="10" 

restart the jail then console in

Jail:
once inside the jail you need to install some intel packages

pkg install libva-intel-driver
pkg install libva-intel-media-driver
pkg install libva-intel-hybrid-driver

I now have the following libva packages inside the jail

libva-2.3.0_1                  VAAPI wrapper and dummy driver
libva-intel-driver-2.2.0_5     VAAPI intel driver
libva-intel-hybrid-driver-1.0.2_1 Hybrid VP8 encoder and VP9 decoder for Intel GPUs
libva-intel-media-driver-18.3.0_3 Intel Media Driver for VAAPI

If that doesn’t work for others let me know and I’ll double check my steps.
I think the following things are probably critical

  • FreeBSD 12
  • Using Latest packages not quarterly
  • Loading the right kernel driver
  • Getting the devfs rules right
  • Adding the Intel specific libva packages
  • A few version bumps since previous attempts
2 Likes