I got an older TV card, an Hauppauge WinTV HVR-5500, which I’d like to use as nice addition to my Kodi (expecting it can still receive DVB-C). Since there are no native driver I want to pass it through to a Win7 VM (which of course doesn’t get a internet connection for safety reasons).
I’m on Arch Linux with ACS Patch since my Gigabyte B450M S2H isn’t nicely grouped.
IOMMU Group 19:
08:00.0 Multimedia video controller [0400]: Conexant Systems, Inc. CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb [14f1:8880] (rev ff)
Adding it to vfio-pci via bootloader worked fine.
[sereiya@Ikarus ~]$ lspci -nnk -d 14f1:8880
08:00.0 Multimedia video controller [0400]: Conexant Systems, Inc. CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb [14f1:8880] (rev ff)
Kernel driver in use: vfio-pci
Kernel modules: cx23885
Then I ran into the problem of the device not showing up in virt-manager. Digging into the problem, I encountered this.
[sereiya@Ikarus ~]$ sudo lshw -businfo
Bus info Device Class Description
=================================================
[...]
pci@0000:08:00.0 generic Illegal Vendor ID
Of course I tried to manually edit the .xml, but ran into an old friend which I know from my other system:
Fehler beim Starten der Domain: Interner Fehler: Unknown PCI header type '127' for device '0000:08:00.0'
Can’t exactly tell anything weird in journalctl looking for it.
[root@Ikarus sereiya]# journalctl -b | grep 08:00.
Apr 07 19:37:43 Ikarus kernel: acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI HPX-Type3]
Apr 07 19:37:43 Ikarus kernel: acpi PNP0A08:00: _OSC: platform does not support [SHPCHotplug LTR]
Apr 07 19:37:43 Ikarus kernel: acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug PME AER PCIeCapability]
Apr 07 19:37:43 Ikarus kernel: acpi PNP0A08:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-3f] only partially covers this bridge
Apr 07 19:37:43 Ikarus kernel: pci 0000:08:00.0: [14f1:8880] type 00 class 0x040000
Apr 07 19:37:43 Ikarus kernel: pci 0000:08:00.0: reg 0x10: [mem 0xfc600000-0xfc7fffff 64bit]
Apr 07 19:37:43 Ikarus kernel: pci 0000:08:00.0: supports D1 D2
Apr 07 19:37:43 Ikarus kernel: pci 0000:08:00.0: PME# supported from D0 D1 D2 D3hot D3cold
Apr 07 19:37:43 Ikarus kernel: pci 0000:08:00.0: Adding to iommu group 19
Apr 07 19:37:43 Ikarus kernel: input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:01/LNXVIDEO:00/input/input2
Apr 07 19:37:43 Ikarus kernel: input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:0f/LNXVIDEO:01/input/input3
Apr 07 19:37:44 Ikarus dhcpcd[452]: DUID 00:04:03:2e:02:b4:04:99:05:c3:f5:06:d2:07:00:08:00:09
Apr 07 19:37:45 Ikarus libvirtd[497]: Interner Fehler: Unknown PCI header type '127' for device '0000:08:00.0'
Apr 07 19:47:18 Ikarus libvirtd[497]: Interner Fehler: Unknown PCI header type '127' for device '0000:08:00.0'
There’s another device that got an “Illegal Vendor ID” in lshw, which also doesn’t show up in virt-manager, but I didn’t really find anything about these kind of errors or what’s causing it. I assume it isn’t a missing EFI compliant bios on the device since a GF 6800 GT I tinkered around a while ago still showed up, but actually I have no clue. I don’t know how to proceed further, someone of you got an idea?
Edit:
Forgot to add the obvious.
[root@Ikarus sereiya]# dmesg | grep vfio
[ 0.000000] Linux version 5.5.8-arch1-1-vfio (linux-vfio@archlinux) (gcc version 9.2.1 20200130 (Arch Linux 9.2.1+20200130-2)) #1 SMP PREEMPT Fri, 13 Mar 2020 23:46:33 +0000
[ 0.000000] Command line: initrd=\amd-ucode.img initrd=\initramfs-linux-vfio.img root=UUID="932844c2-96b5-458f-a128-ed114975327c" TYPE="ext4" rw pcie_acs_override=downstream,multifunction amd_iommu=on amdgpu.dc=1 vfio_pc vfio vfio_iommu_type1 vfio_virqfd iommu=pt vfio-pci.ids=14f1:8880,1002:68f9,1002:aa68
[ 0.000000] Kernel command line: initrd=\amd-ucode.img initrd=\initramfs-linux-vfio.img root=UUID="932844c2-96b5-458f-a128-ed114975327c" TYPE="ext4" rw pcie_acs_override=downstream,multifunction amd_iommu=on amdgpu.dc=1 vfio_pc vfio vfio_iommu_type1 vfio_virqfd iommu=pt vfio-pci.ids=14f1:8880,1002:68f9,1002:aa68
[ 2.925087] vfio_pci: add [14f1:8880[ffffffff:ffffffff]] class 0x000000/00000000
[ 2.925121] vfio-pci 0000:01:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=none
[ 2.940031] vfio_pci: add [1002:68f9[ffffffff:ffffffff]] class 0x000000/00000000
[ 2.956807] vfio_pci: add [1002:aa68[ffffffff:ffffffff]] class 0x000000/00000000
[ 4.684563] usb usb1: Manufacturer: Linux 5.5.8-arch1-1-vfio xhci-hcd
[ 4.685073] usb usb2: Manufacturer: Linux 5.5.8-arch1-1-vfio xhci-hcd
[ 4.685806] usb usb3: Manufacturer: Linux 5.5.8-arch1-1-vfio xhci-hcd
[ 4.686377] usb usb4: Manufacturer: Linux 5.5.8-arch1-1-vfio xhci-hcd
[ 4.687284] usb usb5: Manufacturer: Linux 5.5.8-arch1-1-vfio xhci-hcd
[ 4.687511] usb usb6: Manufacturer: Linux 5.5.8-arch1-1-vfio xhci-hcd
[ 110.203433] vfio-pci 0000:01:00.0: enabling device (0000 -> 0003)