DVB-S2-Karte(Cine S2) in Proxmox-VM durchreichen

Bei mir habe ich dies auf einer Neuinstallation mit Standardoptionen von Proxmox durchgeführt, ausserdem war dies der erste Gast den ich eingerichtet habe.

Zunächst mal hier die Version die ich verwendet habe:

root@proxmox:~# pveversion -v
proxmox-ve-2.6.32: 3.3-139 (running kernel: 2.6.32-34-pve)
pve-manager: 3.3-5 (running version: 3.3-5/bfebec03)
pve-kernel-2.6.32-32-pve: 2.6.32-136
pve-kernel-2.6.32-34-pve: 2.6.32-140
lvm2: 2.02.98-pve4
clvm: 2.02.98-pve4
corosync-pve: 1.4.7-1
openais-pve: 1.1.4-3
libqb0: 0.11.1-2
redhat-cluster-pve: 3.2.0-2
resource-agents-pve: 3.9.2-4
fence-agents-pve: 4.0.10-1
pve-cluster: 3.0-15
qemu-server: 3.3-3
pve-firmware: 1.1-3
libpve-common-perl: 3.0-19
libpve-access-control: 3.0-15
libpve-storage-perl: 3.0-25
pve-libspice-server1: 0.12.4-3
vncterm: 1.1-8
vzctl: 4.0-1pve6
vzprocps: 2.0.11-2
vzquota: 3.1-2
pve-qemu-kvm: 2.1-10
ksm-control-daemon: 1.1-1
glusterfs-client: 3.5.2-1

Als erstes gleich mal einen neuen Gast in der Weboberfläche(https://an.deine.IP.anpassen:8006) einrichten.

Als Grundsystem habe ich mich für Ubuntu Server 14.04(Trusty Tahr) LTS(Long Term Support) auf das ich später dann TVHeadend installiert habe. Eigentlich wollte ich ja meinen physikalisch vorhandenen VDR-Server migrieren, habe das dann aber nach 2 langen Abenden aufgegeben, vielleicht starte ich aber nochmal einen Anlauf.

Bis auf die Cores habe ich eigentlich die Standardoptionen übernommen:
Laufwerk
-Bus/Device: IDE 0
-Format: QEMU image format (qcow2)
-Cache: Standardeinstellung (kein Cache)
CPU
-Sockets: 1
-Cores: 4
-Typ: Standardeinstellung (kvm64)
Speicher
Automatische Speicherzuteilung innerhalb dieses Bereichs
-Max. Speicher (MB): 4096
-Min. Speicher (MB): 4
-Shares: Standardeinstellung
Netzwerk:
Bridged Mode
-Bridge: vmbr0
-Modell: Intel E1000

Jetzt müsst ihr euch noch die ID der neuen Virtual Machine merken, bei der ersten wie bei mir ist das die 100. Im späteren Verlauf müsst ihr dann ggf. meine 100 gegen eure ID ersetzen.

Nun folgende Zeile in grub ergänzen bzw. bestehende vervollständigen und grub updaten:

root@proxmox:/# nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=igfx_off intel_iommu=on"
root@proxmox:/# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-32-pve
Found initrd image: /boot/initrd.img-2.6.32-32-pve
Found memtest86+ image: /memtest86+.bin
Found memtest86+ multiboot image: /memtest86+_multiboot.bin
done

Slot der TV-Karte herausfinden:

root@proxmox:/# lspci
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v3 Processor DRAM Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3 Processor Integrated Graphics Controller (rev 06)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04)
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)
00:16.3 Serial controller: Intel Corporation 8 Series/C220 Series Chipset Family KT Controller (rev 04)
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-LM (rev 04)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d4)
00:1c.1 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #2 (rev d4)
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d4)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation C226 Series Chipset Family Server Advanced SKU LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 04)
02:00.0 PCI bridge: Texas Instruments XIO2001 PCI Express-to-PCI Bridge
04:00.0 Multimedia controller: Digital Devices GmbH Octopus DVB Adapter

Bei mir ist die Cine S2 also die 04:00.0.

Anschliessend folgende Zeile mit dem PCI-Slot in der Konfigurationsdatei eurer VM(ID anpassen) ergänzen:

root@proxmox:/# nano /etc/pve/qemu-server/100.conf
hostpci0: 04:00.0

Ausserdem habe ich noch eine Datei „blacklist“ mit folgendem Eintrag erstellt:

root@proxmox:/# nano /etc/modprobe.d/blacklist
blacklist ddbridge

So werden die Treiber in der Hostmaschine nicht geladen.

Anschliessend Neustarten

root@proxmox:/# shutdown -r now

Testen ob  DMAR und IOMMU korrekt laufen

root@proxmox:~# dmesg | grep -e DMAR -e IOMMU
ACPI: DMAR 00000000d8ffe4c8 000B8 (v01 INTEL HSW 00000001 INTL 00000001)
Intel-IOMMU: disable GFX device mapping
dmar: IOMMU 0: reg_base_addr fed90000 ver 1:0 cap c0000020660462 ecap f0101a
dmar: IOMMU 1: reg_base_addr fed91000 ver 1:0 cap d2008020660462 ecap f010da
dmar: DMAR:[DMA Read] Request device [00:02.0] fault addr 36c00000
DMAR:[fault reason 06] PTE Read access is not set
dmar: DMAR:[DMA Read] Request device [00:1f.2] fault addr dbf42000
DMAR:[fault reason 06] PTE Read access is not set

Deshalb habe ich noch folgendes ergänzt:

root@proxmox:/# nano /etc/modprobe.d/kvm_iommu_map_guest.conf
options kvm allow_unsafe_assigned_interrupts=1

Jetzt sah das Ganze gut aus…

root@proxmox:~# dmesg | grep -e DMAR -e IOMMU
ACPI: DMAR 00000000d8ffe4c8 000B8 (v01 INTEL HSW 00000001 INTL 00000001)
Intel-IOMMU: disable GFX device mapping
dmar: IOMMU 0: reg_base_addr fed90000 ver 1:0 cap c0000020660462 ecap f0101a
dmar: IOMMU 1: reg_base_addr fed91000 ver 1:0 cap d2008020660462 ecap f010da

Nun sollte die Karte in der Gastmaschine erreichbar sein.
Also die VM starten und testen:

christian@TVHeadend:~$ lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
00:03.0 Unclassified device [00ff]: Red Hat, Inc Virtio memory balloon
00:10.0 Multimedia controller: Digital Devices GmbH Octopus DVB Adapter
00:12.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)

Somit sollte alles soweit vorbereitet sein um euer TV-Programm installieren zu können.

Im meinem Fall habe ich mich für TVHeadend entschieden, aber natürlich sollte auch ein VDR oder MythTV funktionieren.

Ein Gedanke zu „DVB-S2-Karte(Cine S2) in Proxmox-VM durchreichen“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert