MS-A2 Minisforum (AMD Ryzen™ 9 9955HX + Radeon™ 610M) – The “I Finally Stopped Crying” Zero-Artifact iGPU Passthrough Thread

Thank you all for the help and the configurations, I have gotten iGPU passthrough and hardware encoding working on my virtualized Debian VM running jellyfin in a docker container! Yes I know, lots of nested virtualization/containerization. Yes, I know that I am crazy
 
Thank you all for the help and the configurations, I have gotten iGPU passthrough and hardware encoding working on my virtualized Debian VM running jellyfin in a docker container! Yes I know, lots of nested virtualization/containerization. Yes, I know that I am crazy
Running docker in a vm is not crazy but best practice ;) Running docker in lxcs is more problematic since such setups are more likely to break after updates. Main reason to do this nontheless is if one want to use a iGPU without passthrough to a vm or share with with multiple lxcs and the application is only available as docker container. This is not needed for jellyfin since it's also available as a deb-package but some other applucations like immich. So this is something to consider of you want to switch back to a lxc-based setup for your docker containers.
 
Last edited:
New to virtualization here haha, so managing the nested nature of this project has been hard.

Reason for doing it with VM instead of LXC: needing access to stable proprietary AMF drivers for AMD VCN hardware encoding on another service (not jellyfin) that's currently provided as a docker image. So far, I have been unsuccessful with LXCs due to the finnicky nature of AMF drivers and their need to have a very specific environment. The isolated kernel of the VM has made that easier, because I really don't want to install bullsh*t AMF drivers + AMDGPU stack on my proxmox host. I am sure that there are ways I could do it more efficiently, always looking to learn!

With this guide I have successfully passed through the iGPU to the Debian VM and am utilizing it concurrently in two separate docker containers on that VM. Seems like magic to me!

Thanks again for everyone's hard work!
 
I am sure that there are ways I could do it more efficiently, always looking to learn!

Nothing wrong with passthrough to a VM ;) As said if you happen to run docker containers this is best practice anyhow. If you want to also use something like Immich (which also profits from a GPU but is only available as docker image) this is absolutely the way to go. But Jellyfin also supports installing on Debian/Ubuntu with a regular package without docker: https://jellyfin.org/docs/general/installation/linux
This would also work with a Debian LXC. But as said: If you want to run docker workloads which profits from the GPU anyhow, no need to change your setup ;) I just want to mention it so you know that you have this option if you ever feel that you might want to get back to lxcs. I wouldn't use lxc (if possible) to host docker containers though.

With this guide I have successfully passed through the iGPU to the Debian VM and am utilizing it concurrently in two separate docker containers on that VM.

One caveat is that you can't use the Proxmox console via an attached monitor anymore as long as the VM is running. This is usually not a problem (since you will done most of your admin work via ssh or the PVE web ui anyhow) but might be if you ever need to do troubleshooting.

Thanks again for everyone's hard work!

You are welcome, enjoy your new homeserver :)
 
  • Like
Reactions: UdoB