Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Pcie InfiniTV 4 TV Tuner card passthrough in win 8.1

Featured Replies

Hi - I am trying to pass through a pcie x1 Ceton infinitv 4 TV tuner card. I think I am having trouble defining the correct bus and slot for this, can someone please help?

 

Relevant output from lspci -knn

09:00.0 PCI bridge [0604]: Tundra Semiconductor Corp. Device [10e3:8111] (rev 02)
        Kernel driver in use: vfio-pci
0a:08.0 Non-VGA unclassified device [0000]: Device [1b7c:0004] (rev 01)
        Subsystem: Device [1b7c:0004]
        Kernel driver in use: vfio-pci

 

The above two devices show up when I add this tuner card. To check I added vfio-bind of both  0000:09:00.0 and  0000:0a:08.0 and tried adding each one independently in my xml.

 

For the 09:00.0 address, the relevant xml part is:

    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=09:00.0,bus=root.1,addr=00.1'/>

 

The output on command line:

root@Tower:/mnt/disk/SSD1/vm/image# virsh start win81x64cetonpci
error: Failed to start domain win81x64cetonpci
error: internal error: early end of file from monitor: possible problem:
2015-01-08T02:09:09.800674Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,bus=pcie.0: vfio: Assignment of PCIe type 0x7 devices is not currently supported
2015-01-08T02:09:09.800696Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,bus=pcie.0: vfio: 0000:09:00.0 Error adding PCI capability 0x10[0x3f]@0xc0: -22
2015-01-08T02:09:10.826825Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,bus=pcie.0: Device initialization failed.
2015-01-08T02:09:10.826843Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,bus=pcie.0: Device 'vfio-pci' could not be initialized

 

When I add 0a:08.0 to my xml using:

    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=0a:08.0,bus=root.1,addr=00.1'/>

 

and start my domain:

root@Tower:/mnt/disk/SSD1/vm/image# virsh start win81x64cetonpci
error: Failed to start domain win81x64cetonpci
error: internal error: early end of file from monitor: possible problem:
2015-01-08T02:21:37.387610Z qemu-system-x86_64: -device vfio-pci,host=0a:08.0,bus=root.1,addr=00.1: PCI: slot 0 function 1 not available for vfio-pci, in use by vfio-pci
2015-01-08T02:21:37.387633Z qemu-system-x86_64: -device vfio-pci,host=0a:08.0,bus=root.1,addr=00.1: Device initialization failed.
2015-01-08T02:21:37.387640Z qemu-system-x86_64: -device vfio-pci,host=0a:08.0,bus=root.1,addr=00.1: Device 'vfio-pci' could not be initialized

 

It appears the second one with address 0a:08.0 may be right one but the definition is incorrect.

 

 

Hi - I am trying to pass through a pcie x1 Ceton infinitv 4 TV tuner card. I think I am having trouble defining the correct bus and slot for this, can someone please help?

 

Relevant output from lspci -knn

09:00.0 PCI bridge [0604]: Tundra Semiconductor Corp. Device [10e3:8111] (rev 02)
        Kernel driver in use: vfio-pci
0a:08.0 Non-VGA unclassified device [0000]: Device [1b7c:0004] (rev 01)
        Subsystem: Device [1b7c:0004]
        Kernel driver in use: vfio-pci

 

The above two devices show up when I add this tuner card. To check I added vfio-bind of both  0000:09:00.0 and  0000:0a:08.0 and tried adding each one independently in my xml.

 

For the 09:00.0 address, the relevant xml part is:

    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=09:00.0,bus=root.1,addr=00.1'/>

 

The output on command line:

root@Tower:/mnt/disk/SSD1/vm/image# virsh start win81x64cetonpci
error: Failed to start domain win81x64cetonpci
error: internal error: early end of file from monitor: possible problem:
2015-01-08T02:09:09.800674Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,bus=pcie.0: vfio: Assignment of PCIe type 0x7 devices is not currently supported
2015-01-08T02:09:09.800696Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,bus=pcie.0: vfio: 0000:09:00.0 Error adding PCI capability 0x10[0x3f]@0xc0: -22
2015-01-08T02:09:10.826825Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,bus=pcie.0: Device initialization failed.
2015-01-08T02:09:10.826843Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,bus=pcie.0: Device 'vfio-pci' could not be initialized

 

When I add 0a:08.0 to my xml using:

    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=0a:08.0,bus=root.1,addr=00.1'/>

 

and start my domain:

root@Tower:/mnt/disk/SSD1/vm/image# virsh start win81x64cetonpci
error: Failed to start domain win81x64cetonpci
error: internal error: early end of file from monitor: possible problem:
2015-01-08T02:21:37.387610Z qemu-system-x86_64: -device vfio-pci,host=0a:08.0,bus=root.1,addr=00.1: PCI: slot 0 function 1 not available for vfio-pci, in use by vfio-pci
2015-01-08T02:21:37.387633Z qemu-system-x86_64: -device vfio-pci,host=0a:08.0,bus=root.1,addr=00.1: Device initialization failed.
2015-01-08T02:21:37.387640Z qemu-system-x86_64: -device vfio-pci,host=0a:08.0,bus=root.1,addr=00.1: Device 'vfio-pci' could not be initialized

 

It appears the second one with address 0a:08.0 may be right one but the definition is incorrect.

 

Change the XML for the second device to this:

 

<qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=0a:08.0,bus=root.1,addr=00.2'/>

  • Author

Jon - I think that worked, I was able to see the device in Win 8.1. Installed the drivers but the system became very unstable, keeps crashing often. For now I am going to disable this. I am curious about how you determined the address as addr=00.2?

 

 

 

Hi - I am trying to pass through a pcie x1 Ceton infinitv 4 TV tuner card. I think I am having trouble defining the correct bus and slot for this, can someone please help?

 

Relevant output from lspci -knn

09:00.0 PCI bridge [0604]: Tundra Semiconductor Corp. Device [10e3:8111] (rev 02)
        Kernel driver in use: vfio-pci
0a:08.0 Non-VGA unclassified device [0000]: Device [1b7c:0004] (rev 01)
        Subsystem: Device [1b7c:0004]
        Kernel driver in use: vfio-pci

 

The above two devices show up when I add this tuner card. To check I added vfio-bind of both  0000:09:00.0 and  0000:0a:08.0 and tried adding each one independently in my xml.

 

For the 09:00.0 address, the relevant xml part is:

    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=09:00.0,bus=root.1,addr=00.1'/>

 

The output on command line:

root@Tower:/mnt/disk/SSD1/vm/image# virsh start win81x64cetonpci
error: Failed to start domain win81x64cetonpci
error: internal error: early end of file from monitor: possible problem:
2015-01-08T02:09:09.800674Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,bus=pcie.0: vfio: Assignment of PCIe type 0x7 devices is not currently supported
2015-01-08T02:09:09.800696Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,bus=pcie.0: vfio: 0000:09:00.0 Error adding PCI capability 0x10[0x3f]@0xc0: -22
2015-01-08T02:09:10.826825Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,bus=pcie.0: Device initialization failed.
2015-01-08T02:09:10.826843Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,bus=pcie.0: Device 'vfio-pci' could not be initialized

 

When I add 0a:08.0 to my xml using:

    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=0a:08.0,bus=root.1,addr=00.1'/>

 

and start my domain:

root@Tower:/mnt/disk/SSD1/vm/image# virsh start win81x64cetonpci
error: Failed to start domain win81x64cetonpci
error: internal error: early end of file from monitor: possible problem:
2015-01-08T02:21:37.387610Z qemu-system-x86_64: -device vfio-pci,host=0a:08.0,bus=root.1,addr=00.1: PCI: slot 0 function 1 not available for vfio-pci, in use by vfio-pci
2015-01-08T02:21:37.387633Z qemu-system-x86_64: -device vfio-pci,host=0a:08.0,bus=root.1,addr=00.1: Device initialization failed.
2015-01-08T02:21:37.387640Z qemu-system-x86_64: -device vfio-pci,host=0a:08.0,bus=root.1,addr=00.1: Device 'vfio-pci' could not be initialized

 

It appears the second one with address 0a:08.0 may be right one but the definition is incorrect.

 

Change the XML for the second device to this:

 

<qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=0a:08.0,bus=root.1,addr=00.2'/>

Jon - I think that worked, I was able to see the device in Win 8.1. Installed the drivers but the system became very unstable, keeps crashing often. For now I am going to disable this. I am curious about how you determined the address as addr=00.2?

 

 

 

Hi - I am trying to pass through a pcie x1 Ceton infinitv 4 TV tuner card. I think I am having trouble defining the correct bus and slot for this, can someone please help?

 

Relevant output from lspci -knn

09:00.0 PCI bridge [0604]: Tundra Semiconductor Corp. Device [10e3:8111] (rev 02)
        Kernel driver in use: vfio-pci
0a:08.0 Non-VGA unclassified device [0000]: Device [1b7c:0004] (rev 01)
        Subsystem: Device [1b7c:0004]
        Kernel driver in use: vfio-pci

 

The above two devices show up when I add this tuner card. To check I added vfio-bind of both  0000:09:00.0 and  0000:0a:08.0 and tried adding each one independently in my xml.

 

For the 09:00.0 address, the relevant xml part is:

    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=09:00.0,bus=root.1,addr=00.1'/>

 

The output on command line:

root@Tower:/mnt/disk/SSD1/vm/image# virsh start win81x64cetonpci
error: Failed to start domain win81x64cetonpci
error: internal error: early end of file from monitor: possible problem:
2015-01-08T02:09:09.800674Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,bus=pcie.0: vfio: Assignment of PCIe type 0x7 devices is not currently supported
2015-01-08T02:09:09.800696Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,bus=pcie.0: vfio: 0000:09:00.0 Error adding PCI capability 0x10[0x3f]@0xc0: -22
2015-01-08T02:09:10.826825Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,bus=pcie.0: Device initialization failed.
2015-01-08T02:09:10.826843Z qemu-system-x86_64: -device vfio-pci,host=09:00.0,bus=pcie.0: Device 'vfio-pci' could not be initialized

 

When I add 0a:08.0 to my xml using:

    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=0a:08.0,bus=root.1,addr=00.1'/>

 

and start my domain:

root@Tower:/mnt/disk/SSD1/vm/image# virsh start win81x64cetonpci
error: Failed to start domain win81x64cetonpci
error: internal error: early end of file from monitor: possible problem:
2015-01-08T02:21:37.387610Z qemu-system-x86_64: -device vfio-pci,host=0a:08.0,bus=root.1,addr=00.1: PCI: slot 0 function 1 not available for vfio-pci, in use by vfio-pci
2015-01-08T02:21:37.387633Z qemu-system-x86_64: -device vfio-pci,host=0a:08.0,bus=root.1,addr=00.1: Device initialization failed.
2015-01-08T02:21:37.387640Z qemu-system-x86_64: -device vfio-pci,host=0a:08.0,bus=root.1,addr=00.1: Device 'vfio-pci' could not be initialized

 

It appears the second one with address 0a:08.0 may be right one but the definition is incorrect.

 

Change the XML for the second device to this:

 

<qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=0a:08.0,bus=root.1,addr=00.2'/>

That setting applies to the virtual hardware assignment. So you are assigning a physical device to a virtually created PCI slot (created by QEMU).  On a real bus, having both of these as .1 would be like trying to install two physical cards into the same slot.

 

Can you elaborate on the instability to which you are referring?  Was this crashing the host or just the guest VM?  Very interested to see someone with a Ceton card get it working.  There is another VM I'd like to have you try once we finish figuring out your windows issues.

Can I get a little help on a similar issue please?

 

I have XBMCbuntu installed and I've added TVheadend as a TV back end (I really wanted to use OPENELEC but I can't get it installed because of the HDD driver issue, hopefully UnVM's will help with that) I've added a dual Sat tuner card to my VM and edited my XML like below including all relevant additions to go script's etc.

 

  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=root.1,addr=00.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=00:1a.0,bus=pcie.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=07:00.0,bus=pcie.0'/>
  </qemu:commandline>

 

device 01:00.0 and 01:00.1 is my AMD 6450 graphics card and sound card. 00:1a.0 is my USB controller I've had these passed through for a while and they all work great. device 07:00.0 is the new dual sat tuner card I've added. I passed it through last night and the machine has booted fine but I haven't had chance to set the card up yet. TV headend does recognise it but before i try and configure it do i need to tweak my xml at all or does it look right as i have both the USB controller and the sat card on pcie.0?

 

  • Author

That explains, thanks Jon. When I changed the slot, the device showed up unknown ethernet controller in Win 8.1 device manager. Installed the drivers and the installation was smooth. However, when I checked with Ceton diagnostics, it said the device wasn't found. I use J River Media Center 20 for my HTPC and that program started being unresponsive. Even after I shut down the program, other programs showed unresponsive behavior. Forced shutdown from task manager did not work and even after destroy/start the VM the trend continued.

 

I finally deleted this VM image and fired up a backup VM image (did not want to deal with uninstalling the Ceton drivers). The part I love about the KVM is I deal with the entire HTPC OS as a file, take backups of images and replace them when needed, awesome!

 

You mentioned about another VM to try, upcoming beta release?

 

That setting applies to the virtual hardware assignment. So you are assigning a physical device to a virtually created PCI slot (created by QEMU).  On a real bus, having both of these as .1 would be like trying to install two physical cards into the same slot.

 

Can you elaborate on the instability to which you are referring?  Was this crashing the host or just the guest VM?  Very interested to see someone with a Ceton card get it working.  There is another VM I'd like to have you try once we finish figuring out your windows issues.

  • Author

Monkeystar - Following Jon's previous post, I would try passing the sat tuner with

 

<qemu:arg value='vfio-pci,host=07:00.0,bus=root.1,addr=00.2'/>

 

Can I get a little help on a similar issue please?

 

I have XBMCbuntu installed and I've added TVheadend as a TV back end (I really wanted to use OPENELEC but I can't get it installed because of the HDD driver issue, hopefully UnVM's will help with that) I've added a dual Sat tuner card to my VM and edited my XML like below including all relevant additions to go script's etc.

 

  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=root.1,addr=00.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=00:1a.0,bus=pcie.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=07:00.0,bus=pcie.0'/>
  </qemu:commandline>

 

device 01:00.0 and 01:00.1 is my AMD 6450 graphics card and sound card. 00:1a.0 is my USB controller I've had these passed through for a while and they all work great. device 07:00.0 is the new dual sat tuner card I've added. I passed it through last night and the machine has booted fine but I haven't had chance to set the card up yet. TV headend does recognise it but before i try and configure it do i need to tweak my xml at all or does it look right as i have both the USB controller and the sat card on pcie.0?

Can I get a little help on a similar issue please?

 

I have XBMCbuntu installed and I've added TVheadend as a TV back end (I really wanted to use OPENELEC but I can't get it installed because of the HDD driver issue, hopefully UnVM's will help with that) I've added a dual Sat tuner card to my VM and edited my XML like below including all relevant additions to go script's etc.

 

  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=root.1,addr=00.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=00:1a.0,bus=pcie.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=07:00.0,bus=pcie.0'/>
  </qemu:commandline>

 

device 01:00.0 and 01:00.1 is my AMD 6450 graphics card and sound card. 00:1a.0 is my USB controller I've had these passed through for a while and they all work great. device 07:00.0 is the new dual sat tuner card I've added. I passed it through last night and the machine has booted fine but I haven't had chance to set the card up yet. TV headend does recognise it but before i try and configure it do i need to tweak my xml at all or does it look right as i have both the USB controller and the sat card on pcie.0?

 

So there are two ways to write the qemu:arg statements based on whether your machine type is set to "pc" or "q35".  "pc" uses the i440fx chipset, which does not have a virtual pcie interface, only standard PCI (WHICH DOES NOT MATTER EVEN IF YOU HAVE A PCIE BASED DEVICE).  The difference between these two in the LATEST build of unRAID is negligible.  I would wager many folks will do fine now using just the i440fx over q35, but if you already have a installed Windows VM that has been activated, changing this now will prompt windows to reactivate the license.

 

So if you're using the machine type of "pc", all of your qemu:arg statements should be like this:

 

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=##:##.#,bus=root.1,addr=00.1'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=##:##.#,bus=root.1,addr=00.2'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=##:##.#,bus=root.1,addr=00.3'/>

 

You cannot use "bus=pcie.0" when using the machine type of PC.

 

When using Q35, you can use EITHER method and if you have issues such as htpcnewbie, you should try changing the method for the device having problems to see if that resolves the issue.

 

Generally speaking, Alex Williamson from Red Hat feels that using Q35 isn't necessary and may actually cause some weird issues when used in combination with VFIO right now.  I personally haven't seen that yet, but Alex is THE MAN when it comes to vfio (as in her maintains it) and so I take his opinion very seriously.

Can I get a little help on a similar issue please?

 

I have XBMCbuntu installed and I've added TVheadend as a TV back end (I really wanted to use OPENELEC but I can't get it installed because of the HDD driver issue, hopefully UnVM's will help with that) I've added a dual Sat tuner card to my VM and edited my XML like below including all relevant additions to go script's etc.

 

  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=root.1,addr=00.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=00:1a.0,bus=pcie.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=07:00.0,bus=pcie.0'/>
  </qemu:commandline>

 

device 01:00.0 and 01:00.1 is my AMD 6450 graphics card and sound card. 00:1a.0 is my USB controller I've had these passed through for a while and they all work great. device 07:00.0 is the new dual sat tuner card I've added. I passed it through last night and the machine has booted fine but I haven't had chance to set the card up yet. TV headend does recognise it but before i try and configure it do i need to tweak my xml at all or does it look right as i have both the USB controller and the sat card on pcie.0?

 

So there are two ways to write the qemu:arg statements based on whether your machine type is set to "pc" or "q35".  "pc" uses the i440fx chipset, which does not have a virtual pcie interface, only standard PCI (WHICH DOES NOT MATTER EVEN IF YOU HAVE A PCIE BASED DEVICE).  The difference between these two in the LATEST build of unRAID is negligible.  I would wager many folks will do fine now using just the i440fx over q35, but if you already have a installed Windows VM that has been activated, changing this now will prompt windows to reactivate the license.

 

So if you're using the machine type of "pc", all of your qemu:arg statements should be like this:

 

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=##:##.#,bus=root.1,addr=00.1'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=##:##.#,bus=root.1,addr=00.2'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=##:##.#,bus=root.1,addr=00.3'/>

 

You cannot use "bus=pcie.0" when using the machine type of PC.

 

When using Q35, you can use EITHER method and if you have issues such as htpcnewbie, you should try changing the method for the device having problems to see if that resolves the issue.

 

Generally speaking, Alex Williamson from Red Hat feels that using Q35 isn't necessary and may actually cause some weird issues when used in combination with VFIO right now.  I personally haven't seen that yet, but Alex is THE MAN when it comes to vfio (as in her maintains it) and so I take his opinion very seriously.

 

 

My machine type is currently set to.

 

<type arch='x86_64' machine='pc-q35-2.1'>hvm</type>

 

I haven't seen any issue so far, I've made a few different VM's during the different Beta stages starting with XEN and i'd say this one is the most stable by far. Prior to adding the sat tuner it was up for 6+ weeks without any problems at all.

 

The fact that I'm using Q35 does that mean i should edit my config like this.

 

<qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=pcie.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=pcie.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=00:1a.0,bus=pcie.2'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=07:00.0,bus=pcie.3'/>
  </qemu:commandline>

 

Assuming I increment the bus=pcie.x?

Can I get a little help on a similar issue please?

 

I have XBMCbuntu installed and I've added TVheadend as a TV back end (I really wanted to use OPENELEC but I can't get it installed because of the HDD driver issue, hopefully UnVM's will help with that) I've added a dual Sat tuner card to my VM and edited my XML like below including all relevant additions to go script's etc.

 

  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=root.1,addr=00.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=00:1a.0,bus=pcie.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=07:00.0,bus=pcie.0'/>
  </qemu:commandline>

 

device 01:00.0 and 01:00.1 is my AMD 6450 graphics card and sound card. 00:1a.0 is my USB controller I've had these passed through for a while and they all work great. device 07:00.0 is the new dual sat tuner card I've added. I passed it through last night and the machine has booted fine but I haven't had chance to set the card up yet. TV headend does recognise it but before i try and configure it do i need to tweak my xml at all or does it look right as i have both the USB controller and the sat card on pcie.0?

 

So there are two ways to write the qemu:arg statements based on whether your machine type is set to "pc" or "q35".  "pc" uses the i440fx chipset, which does not have a virtual pcie interface, only standard PCI (WHICH DOES NOT MATTER EVEN IF YOU HAVE A PCIE BASED DEVICE).  The difference between these two in the LATEST build of unRAID is negligible.  I would wager many folks will do fine now using just the i440fx over q35, but if you already have a installed Windows VM that has been activated, changing this now will prompt windows to reactivate the license.

 

So if you're using the machine type of "pc", all of your qemu:arg statements should be like this:

 

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=##:##.#,bus=root.1,addr=00.1'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=##:##.#,bus=root.1,addr=00.2'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=##:##.#,bus=root.1,addr=00.3'/>

 

You cannot use "bus=pcie.0" when using the machine type of PC.

 

When using Q35, you can use EITHER method and if you have issues such as htpcnewbie, you should try changing the method for the device having problems to see if that resolves the issue.

 

Generally speaking, Alex Williamson from Red Hat feels that using Q35 isn't necessary and may actually cause some weird issues when used in combination with VFIO right now.  I personally haven't seen that yet, but Alex is THE MAN when it comes to vfio (as in her maintains it) and so I take his opinion very seriously.

 

 

My machine type is currently set to.

 

<type arch='x86_64' machine='pc-q35-2.1'>hvm</type>

 

I haven't seen any issue so far, I've made a few different VM's during the different Beta stages starting with XEN and i'd say this one is the most stable by far. Prior to adding the sat tuner it was up for 6+ weeks without any problems at all.

 

The fact that I'm using Q35 does that mean i should edit my config like this.

 

<qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=pcie.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=pcie.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=00:1a.0,bus=pcie.2'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=07:00.0,bus=pcie.3'/>
  </qemu:commandline>

 

Assuming I increment the bus=pcie.x?

You don't increment with pcie.

i have bad expirence with passthrough dvb tuners, i get some signal issue, power issue etc.

sometime just after few hour stop responding and i was tested maybe 10 difrent PCIE tuners on Xen and vmware.

an many systems, windows, few linux (ubuntu, openelec, mint)

most problem is with MSI/MSI-X  Interrupts becuase PCIE bridges on PCIE DVB tuners have very poor support most dont support MSI.

when i force disable MSI and finly i saw tuners in virtuals install etc. i get signal issue etc.

 

maybe on KVM will better (but i just use in unraid DVB tuners i recompile kernel and add drivers and works from 2 years

without problems)

 

and latest Tvheadend version suppport HDHR tuners without driver in system (native)

 

 

 

 

i have bad expirence with passthrough dvb tuners, i get some signal issue, power issue etc.

sometime just after few hour stop responding and i was tested maybe 10 difrent PCIE tuners on Xen and vmware.

an many systems, windows, few linux (ubuntu, openelec, mint)

most problem is with MSI/MSI-X  Interrupts becuase PCIE bridges on PCIE DVB tuners have very poor support most dont support MSI.

when i force disable MSI and finly i saw tuners in virtuals install etc. i get signal issue etc.

 

maybe on KVM will better (but i just use in unraid DVB tuners i recompile kernel and add drivers and works from 2 years

without problems)

 

and latest Tvheadend version suppport HDHR tuners without driver in system (native)

 

So there is an interesting guide for Windows and forcing MSI support on PCIe devices posted here:

 

http://vfio.blogspot.com/2014/09/vfio-interrupts-and-how-to-coax-windows.html

 

I have tested this and used it on my GPU for pass through without issue, but would be interested to see if that works with your tuner card.

  • 3 weeks later...

I have the ceton infinitv as well, and am interested in seeing if it works in a KVM virtual windows box.

 

I currently have it in a "bare-metal" windows box, where it is not using MSI.  I tried to enable MSI, following the linked pages' advice.  I was able to set several other PCI devices to MSI, but for the ceton it didn't take for some reason.  The device still works, but device manager lists the IRQ as a positive #, rather than negative.

 

Is it possible I will have different results (on different hardware) with KVM?  Should I even bother if MSI isn't supported?

 

Appreciate any advice suggestions.

\o/

 

Well, it isn't using MSI, but it is working in the VM!

\o/

 

Well, it isn't using MSI, but it is working in the VM!

Not to get in a debate about the ceton but have you looked at the hdhr prime.  I sold my ceton a while ago and now have 2 hdhr-cc.

  • 2 years later...

I've tried several cards passed through to a Windows vm and they're basically unusable. The cards pass through fine and drivers install successfully but have similar experience to piotras. I can scan channels etc. but actually tuning always has issues with signal and dropped packets.

 

I suspect teh issue is with MSI as mentioned above but they're always listed under lspci as "MSI: Enable- Count=1/1 Maskable- 64bit+" . I've tried forcing it on but it just results in Windows bluescreening on boot. I would REALLY love to figure out how to make them work properly.

  • 8 months later...

Sorry to resurrect this post, but this is the first forum is the first result to almost every search on the topic.  So, I registered an account to convey the information to whomever may be looking for it in the future.  NOTE: None of this is unraid specific and I have no experience with the distribution at all, so someone will probably need to adapt this for your specific situation.

 

This is not related to MSI, it is a PCI quirk with Ceton InfiniTV cards.  The quirk has been submitted to be part of kernel 4.16, as of today.  If you would like to backport or compile a custom kernel, you can see the patch here: http://www.spinics.net/lists/linux-pci/msg67431.html

 

It can be worked around in the meantime by passing the "nointxmask=1" parameter for the vfio-pci driver.  Probably simplest by appending the parameter to modprobe.d, where ever that is for your particular distribution, for example:

$ cat /etc/modprobe.d/qemu-system-x86.conf 
options kvm_intel nested=1
options vfio_pci nointxmask=1

WARNING: Keep in mind that passing this parameter this is like using a clever where you need a scalpel, so if you're passing through multiple devices with VFIO, consider compiling a kernel with the patch linked above.

 

To definitively answer the other discussion in this thread, you need to pass through the PCI device behind the bridge and not the bridge itself.  I have had this working both under Windows  7 VMs (WMC) and Linux VMs (MythTV) at various times.

 

A side-note: WMC extenders connecting to VMs can have issues with live TV streaming, due to network saturation causing the processor to stick at 100% in Windows.  This can be mitigated by emulating an e1000 network device, but may or may not solve the issue.  So, if extenders are your end game, best of luck.

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.