Jump to content

unRAID plugin for iGPU SR-IOV support


Recommended Posts

On 7/17/2023 at 4:11 PM, mkkk said:

What is VF numbers? What should I select?

 

image.thumb.png.a872d5f6b651ac9c90edb7d2383edc63.png

 

I can output video with my Ubuntu VM, but not Windows

 

Unraid 6.12.2

 

image.thumb.png.3c4f5b5aa984fe472759a97fb2e3f854.png

I am getting the same VFIO errors.   Since ive upgraded from 6.11 to 6.12, ive had nothing but issues. From docker networking, VMs and wireguard.   GPU passthrough totally broke for me. 

 

Its terribly frustrating.

Link to comment

I am able to get this to work with my 12500 but the issue is that it doesn't output baremetal through the HDMI port of my mobo. I'm trying to use the Intel UHD Graphics 770 in my Windows 10 VM but the display that shows from the HDMI port is the console output of unRAID. This is despite the fact that my setup has a discrete GPU, RTX 3050, that has been configured in the bios to be the INIT DISPLAY GPU (PEG) and IGPU MULTI-MONITOR is ENABLED. SR-IOV is also enabled in bios along with ABOVE 4G DECODING.

 

What is strange is that when I fire up the VM with 2 GPUs, VNC AND the iGPU, and access the VM through VNC, I can see under device manager that the UHD 770 is listed there and working fine without code 43. Yet I am unable to get an output through the mobo's HDMI port. When I edit the VM to 1 GPU with the RTX 3050, I am able to get an output through the HDMI port of the 3050.

Link to comment

That Makes totaly Sense. 
 

your PC boots up with Display Output over the Nvidia until Unriad Boots up then Unraid stubs that GPU so no Output.

 

Unraid finds another active GPU and takes over.

 

That IGPU + Output is used by Unraid because its Not stubbed 

 

IF you install something like the steamOS docker und use the HDMI you get an Display Output on your Monitor.

 

That is the State of sriov with Intel IGPUs in Unraid.

 

in the Intel Papers there are some hints that you could get more Video Outputs with VGPUs.

 

the VFs dont have Video Output over HDMI by now.

 

you need a virtual Display driver in your VM to use Parsec or install AnyDesk or something Similar.

 

 

Edited by domrockt
Link to comment

I have tried to stub the iGPU by checking under

 

TOOLS > SYSTEM DEVICES and checking against the iGPU and clicking BIND SELECTED TO VFIO AT BOOT

 

I still don't get an output through the iGPU in the Windows 10 VM.

 

Basically I'm just asking for a way to get an output from my mobo's (MSI B660M-A DDR4) HDMI port driven by the UHD Graphics 770 of the i5 12500.

Link to comment
  • 2 weeks later...

I am running the latest build, 6.12.3.  I recently moved my install to new hardware from a power hungry Dell T620/p2000 to an Intel 12700k w/ Asus TUF GAMING Z690-PLUS WIFI D4 (dang microcenter and their deals!!).  My build includes 64gb ram, a perc h811 sas card in IT mode, a p2000, dual SN850 2TB's for cache, and a single 1tb SN850 for VM's.

 

Moving the install was super easy, I upgraded my cache from sata ssd's to dual 2tb nvme's.

 

I have a few goals

1. I'd like to remove the P2000 I use for transcoding to reduce power usage

2. Use the Intel GPU for transcoding with plex docker

3. Use the Intel GPU for Windows VM, possibly more vms, or an encoder docker if possible.

 

I have tried to get the VM working first, and have enabled SR-IOV in the bios.  If I use the SR-IOV plugin I can now see 2 extra video card devices as [8086:4680] 00:02.1 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c).  When I pass either to the VM, I can install a video driver, but it will only do 640*480.  I have the intel gpu set as the primary gpu, and a monitor plugged into it.

 

Is there any way to make this setup work to do what I want?  When I see posts that some of these plugins, gpu top & intel sr-iov, can't co-exist makes me think it isn't possible yet.

Link to comment
6 hours ago, THEDTM said:

Is there any way to make this setup work to do what I want?  When I see posts that some of these plugins, gpu top & intel sr-iov, can't co-exist makes me think it isn't possible yet.

 

Yes sure, install Parsec or a Virtual Display Driver like https://github.com/roshkins/IddSampleDriver and you are good to go

 

be sure to use only the VF's 00:02.1, 00:02.2, 00:02.3 and so on..., in your VM's NOT the OG IGPU 00:02.0!!!  Do not STUB that either :D

Link to comment
2 hours ago, HDLynx said:

Hi,Can't download i915-sriov module Package for kernel v6.1.49.      Unraid6.12.4   CPU:i7 13700    UHD770       Do plugins need to be equipped with a new kernel?

 

Yes, it needs to be updated for v6.1.49. There's a list of supported kernels here: https://github.com/zhtengw/unraid-i915-sriov/tree/master/packages

I would have built it myself but unfortunately there's no build instructions in the repo.

  • Like 1
Link to comment
On 5/10/2023 at 5:38 PM, Duglim said:

 

  1. Last but not least I also bound the Onboard Soundcard to VFIO and passed to to the VM (again in XML-mode) and finally had sound in Parsec.

Hi @Duglim, I've passed through the sound card, its enabled in Device Manager but I'm seeing "No output devices found".

Any ideas on what to try next?

I thought about installing Intel graphics or audio drivers but their website doesn't present many for downloading. 

 

Link to comment

I am currently running unraid 6.12.3 and have recently started playing around with this plugin. I have been able to passthrough one of the virtual gpu's to windows 11 and successfully install the drivers. However, parsec will not hardware encode the stream no matter what I do. The best I can get is software encoding, which obviously doesn't use the passthrough gpu. I have seen several other post stating they successfully have used parsec. Any help would be  appreciated. 

Link to comment
5 hours ago, domrockt said:

Parsec gives you the option to emulate an Display, you need to use this function.

Thank you for your reply.  I believe I have already done this. I installed the virtual display driver from parsec and then changed the parsec host setting to fallback to the virtual display. None of this worked. Is there anything else besides those two steps? 

Link to comment
4 hours ago, nfinete said:

Thank you for your reply.  I believe I have already done this. I installed the virtual display driver from parsec and then changed the parsec host setting to fallback to the virtual display. None of this worked. Is there anything else besides those two steps? 

 

 

try this, make a connection via Remotedesktop (from Win)(as fallback) when this connection works delete the VNC in the VM and use just the VF, that should do the trick.

Edited by domrockt
Link to comment
4 hours ago, domrockt said:

 

 

try this, make a connection via Remotedesktop (from Win)(as fallback) when this connection works delete the VNC in the VM and use just the VF, that should do the trick.

 

Unfortunately, still no joy.  Here is a screenshot of parsec and my windows device manger. I am stumped. I appreciate you trying to assist. 

 

image.thumb.png.dddcaee7d16cf9e125635bf2a172f0b3.png

Link to comment
On 6/27/2023 at 10:19 PM, zhtengw said:

这是因为系统在加载插件驱动之前先执行了检查vfio绑定的脚本,在设备页面取消绑定就好了

请问“在设备页面取消绑定”是具体操作什么?我也遇到了这样的情况,感谢。

Link to comment

Hi, I'm trying to pass the "UHD Graphics 770" from my "13th Gen Intel(R) Core(TM) i9-13900K" to a Windows 10 VM. At first I tried passing the physical GPU directly to the VM, but I got the Code 43 error.

 

I don't know if it's relevant, but I've been running two gaming VMs with discrete GPUs for a while now. I'm trying to set up a headless VM with the integrated GPU.

 

Then I found this thread, and thought I'd try passing a virtualized iGPU. I've unbound the VFIO from 00:02.0, and installed this plugin. But it looks like the driver says my iGPU is not supported?

 

$  dmesg | grep i915 
[   48.309332] i915 0000:00:02.0: enabling device (0006 -> 0007)
[   48.310076] i915 0000:00:02.0: [drm] VT-d active for gfx access
[   48.310102] i915 0000:00:02.0: [drm] Using Transparent Hugepages
[   48.311491] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_component_ops [i915])
[   48.312329] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/adls_dmc_ver2_01.bin (v2.1)
[   48.978485] i915 0000:00:02.0: [drm] failed to retrieve link info, disabling eDP
[   49.067476] i915 0000:00:02.0: [drm] GuC firmware i915/tgl_guc_70.bin version 70.5.1
[   49.067481] i915 0000:00:02.0: [drm] HuC firmware i915/tgl_huc.bin version 7.9.3
[   49.070461] i915 0000:00:02.0: [drm] HuC authenticated
[   49.070910] i915 0000:00:02.0: [drm] GuC submission enabled
[   49.070911] i915 0000:00:02.0: [drm] GuC SLPC enabled
[   49.071369] i915 0000:00:02.0: [drm] GuC RC: enabled
[   49.071980] mei_pxp 0000:00:16.0-fbf6fcf1-96cf-4e2e-a6a6-1bab8cbe36b1: bound 0000:00:02.0 (ops i915_pxp_tee_component_ops [i915])
[   49.072029] i915 0000:00:02.0: [drm] Protected Xe Path (PXP) protected content support initialized
[   49.073624] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0
[   49.137484] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
[   49.154410] i915 0000:00:02.0: [drm] Unsupported device. GVT-g is disabled

 

Thanks for any help!

Edited by coppit
Added a context paragraph.
Link to comment
7 hours ago, coppit said:

Hi, I'm trying to pass the "UHD Graphics 770" from my "13th Gen Intel(R) Core(TM) i9-13900K" to a Windows 10 VM. At first I tried passing the physical GPU directly to the VM, but I got the Code 43 error.

 

I don't know if it's relevant, but I've been running two gaming VMs with discrete GPUs for a while now. I'm trying to set up a headless VM with the integrated GPU.

 

Then I found this thread, and thought I'd try passing a virtualized iGPU. I've unbound the VFIO from 00:02.0, and installed this plugin. But it looks like the driver says my iGPU is not supported?

 

$  dmesg | grep i915 
[   48.309332] i915 0000:00:02.0: enabling device (0006 -> 0007)
[   48.310076] i915 0000:00:02.0: [drm] VT-d active for gfx access
[   48.310102] i915 0000:00:02.0: [drm] Using Transparent Hugepages
[   48.311491] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_component_ops [i915])
[   48.312329] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/adls_dmc_ver2_01.bin (v2.1)
[   48.978485] i915 0000:00:02.0: [drm] failed to retrieve link info, disabling eDP
[   49.067476] i915 0000:00:02.0: [drm] GuC firmware i915/tgl_guc_70.bin version 70.5.1
[   49.067481] i915 0000:00:02.0: [drm] HuC firmware i915/tgl_huc.bin version 7.9.3
[   49.070461] i915 0000:00:02.0: [drm] HuC authenticated
[   49.070910] i915 0000:00:02.0: [drm] GuC submission enabled
[   49.070911] i915 0000:00:02.0: [drm] GuC SLPC enabled
[   49.071369] i915 0000:00:02.0: [drm] GuC RC: enabled
[   49.071980] mei_pxp 0000:00:16.0-fbf6fcf1-96cf-4e2e-a6a6-1bab8cbe36b1: bound 0000:00:02.0 (ops i915_pxp_tee_component_ops [i915])
[   49.072029] i915 0000:00:02.0: [drm] Protected Xe Path (PXP) protected content support initialized
[   49.073624] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0
[   49.137484] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
[   49.154410] i915 0000:00:02.0: [drm] Unsupported device. GVT-g is disabled

 

Thanks for any help!

don't bind to vfio. it creates the VF's then just add those on your vm template page, read a few posts prior this exact question has been asked. sr-iov is not VFIO.

 

also until this is updated for 6.1.49 it will not create vf's

Link to comment

@zhtengwi'll be sad if this plugin dies. i've seen some forks on github, but not updated. i see its just some scripts, a page for sr-iov, and just updates the module for the kernel (i915.ko)?. i wonder if it would be possible to fork and just update the module, but i'm not familar with plugin creation, or if simply updated the module for 6.1.49 would be the only needed fix.

 

added: it does appear that the i915.ko driver exists already. so would this plugin only need to install the conf file, add the page to emhttp, and patch libvirt.php? it appears the kernel module is the failure point, causing it to remove the conf files, and libvirt edit, but not emhttp edit. but this page is useless as it also removes the i915-sriov folder so the config will not stay. i'm not familar enough with scripting but could i just removed the kernel module part from the plugin script? or does this plugin include a different i915.ko driver? 

 

got this far.... its late an i'm past my knowledge.

 i915 0000:00:02.0: driver does not support SR-IOV configuration via sysfs

Edited by letrain
inquries/testing
Link to comment
On 9/5/2023 at 11:00 PM, nfinete said:

 

Unfortunately, still no joy.  Here is a screenshot of parsec and my windows device manger. I am stumped. I appreciate you trying to assist. 

 

 

ok iam on it, i downgraded to 6.12.3 and give you all i have :D

setting up a new Vm right now.

Edited by domrockt
Link to comment
On 7/15/2023 at 10:55 AM, letrain said:

unraid 6.12.3 was just released. it broke sr-iov. worked fine in 6.12.2. 

6.12.3 - 

"Docker

This release resolves an issue where Docker does not properly stop when the array Stops, which can result in an unclean shutdown.

If Docker containers have issues starting after a while, and you are running Plex, go to your Plex Docker container settings, switch to advanced view, and add this to the Extra Params: --no-healthcheck"

 

I had the this problem with dockers and unclean shutdown, and disks not unmounting so upgraded. after upgrading sr-iov was missing. after trying to reinstall it this is the dialog. it appears in settings again, but as soon as i try to save config, and enable it doesn't work. 

- So according to this, the latest version SR-IOV works with is possibly 6.12.2 BUT might also have a docker issue. 
- 6.11.5 works BUT you still have to modify to a custom kernel apparently, which I would like to avoid.

So my best options are possibly to update to 6.12.0 - 6.12.2; but Unraid doesn't give me the option to pick, only installs the latest OS version (6.12.4 which doesnt currently work with SR-IOV)) through the GUI.

Can someone please:
1) Let me know which version or route might be the best.
2) Link me to how to upgrade to a specific OS version please.
I see the Manual Installation Method with the download versions link, but it doesn't explain how to do this on an existing Unraid server.

Link to comment
Guest
This topic is now closed to further replies.
×
×
  • Create New...