Hello unRAID community,
First of all, thanks everyone for such a great forum. I have managed to find all answers I was looking for, except one :-)
I hope you will be able to provide me with some more information about VM passthrough. I read lots of threads in the forum but there seems to be deprecated methods (go script, etc.), besides none worked anyway.
As both the TVHeadend plugin and docker caused troubles with "continuity counter" error messages, I'm trying to achieve an alternate method using a VM (and different drivers/tvheadend version).
I'm not wanting to go into details here about this specific tvheadend issue (cards are working fine in another computer) as this thread is about VM and passthrough.
Here is what I'm trying to achieve :
- motherboard : SuperMicro X8SIA-F
- PCI-e to PCI bridge in a PCI-e 1x slot
- Technotrend 1501 DVB-C PCI card into this PCI-e -> PCI adapter
The goal is to be able to use this DVB card (passthrough) to an unraid 6.1.3 VM.
Here are the two lines from lspci that seem to match the bridge + DVB card :
09:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 04)
0a:00.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)
then lspci -n :
09:00.0 0604: 1b21:1080 (rev 04)
0a:00.0 0480: 1131:7146 (rev 01)
The two devices seem to be within the same IOMMU group :
/sys/kernel/iommu_groups/19/devices/0000:08:00.0
/sys/kernel/iommu_groups/20/devices/0000:09:00.0
/sys/kernel/iommu_groups/20/devices/0000:0a:00.0
/sys/kernel/iommu_groups/21/devices/0000:ff:00.0
- I tried with both PCIe ACS Override on or off with no luck
- I tried "pci-stub.ids=1131:7146,1b21:1080" in syslinux.cfg with no luck
- I tried adding "intel_iommu=on vfio_iommu_type1.allow_unsafe_interrupts=1 pcie_acs_override=downstream" in syslinux.cfg with no luck
- I tried i440fx and Q35 vm type with no luck
... and experienced different error messages (Failed to setup INTx fd: Device or resource busy, ...) but the current situation is as follow:
I'm using the following in the VM config :
<hostdev mode='subsystem' type='pci' managed='no'>
<source>
<address domain='0x0000' bus='0x0a' slot='0x00' function='0x0'/>
</source>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</hostdev>
Error message when starting VM : Path '/dev/vfio/20' is not accessible: No such file or directory
When looking in the unraid /dev/vfio directory :
/dev/vfio# ls -la
drwxr-xr-x 2 root root 60 Dec 1 18:04 ./
drwxr-xr-x 15 root root 4520 Dec 1 18:05 ../
crw-rw-rw- 1 root root 10, 196 Dec 1 18:04 vfio
Any idea or hint that could help me in my passthrough quest ?
(Dockers are very easy to use, but VM documentation is lacking some clear guidance IMHO.)
Thanks a lot for your help !
Jim