vdr in Virtueller Maschine mit Hardware

  • Hallo,


    ich nutze seit Jahren vdr auf einer dedizierten Maschine mit DVB-S Karte.
    Nach wochenlangem probieren mit verschiedenen Host Modellen habe ich es nicht geschafft, ein Bild zu bekommen, wenn (u.a.) yavdr in einer virtuellen Maschine läuft und ich auf welche Weise auch immer, die PCI Karte dort nutzen möchte.
    Habe mir zu diesem Zweck auch eine DVB-S2 USB Box gekauft, aber selbst damit hats nicht funktioniert. Ein Bild welches nur aus Artefakten besteht habe ich ein mal kurz bekommen, aber das war nicht nutzbar (die USB Box funktioniert mit vdr übrigens problemlos auf dedizierter Hardware).


    Hat irgendjemand eine praktikable Lösung, um VDR mit Hardware in einer VM zu nutzen ?


    Jan

  • Hi,
    versuchst Du ein TV- Bild in einer VM zu bekommen? Das ist meiner Ansicht nach nicht so einfach möglich, da für DPAU die Grafikkarte fehlt. Wenn der VDR in einer VM läuft ist das eher für den Client, Server- Betrieb gedacht.


    Gruß Jan

    1:Dell PoweEdge T20; Xeon E3-1225 v3; 32GB RAM; Proxmox 5.4; MLD 5.4 als VDR-Server; 2 x Cine S2;
    2:Intel NUC i3 Passiv; 4GB RAM; 120GB SSD; easyvdr 3.5 als client; Harmony Hub

    2:Intel NUC i5 Passiv; 4GB RAM; 120GB SSD; easyvdr 3.5 als client; Harmony Hub
    3:Raspberry Pi 3B; MLD

  • Servus,


    im Prinzip brauchst Du nur[tm] passende Hardware (d.h. Mainboard und Prozessor mit vt-d) und passende Software (z.B. Xen, kvm). Bei Xen ist es sogar möglich, ohne vt-d die Hardware in ein Linux zu bekommen. Spätestens bei was anderem brauchts aber zwingend vt-d. Hier im Portal gibt es den einen oder anderen Thread dazu, oben rechts ist ein Suchfeld. "virtualisierung" sollte zu den passenden Threads führen.


    Ich selbst nutze Proxmox (vorkonfiguriertes Debian mit kvm als Hypervisor) und reiche damit eine DD Cine S2 nebst Erweiterungsmodul an ein vollständig virtualisiertes yavdr durch. Funktioniert hier problemlos seit Februar. Mainboard und CPU können vt-d, damit ist es mit einer Bootoption der Dom0 und einer Zeile in der VM Konfiguration getan.
    In /etc/default/grub wird bei der Variablen "GRUB_CMDLINE_LINUX_DEFAULT" ein "intel_iommu=on" ergänzt und grub mit grub-mkconfig übernommen (Reboot notwendig). in der VM-Konfiguration ist die Zeile "hostpci0: 02:00.0" zu ergänzen. Das "02:00.0" bezeichnet dabei das PCI(e) Device, welches man mittels lspci herausbekommt. In diesem Fall ist das die "02:00.0 Multimedia controller: Digital Devices GmbH Octopus DVB Adapter". Wichtig: Auf der Dom0 darf für diese Hardware (oder für andere, durchzureichende Hardware) kein Modul geladen sein. Das ist in der /etc/modprobe.d/blacklist zu deaktivieren.


    Ich hatte in der Zeit seit Februar zwei "Hänger" der durchgereichten Hardware, aber mit dem hier beschriebenen Vorgehen konnte ich das ohne Reboot bereinigen. Ist schon ewig nicht mehr aufgetreten, der Server und die VMs laufen aber 24/7 durch.


    cu
    Markus

  • Ach ja, wie schnoefftel schon angemerkt hat, das Ganze ist dann aktuell nur als headless Server zu gebrauchen, Grafikkarten in eine VM durchreichen funktioniert noch nicht wirklich gut. Aber dafür hat man dann z.B. ein Raspberry Pi oder ein sparsames ION2 Board nebst schicken kleinem Gehäuse als Client.


    Vielleicht spezifizierst Du noch einmal etwas genauer, was Du eigentlich konkret vorhast. Daraufhin kann man auch gezielter Tips geben.


    cu
    Markus

  • Hallo mahlzeit,


    eigentlich genau das von dir beschrieben Szenario.
    Natürlich als headless - auf der VM will ich kein fernsehen kucken :-)



    Ich nutze eigentlich virtualbox unter Linux Debian und bin damit bisher sehr zufrieden - bis auf die Tatsache mit dem vdr.
    Die von dir beschrieben Vorgehensweise war mir mehr oder weniger bekannt (Module im Host dürfen nicht geladen sein, PCI Passtrough etc).
    Ich hatte mir sogar extra eine 2. AMD Maschine angeschafft - weil mein Intel Systme auf jeden Fall kein IOMMU beherrscht.
    Wobei das AMD Board kein VT-d / iommu kann - wenigstens sehe ich nichts davon in dmesg).
    Mit Xen und Centos hatte ich auch rumgespielt ...hat aber nicht geklappt - bin lieber auf Debian unterwegs.
    Seufz... kannst du mir passende HW empfehlen (Mainboard vor allem - die AMD CPU ist noch recht jung)


    Jan

  • Ich nutze eigentlich virtualbox unter Linux Debian und bin damit bisher sehr zufrieden - bis auf die Tatsache mit dem vdr.


    Virtualbox kann imho ja nur USB, daher der Kauf der USB Hardware. Aber vermutlich klappt das mehr schlecht als recht, evtl. wird nur USB 1.0 statt USB 2.0 "zur Verfügung gestellt" (was ja für die Klötzchen sprechen würde, die Bandbreite von USB 1.0 reicht da nicht aus)?

    Quote

    Die von dir beschrieben Vorgehensweise war mir mehr oder weniger bekannt (Module im Host dürfen nicht geladen sein, PCI Passtrough etc).
    Ich hatte mir sogar extra eine 2. AMD Maschine angeschafft - weil mein Intel Systme auf jeden Fall kein IOMMU beherrscht.
    Wobei das AMD Board kein VT-d / iommu kann - wenigstens sehe ich nichts davon in dmesg).
    Mit Xen und Centos hatte ich auch rumgespielt ...hat aber nicht geklappt - bin lieber auf Debian unterwegs.


    Evtl. muss der Kernel noch angepasst werden. Bei AMD ist auch der Parameter für grub anders: "iommu=pt iommu=1".
    Die Seite hier kennst Du schon? http://www.linux-kvm.org/page/…_devices_with_VT-d_in_KVM Da steht zumindest was zur Kernelkonfiguration mit drauf. Oder versuch doch einfach mal Proxmox, Installieren (Änderungen in Grub nach der Installation machen, Reboot), Weboberfläche aufrufen, VM konfigurieren (für die Durchreichgeschichte musst Du aber auf die Shell, im Verzeichnis /etc/pve/qemu-server liegen die Konfigurationsdateien) und los gehts. Hat bei mir keine 20 Minuten gedauert, bis die erste VM soweit war.


    Quote

    Seufz... kannst du mir passende HW empfehlen (Mainboard vor allem - die AMD CPU ist noch recht jung)


    Leider nein, ich habe nur Intel-Hardware. Da nutze ich das MSI Z68MA-G43 (G3) (MS-7676) zusammen mit einem Core i7-3770.


    cu
    Markus

  • Nachtrag: Für Proxmox ist die Konfiguration für durchgereichte Hardware (PCI Passthrough) noch einmal explizit beschrieben: http://pve.proxmox.com/wiki/Pci_passthrough


    cu
    Markus

  • CentOS unterstützt doch default-mäßig gar kein Xen.


    Für Debian gibt es meines Wissens Xen-Pakete. Für Ubuntu auf jeden Fall. Ich nutze für meien Xen-Exterimente Ubuntu Server.
    Künzlich habe ich mit Univention Corporate Server angesehen. Auch Debian/Ubuntu-basiert. Das ist eigentlich auch sehr schick gemacht und man hat eine Webobfläche. Nach der Installation läuft nach 10 Minuten die erste VM. Allerdings habe ich auf Anhieb keine Option für einen PV-Gast gefunden. Immer HVM. Und das setzt VT-d/VT-x voraus.


    Wenn Deine Hardware kein VT-d/VT-x bzw. bei AMD IOMMU unterstützt, dann ist der einzige Weg Xen. Oder eben Citrix XenServer, was letztlich ebenfalls Xen als Hypervisor nutzt. Nur Xen kann Hardware ohne entsprechende Funktionen an einen PV-Gast durchreichen.


    Du musst IOMMU ggf. im Bios noch aktivieren. Oft ist es ab Werk disabled, auch wenn es unterstützt wird. Und Board und CPU müssen es unterstützen. Es wäre hilfreich, wenn Du mal die exakte Hardware schreibst.


    VirtualBox kannst Du dafür übrigens vergessen. Das Durchreichen von USB funktioniert nur sehr hakelig. Selbst wenn es nur ein Speicherstick ist. PCI/PCIe Karten gehen meines Wissens gar nicht.

  • Ha,


    danke für die Info.
    Unter Virtualbox kannst du PCI Karten durchreichen ... aber da auch nur ganz bestimmte, die sich zum Beispiel keinen Interrupt teilen oder mehrere Interrupts gleichzeitig benötigen. Mit CentOS und xen hatte ich deshalb herumgespielt, weil es nur für Centos die WebGui (wie hiess die noch gleich) gab.
    Ich möchte auf jeden Fall eine WEB Gzi haben und beim System selbst keine kommerzielle Lösung, am liebsten OS.
    Das Proxmox sieht gar nicht schlecht aus. Habe es mir vorhin mal schnell auf einem zweitrechner installiert und werde heute Abend / Morgen Yavdr installieren.
    Wenn das geht, stelle ich alles um !


    Jan

  • Konnte es nicht lassen ....
    Also habe ich mal auf eine leere Platte das proxmox installiert auf einem Intel i5 mit Intel Board.
    Im Grub das intel_iommu=on eingeschalten, alle dvb* Module ge'blacklisted, maschiene neu gestartet.
    Nun habe ich mit lspci meine EINE Sat Karte so vorliegen:



    Code
    1. 02:00.0 Multimedia video controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)
    2. 02:00.1 Multimedia controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (rev 05)
    3. 02:00.2 Multimedia controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (rev 05)
    4. 02:00.4 Multimedia controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (rev 05)


    Selbst wenn ich in /etc/pve/nodes/proxmox/qemu-server/100.conf
    nur einen Eintrag ala hostpci0: 02:00.0 mache, sagt mir das System bei starten:


    Code
    1. kvm: -device pci-assign,host=02:00.0,id=hostpci0,bus=pci.0,addr=0x10: No IOMMU found. Unable to assign device "hostpci0"
    2. kvm: -device pci-assign,host=02:00.0,id=hostpci0,bus=pci.0,addr=0x10: Device 'kvm-pci-assign' could not be initialized


    Code
    1. dmesg |grep -i iommuCommand line: BOOT_IMAGE=/vmlinuz-2.6.32-26-pve root=/dev/mapper/pve-root ro quiet intel_iommu=onKernel command line: BOOT_IMAGE=/vmlinuz-2.6.32-26-pve root=/dev/mapper/pve-root ro quiet intel_iommu=onIntel-IOMMU: enabled



    und nu ?
    Ich denke das geht auch ohne "iommu" !?



    Jan

  • Kann der Core i5 (und das Mainboard) denn vt-d? Ohne das geht es nicht! Nur Xen kann ohne vt-d in eine paravirtualisierte VM Hardware durchreichen! Proxmox basiert auf kvm.


    Nach der Änderung an /etc/default/grub hast Du auch die Konfigurationsdatei für grub neu generiert (vor dem Reboot)?


    Hier nochmal der Auszug aus der Proxmox-Seite:


    Der output des letzten Kommandos aus der Anleitung sieht bei mir dann so aus:

  • Tja, dann habe ich wohl kein iommu ... :-(



    # dmesg | grep -e DMAR -e IOMMU
    Intel-IOMMU: enabled


    Mist. Neues Board muss her.
    Leider bekommt man nirgends die Info, ob ein Board sowas unterstützt ! Zum Kotzen!
    Also wieder rumprobieren ...



    Jan

  • Schau erst mal im BIOS nach, ob das vielleicht nicht nur deaktivert ist. Sollte bei den CPU Settings dabei sein. u.U. auch etwas versteckt oder zwielichtig bezeichnet. Welches Board und welche CPU hast Du denn genau?
    cu
    Markus

  • Ich habe 2 Systeme:
    Intel Board BOXDH67BLB3 mit und eine Intel I5 1155


    hier zeigt mir dmesg an, dass ich "gar nichts" habe.



    sowie ein AMD
    Board Asus M5A78L mit einer AMD FX (tm) -6100 Six-Core Processor
    welcher mein aktuelles HOST System ist.


    Hier zeigt mir dmesg das an:
    dmesg | grep -e DMAR -e IOMMU
    [ 0.000000] Please enable the IOMMU option in the BIOS setup
    [ 1.342760] PCI-DMA: using GART IOMMU.
    [ 1.342764] PCI-DMA: Reserving 64MB of IOMMU area in the AGP aperture
    [ 51.048244] vboxpci: IOMMU not found (not registered)


    Allerdings habe ich gar nichts gefunden im Bios mit VT... / oder ähnlichem.


    Jan

  • Also laut Intel sollte das Board VT-d haben.
    Die Einträge im Bios können auch Intel Virtualisation Technology oder ähnlich heißen.


    Zu UCS: Kommerziell ist daran letztlich der Support. Möglicherweise sind einige Komponenten CS. Jedenfalls ist es für Privatanwender aber kostenfrei. XenServer ist ebenfalls frei verfügbar. Ich weiß nicht ob man sich da nun wegen möglicherweise ein paar CS-komponenten das Leben schwer machen muss. Aber das darf jeder selbst entscheiden.


    Für ein normales Xen unter z.B. Ubuntu oder Debian gibt es meines Wissens keine WebGUI. Und ich habe schon viel nach sowas gesucht. Was geht ist Virt-Manager. Das ist ein Programm unter X und auch recht komfortabel. Über X kann man es ja auch remote ausführen.

  • Ich habe 2 Systeme:
    Intel Board BOXDH67BLB3 mit und eine Intel I5 1155


    Etwas genauer, Intel i5 auf Sockel 1155 gibt es massig, nicht alle können auch vt-d ;)


    Quote

    hier zeigt mir dmesg an, dass ich "gar nichts" habe.


    Vermutlich weil der Prozessor es nicht kann oder es im BIOS deaktiviert ist.



    Kunststück, der Chipsatz unterstützt noch kein IOMMU. Ab der AMD 900er Serie wäre wohl was dabei. (http://de.wikipedia.org/wiki/AMD-900-Serie). Der Prozessor sollte es wohl können (http://products.amd.com/en-us/DesktopCPUDetail.aspx?id=772&f1=AMD+FX+6-Core+Black+Edition&f2=FX+6100&f3=3300&f4=1024&f5=AM3%2b&f6=&f7=32nm&f8=95+W&f9=5200&f10=False&f11=False&f12=True). Auch wenn AMD da selbst etwas wenig dazu schreibt. Da finde ich die Übersicht bei Intel zu den Prozessoren aussagekräftiger.


    cu
    Markus

  • Ich kaufe mir morgen ein neues Board für meinen AMD 6 Core.
    Ein ASUS M5A97 EVO, dass soll iommu können.


    Werde es aus probieren.
    Und wenn das funktioniert, kann ich es sogar mit meinem laufenden Virtualbox versuchen, denn der soll es mit einem entsprechenden Board auch PCI Passtrough kennen.
    naja und wenn nicht, dann nehm ich den Proxmox :-)


    Jan

  • Booahhh ... wat n stress :-)
    Also, neues Board gekauft, eingebaut, proxmox installiert (Virtualbox kanns doch nicht, wegen sharing inetrrupts, was es nicht beherrscht), kernel Parameter etc geändert,
    dmesg gibt jetzt aus


    Code
    1. dmesg | grep -e DMAR -e IOMMU
    2. Please enable the IOMMU option in the BIOS setup
    3. AMD-Vi: Enabling IOMMU at 0000:00:00.2 cap 0x40


    Soweit also so gut.Dann dvb Module geblacklistet, neue Maschine angelegt und nach Anweisung in die nodes.conf die Zeile hostpci addiert.
    Das Problem ist jetzt folgendes:
    Was trage ich hiervon ein und wie ? - ich habe auf dem Host mit lspci die DVB Karte mit 4 EInträgen und zwar so:

    Code
    1. 03:05.0 Multimedia video controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)
    2. 03:05.1 Multimedia controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (rev 05)
    3. 03:05.2 Multimedia controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (rev 05)
    4. 03:05.4 Multimedia controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (rev 05)


    Habe also 4 Zeilen in die 100.conf des VDR eingefügt .
    Allerdings zeigt mir der proxmox VM Monitor immer nur ein Device und das auch nicht so, wie ich es sein sollte:
    info pci aus dem VM Monitor der proxmox gui (mein device ist das Vorletzte):


    Und das lspci vom vdr Gast zeigt:


    Code
    1. 00:03:0 Unclassified Device [00ff]: Red Hat, Inc Virtio memory balloon


    und jetzt ?
    Das ist doch nicht meine PCI dvb Karte !?


    Jan

  • Hänge doch mal bitte die kompletten(!) Ausgaben von "dmidecode" (evtl. noch nachinstallieren), "dmesg", "lspci", "lsmod" und "cat /etc/pve/qemu-server/100.conf" hier an. Aus der VM bitte auch die Ausgabe von "dmesg".


    cu
    Markus