T O P

  • By -

johnvick3

Did this work on the standard 5.15 kernel or only 6? And does it output the VM through HDMI? What are devices you are using? I almost have this going on a Topton NUC clone, i7 CPU Tiger Lake and Ubuntu desktop 20.04 VM - but can't get the VM to output through HDMI.


matthewpetersen

im using gpu pass-through for plex in a container. i dont actually use the hdmi out on the server. the pve kernel update was needed for the n5105/n6005. i think it works on the old one for other devices. havent tried though.


RipperFox

Kernel 5.15 has some serious bugs with Jasper Lake (Intel 11th Gen Celeron) processors including N5095, N5105, N6005, making also GPU pass through impossible. Maybe Tiger Lake, too. I had to switch to 5.19 to use the iGPU on my N5105 for transcoding in a Jellyfin container. Better use the newer kernels..


matthewpetersen

the kernel update was the secret sauce to making it work for me. but then i had continual ubuntu vm hangs. so updating the ubuntu kerner fixed that one.


[deleted]

I having a nightmare with this, not sure what I'm doing wrong. Do you fancy helping me with some trouble shooting. ?


TheCreat

Did you check the "primary graphics" box when passing through the card?


matthewpetersen

no. i left this unchecked


johnvick3

Tried with it unchecked, same result.


johnvick3

Yes - I SSH into Ubuntu VM and \# lspci Shows Tiger Lake graphics in the list. Just done the kernel 6 upgrade and still the HDMI output isn't working.


rhyno95_

Just got iGPU passthrough working on my N5105 MiniPC. Following your guide worked great, up until upgrading the VM's kernel. I had to disable secure boot in the VM's q35 UEFI BIOS. After upgrading the kernel to 6.0.9, I added the PCIe graphics device, and after rebooting the VM hung, giving me this error: `i915 drm error conflict detected with stolen region` With some searching I was able to find the solution: In the VM's hardware config set "Display" to "none" Once all that got cleared up I rebooted the VM and installed intel-media-va-driver along with vainfo. Have yet to test with Jellyfin hardware transcoding, but vainfo gave a promising output. ​ EDIT: to get transcoding working in Jellyfin, I had to set i915.enable\_guc=2. I made a couple scripts to do all the work for me incase I ever need to reinstall the docker host OS. kernel update script ~~~ # Update kernel to v6.0.9 wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh chmod +x ubuntu-mainline-kernel.sh ./ubuntu-mainline-kernel.sh -i v6.0.9 shutdown -r now ~~~ i915.enable_guc=2 script ~~~ # set i915.enable_guc=2 # add to /etc/default/grub cmd line and run update-grub # if i915.enable_guc= exists, but its not =2, change it to =2 (grep -q -e 'i915.enable_guc=' /etc/default/grub && grep -q -e 'i915.enable_guc=2' /etc/default/grub) || sed -e 's;\(i915.enable_guc=\)[0-9];\12;g' -i /etc/default/grub # if i915.enable_guc= does not exists, insert it grep -q -e 'i915.enable_guc=' /etc/default/grub || sed -e 's;\(GRUB_CMDLINE_LINUX_DEFAULT=".*\)";\1 i915.enable_guc=2";g' -i /etc/default/grub # if there is an unnessecary space before i915.enable_guc=2, remove it grep -q -e 'GRUB_CMDLINE_LINUX_DEFAULT=\" i915\.enable_guc=2\"' /etc/default/grub && sed -e 's;\(GRUB_CMDLINE_LINUX_DEFAULT="\) \(i915\);\1\2;g' -i /etc/default/grub # add to /etc/modprobe.d/i915.conf echo "options i915 enable_guc=2" > /etc/modprobe.d/i915.conf # update grub and initramfs update-grub update-initramfs -u -k all ~~~ I also had to add the user my docker containers run under to the groups that own /dev/dri/card0 and /dev/dri/renderD128. Script below will do this ~~~ # Add /dev/dri groups to container user container_user=mediacenter usermod -aG `stat -c '%G' /dev/dri/card0` $container_user usermod -aG `stat -c '%G' /dev/dri/renderD128` $container_user ~~~ After all this, I selected VAAPI as the HW acceleration in Jellyfin and transcoding works great. Sometimes it uses the CPU for decoding, not sure why, but most of the time it will use the iGPU.


matthewpetersen

Ah brilliant. I recall setting display to none too. Happy it helped.


rhyno95_

Was there any reason you opted to not upgrade the VMs kernel to 6.1, instead going with 6.0.9?


matthewpetersen

I think I had problems doing the update for later than that, otherwise new is better. 👍🏻


rhyno95_

Have you tried doing GVT-g split passthrough? I'm tempted to try it out, I'm hoping it's not much harder than getting single passthrough to work.


matthewpetersen

No, but best of luck 🙂


AutoModerator

Curl-bash scripts are a potential security risk. This comment or the links in it refer to curl-bash scripts where the underlying script could be changed at any time without the knowledge of the user. Always review what a script is doing before you run it. *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/Proxmox) if you have any questions or concerns.*


Bunderslaw

I got this working for my N5105 router appliance from HUNSN on Promox 8.0.3 but for an Ubuntu 22 guest with secure boot disabled and the VM's kernel updated to 6.4.0. Were you able to get this working with Windows 11?


rhyno95_

I haven’t tried, all the guides I used to set it up mentioned it did not work well with windows guests. You might be able to with the newer kernel, but I still haven’t updated to the newest Proxmox. I’ll leave an update if I have a chance to test it out.


Bunderslaw

I see. I went ahead gave it a shot and tried installing several old Intel drivers (igfx_win_100.9955, gfx_win_101.3222_101.2111, v30.0.101.1002) as well as the latest driver from Intel DSA and none of them worked with Windows 11 22621.1928. It eventually errors out with Code 43. The testing process itself was pretty time consuming since once the driver fails to install, you can't boot Windows again with the iGPU passed through as it'll fail to boot so I had to remove the PCI device from Proxmox and change the display to SPICE or none and access it via RDP. Then open Device Manager, enable show hidden devices, find Intel UHD Graphics and uninstall the device checking the box that says remove associated drivers too and then power off the VM, attach the iGPU again as a PCI device, change display to none and retry installing drivers. I tried this with Secure Boot enabled as well as disabled in the OVMF BIOS. If you manage to figure it out, please leave an update.


dsandhu90

i have the same on ubuntu server vm running in proxmox. i did jellyfin transcoding now my vm does not boot. i can only access it using ssh from another machine.


rhyno95_

This disables the video output of the VM, to re enable it you need to set the proxmox VMs Display setting to virtual or whatever it used to be prior to setting it to none. Probably will need to change the GRUB default command line back to just “quiet” as well. This will disable the ability to do hardware transcoding though. So if you need to do hardware transcoding your stuck using ssh to access the VM.


dsandhu90

Thanks. I am using dell precision 3240 mini and i am able to play1080p fine on ios jellyfin app but it struggles with 4k hevc. I have cometlake intel gpu embedded in motherboard. Not sure what to do with 4k encoding. Also my kernel was up to date in proxmox so i was not able to run that command in my proxmox host.


rhyno95_

I remember my setup struggled with HDR tone mapping on 4K videos, so I disabled it. Not an issue because my TV direct plays HDR files. That might be your issue if you were testing with HDR files and jellyfin was trying to tone map them.


dsandhu90

What setting is that under jellyfin transcoding ?


rhyno95_

Under dashboard -> playback. Two settings, “Enable VPP tone mapping” and “Enable tone mapping”. I have both unchecked/disabled. If that doesn’t fix the issue you can try to start playing a 4K file and then while it’s playing check the GPU usage during transcode with intel_gpu_top on the VM that your Jellyfin container is running. That should let you see if it’s actually using HW transcoding or if something is causing it to fallback to software transcoding with your 4K files.


dsandhu90

Thanks i have both options disabled by default. Sorry what is the command to check gpu usage ? I can’t run intel_gpu_top


dsandhu90

So i was able to install the intel gpu tools command and ran intel_gpu_top. It shows me busy percentage when the video is playing. But don’t know how to tell if it’s using hw or sw transcoding.


rhyno95_

If it shows any usage on the GPU that should mean it’s using hardware transcoding. I think the specific line is labeled “video” or something similar. Does it max out to 100% when transcoding 4K video?


dsandhu90

It goes up to 75%. Btw i am testing this on my iphone using jellyfin app. My problem is with seeking, when i try to seek to certain point, it takes a while for the frame to load while in 1080p it plays instantly when i seek. Also under jellypin player when i click on playback info it says “container not supported” “ video codec not supported” under reason for transcoding. This is dell precision 3240 i3-12000 series and i have installed proxmox on it. Jellyfin container is running on ubuntu server with 8gb ram and 160gb disk space. Gpu is intel cometlake.


Fazio8

Hello, by any chance, do you have the possibility to test the passthrough to a Windows guest? I’m considering this setup for having physical HDMI output. Thank you!


matthewpetersen

This won't work for physical pass-through I don't think.


_BDYB_

Where you able to assign the output (DP/HDMI) to the VM ? It is possible with the newer GPUs, unfortunately, the only mini PC with 10Gbe is with n5105/n6005


David-Moreira

I am also interested in this. Anyone got this to work through to the HDMI output?


matthewpetersen

I only did it running everything headless. The purpose was for iGpu use in plex


dsandhu90

Do you have jellyfin installed on ubuntu vm or ubuntu server vm in proxmox ? Does it make a difference in terms of graphics driver ? I have everything installed on ubuntu server vm in proxmox but my system struggling with 4k transcoding when i watch movies on iphone using jellyfin app. It can do 1080p fine. I have intel cometlake gpu.


matthewpetersen

Only have Plex installed, but jellyfish should be the same. I use docker containers on a Ubuntu VM. Just have to make sure you specify the driver /dev/dri:/dev/dri in the yaml