PCI passthrough for TV card

superflip

New Member
Nov 4, 2011
3
0
1
Hi all,

this is my first post in this forum and I'm a beginner in installing VMs with Proxmox.
My first VM should be my TV Server with multiple TV cards (at the moment only 1 PCI card is installed, because the other one is installed on current stand-alone TV-server)

My problem that proxmox can't even start the VM when I configured the passthrough.
It did following steps:
- turned on VT-d on motherboard
- included intel_iommu=on in grub bootloader
- checked Intel-IOMMU: enabled with dmesg
- checked TV card parameters with "lspci -vv"
Code:
04:01.0 Network controller: Techsan Electronics Co Ltd B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card (rev 02)
        Subsystem: Techsan Electronics Co Ltd B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 32
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at fe400000 (32-bit, non-prefetchable) [size=64K]
        Region 1: I/O ports at d000 [size=32]
        Kernel driver in use: b2c2_flexcop_pci
        Kernel modules: b2c2-flexcop-pci
-lspci -n (last entry is relevant)
Code:
proxmox:~# lspci -n
00:00.0 0600: 8086:0100 (rev 09)
00:01.0 0604: 8086:0101 (rev 09)
00:02.0 0300: 8086:0102 (rev 09)
00:16.0 0780: 8086:1c3a (rev 04)
00:16.2 0101: 8086:1c3c (rev 04)
00:16.3 0700: 8086:1c3d (rev 04)
00:19.0 0200: 8086:1502 (rev 05)
00:1a.0 0c03: 8086:1c2d (rev 05)
00:1b.0 0403: 8086:1c20 (rev 05)
00:1c.0 0604: 8086:1c10 (rev b5)
00:1c.7 0604: 8086:1c1e (rev b5)
00:1d.0 0c03: 8086:1c26 (rev 05)
00:1e.0 0604: 8086:244e (rev a5)
00:1f.0 0601: 8086:1c4e (rev 05)
00:1f.2 0106: 8086:1c02 (rev 05)
00:1f.3 0c05: 8086:1c22 (rev 05)
02:00.0 0200: 10ec:8168 (rev 01)
04:01.0 0280: 13d0:2103 (rev 02)

- blacklisted kernel driver in /etc/modprobe.d/blacklist
Code:
blacklist b2c2_flexcop_pci

- rebooted system
- with lsmod no kernel module "b2c2_flexcop_pci" is found

Code:
modprobe -r kvm-intel
modprobe -r kvm
echo "13d0 2103" > /sys/bus/pci/drivers/pci-stub/new_id
echo 0000:04:01.0 > /sys/bus/pci/devices/0000:04:01.0/driver/unbind
echo 0000:04:01.0 > /sys/bus/pci/drivers/pci-stub/bind
modprobe -a kvm
modprobe -a kvm-intel

Now I get a different output with lspci -vv
Code:
04:01.0 Network controller: Techsan Electronics Co Ltd B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card (rev 02)
        Subsystem: Techsan Electronics Co Ltd B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 32
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at fe400000 (32-bit, non-prefetchable) [size=64K]
        Region 1: I/O ports at d000 [size=32]
        Kernel driver in use: pci-stub
        Kernel modules: b2c2-flexcop-pci

Now I created a VM with web interface and tried to add to configuration file /etc/qemu-server/101.conf
Code:
hostpci: 04:01.0
When I try to start the VM with qm start 101 I get:
Code:
No IOMMU found.  Unable to assign device "(null)"

So, it's a little bit long for the first post, but I want to give as much details as possible.

Anybody out there, who can imagine, what's my problem?

Thanks for help,
Philipp