I recently upgraded my setup from an RPi running DietPi to a Beelink 14 (N150) running Proxmox. So far it’s been fun screwing around with it, creating VMs and LXCs, and getting to learn the ways of Proxmox.

My latest obstacle, however, was migrating my Plex setup from the RPi to the Beelink, I have created an unprivileged LXC and setup Plex manually. I know there is a Community Helper Script for it but where is the fun in that.

Anyway, I am trying to enable HW acceleration and can’t seem to passthrough the GPU drivers to the LXC without breaking things (thankfully I have a backup that I always restore to once things break).

I looked up tutorials online that might help but I can’t seem to find anything applicable, mostly people suggest to just use the Community Helper Script and get it over with. There isn’t much I can learn doing it the easy way.

Can anyone suggest to me how to go ahead with this or at least point me in the right direction?

Thank you.

all 10 comments

sorted by: hot top controversial new old
[–] 8 points 1 year ago (2 children)

FWIW I did this with jellyfin and ended up just using a vm instead of lxc. This way I could just pass the entire device through, not have to mess with drivers in my proxmox host, and not have to reboot all my vms/lxc just to apply updates.

  • source
  • hideshow 2 child comments
  • [–] 3 points 1 year ago (2 children)

    It should be the same process as for Jellyfin, aside from the steps to install or change settings in Jellyfin itself.

    https://www.reddit.com/r/Proxmox/comments/1c9ilp7/proxmox_gpu_passthrough_for_jellyfin_lxc_with/

  • source
  • hideshow 2 child comments
  • [–] [S] 2 points 1 year ago (1 child)

    Will give this a look. Thank you.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 3 points 1 year ago (1 child)

    You could read the script and see what it does.

  • source
  • hideshow 1 child comment
  • [–] 1 point 1 year ago

    I have an N150 proxmox setup as well. I had to enable iommu in the kernel to get pci-e pass through working (intel_iommu=on).

  • source
  • [–] 1 point 1 year ago*
    1. Nesting=1. This isn't about virtualizing inside the container, it allows internal resources to access parent resources.

    2. You should only need the cgroup2 entries, but they should be pointing to the correct devices:

    • cgroup2 entries to allow rwm access to the correct device
    • /dev/dri dir and file entries that specify bind,optional,create

    Nvidia example, but quicksync is similar:

    lxc.cgroup2.devices.allow: c 226:0 rwm
    lxc.cgroup2.devices.allow: c 226:128 rwm
    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
    
  • source