Vorwort
Dies ist die 2. Version meines HowTos zur Erstellung eines XEN-VDRs. Sie ist notwendig geworden, da das alte HowTo auf einem sich wöchentlich ändernden CD Image basierte und einen Release Candidate Kernel verwendet hat.
Die alte Version findet ihr hier.
Ziel
Ziel dieser Anleitung ist das Erstellen eines möglichst stromsparenden
Streaming VDRs der HD fähig ist. Der Rechner soll im Keller stehen und
auch noch andere Dienste bereitstellen. Daher wird darauf XEN
installiert und der VDR nur virtuell betrieben.
Die Gesamtdauer dieses Tutorials bis der Videostream geht ca. 90 Minuten.
Achtung: alle Daten die auf dem PC gespeichert sind gehen dabei verloren.
Als Hardware viel die Wahl auf folgende Komponenten:
Netzteil: Seasonic SS-660KM 80 Plus Gold (passt leider nicht gescheit in das Gehäuse)
Mainboard: Intel Server Board S3420GPLX i3420 S1156 ATX
CPU: Intel Xeon UP L3406 4x 1.86GHz So.1156 BOX
RAM: 8192MB Kingston 1066MHZ DDR3 ECC REG CL7
Festplatten: 1x Samsung HD501LJ für System und 2 x WD Caviar Green WD20EARS - Festplatte - 2TB -
Gehäuse: Chenbro RM314 3HE Server Gehäuse RM31408
* Chenbro - SATA-SAS-Backplane für Server (Packung mit 2)
* Intel Remote Management Module 3 - Fernverwaltungsadapter
* 2 x Cine S2
Das Remote Management Module hat den Vorteil, das man den Rechner
komplett fernbedienen kann (auch im BIOS). Man kann also selbst die
Installation aus der ferne durchführen. Ein DVD-Laufwerk ist ebenfalls
nicht notwendig. Da man die Installations-CD Iso-Datei über das Remote
Management Modul einbinden kann. (Sehr angenehm)
Nicht jede Position der CineS2 Karten funktioniert. Die folgende funktioniert bei mir:
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/slots1_small.jpg]
Debian Installieren
- Folgendes ISO Image von Debian Wheezy Stable herunterladen http://ftp.de.debian.org/debian-cd/7.1.…amd64-DVD-1.iso. (Vielleicht funktioniert es auch mit einer aktuelleren Version, ich habe nur diese getestet).
Die ISO Datei hat folgende Prüfsummen:
MD5: 465a3e6a106152a3227262aa5bbbe357
SHA1: 1e549c2f923d71fea7220fccde37038938c1cf99 - DVD einlegen
- Rechner starten
- Im DVD-Menu "Install" auswählen
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/01.png] - "Deutsch" auswählen
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/02.png] - "Deutschland" auswählen
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/03.png] - Tastaturlayout "Deutsch" auswählen
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/04.png] - Progress Bar
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/05.png] - "eth0" auswählen
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/06.png] - Rechnername eingeben
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/07.png] - Domainname eingeben
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/08.png] - Root Passwort eingeben
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/09.png] - nochmal eingeben
- Benutzername eingeben
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/10.png] - Accountname eingeben
- Passwort eingeben
- Passwort nochmal eingeben
- Gesamte Festplatte verwenden, LVM einrichten
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/11.png] - Nochmal bestätigen
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/12.png] - Alle Daten auf eine Partition
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/13.png] - Falls vorhanden bestätigen, dass vorhandene LVM Volumes gelöscht werden
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/14.png] - Nochmal bestätigen
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/15.png] - Partitionierung beenden
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/16.png] - Nochmal bestätigen
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/17.png] - Grundsystem wird installiert (Dauert ca. 5min)
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/18.png] - keine weitere CD/DVD auswählen
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/19.png] - Netzwerkspiegel verwenden (ohne den kann man leider kein Xen installieren)
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/20.png] - Deutschland auswählen
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/21.png] - ftp.de.debian.org auswählen
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/22.png] - Ohne Proxy
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/23.png]
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/24.png]
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/25.png] - Nicht an Paketerfassung teilnehmen
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/26.png] - SSH Server und Standard-Systemwerkzeuge auswählen, keine Desktop Umgebung
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/27.png]
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/28.png]
Dauert ca. 3min - Grub in Master Boot Record installieren
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/29.png]
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/30.png]
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/31.png] - DVD entfernen
IP Adresse festlegen
- Das System startet
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/40.png] - Am System anmelden
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/41.png] - Dem Rechner eine feste IP-Adresse geben
"iface eth0 inet dhcp" mittels "#" auskommentieren
Netzwerkeinstellungen eingeben (IP Adresse und Gateway natürlich anpassen)
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/42.png] - Ctrl+X abspeichern
- Rechner neustarten
- Netzwerkkonfiguration überprüfen
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/43.png]
Xen Installieren und Bootloader anpassen
siehe auch:
http://wiki.ubuntuusers.de/GRUB_2/Konfiguration
Hinweis: Falls der Kernel 3.1 mittlerweile relased ist, das entsprechende Paket installieren
- Ab jetzt kann man entweder weiter am Rechner stehen oder mittels SSH drauf zugreifen
- Die Paketlisten aktualisieren
- Den richtigen Zeichensatz einstellen
"de_DE.UTF-8 UTF8" auswählen
"de_DE.UTF-8" als Standard - In Putty unter Translation "UTF-8" auswählen
- mittels aptitude folgendes installieren:
xen-system-amd64
xen-hypervisor-4.1-amd64
xen-utils-4.1eeed
xen-utils-common
xen-linux-system-am64
xen-linux-system-3.2.0-4-amd64
xen-docs-4.1
xen-tools
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/50.png] - ggf. DVD einlegen
- DVD wieder entfernen
- Rechner neustarten
- Neustart und sich merken unter welchem Hauptmenu und Untermenüeintrag sich der richtige Eintrag verbirgt. Man braucht den Eintrag "Xen 4.1-amd64" > ".... 3.2.-rc7-amd64"
Der erste Eintrag hat die Nummer 0
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/60.png]
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/61.png]
- In der Datei /etc/default/grub den Eintrag GRUB_DEFAULT anpassen. Bei mir: GRUB_DEFAULT="2>0"
[Blocked Image: http://www.timhansen.de/vdr/xenvdrcines2_2013/70.png] - Die Informationen des Bootloaders aktualisieren
- Neustarten, jetzt sollte der Bootloader XEN als Default Einstellung ausgewählt haben
PCI Back beim Start ausführen
siehe auch:
http://wiki.ubuntuusers.de/kernelmodule
http://wiki.xen.org/xenwiki/Assign…ghlight=(module)
- Laden des ngene Moduls verhindern
- xen-pciback immer laden
- "lspci | grep Micronas" ausführen, und sich die ersten drei Zahlen merken. Damit bekommt man die PCI Adresse der CineS2 Karten heraus (Hier: 06:00.0 sowie 04:00.0)
- pciback Optionen definieren (Bitte "06:00.0" und "04:00.0" durch die PCI Adressen der CineS2 ersetzten. Die Nullen vorne bleiben stehen.
- In der Datei /etc/modprobe.d/xen-pciback.conf steht jetzt folgendes
- Neustarten
- Überprüfen, dass "ngene" nicht geladen wird:
sollte keine aktuellen Einträge mehr liefern - Überprüfen, dass die PCI Karte zugeordnet werden kann:
sollte die Adressen der Karten zurückgeben. Hier: - In /etc/xen-tools/xen-tools.conf folgendes einstellen:
- In /etc/network/interfaces jetzt folgendes einstellen (Die alten Einstellungen können wieder auskommentiert werden).Code
Display Moreauto orange iface orange inet manual bridge_ports eth1 bridge_fd 5 bridge_stp no auto green iface green inet static address 192.168.10.252 netmask 255.255.255.0 gateway 192.168.10.200 bridge_ports eth0
Die Einstellungen bewirken, das eine green und eine orange Bridge angelegt werden. (Kann man sich wie einen Software Switch vorstellen) eth0 ist mit green, eth1 mit orange verbunden. eth0 ist zudem mit einer IP ausgestattet, dadurch kann man die Xen-Maschine auch erreichen. - Jetzt neustarten
Paravirtualisierte DomU erzeugen
- Mittels "xen-create-image --hostname PV" eine virtuelle Maschine anlegen:Code
Display Moreroot@debian:~# xen-create-image --hostname PV WARNING ------- You appear to have a missing vif-script, or network-script, in the Xen configuration file /etc/xen/xend-config.sxp. Please fix this and restart Xend, or your guests will not be able to use any networking! General Information -------------------- Hostname : PV Distribution : wheezy Mirror : http://ftp.de.debian.org/debian/ Partitions : swap 512Mb (swap) / 10Gb (ext3) Image type : sparse Memory size : 512Mb Kernel path : /boot/vmlinuz-3.2.0-4-amd64 Initrd path : /boot/initrd.img-3.2.0-4-amd64 Networking Information ---------------------- IP Address : DHCP [MAC: 00:16:3E:9D:DF:F8] Creating partition image: /home/xen/domains/PV/swap.img Done Creating swap on /home/xen/domains/PV/swap.img Done Creating partition image: /home/xen/domains/PV/disk.img Done Creating ext3 filesystem on /home/xen/domains/PV/disk.img Done Installation method: debootstrap
- Das dauert mehrere(>10) Minuten so, irgendwann kommt dann:
- Passwort für die VM eingeben, und nochmal eingeben.
- In die Datei /etc/xen/PV.cfg folgendes hinzufügen. Adressen wieder entsprechend anpassen
DomU starten
- Mittels "xm create PV.cfg" die DomU starten
- Mittels "xm console PV" in die DomU wechseln, und einloggen
- Dort "pciutils" via aptitude installieren
- Jetzt sollte "lspci" dort die Karten anzeigen
- "cat /var/log/messages | grep ngene" sollte etwas liefern wie:Code
Display Moreroot@PV:~# cat /var/log/messages | grep ngene Aug 17 01:27:26 PV kernel: [ 2.097009] ngene 0000:00:00.0: enabling device (0000 -> 0002) Aug 17 01:27:26 PV kernel: [ 2.097204] ngene 0000:00:00.0: Xen PCI mapped GSI16 to IRQ27 Aug 17 01:27:26 PV kernel: [ 2.097226] ngene: Found Linux4Media cineS2 DVB-S2 Twin Tuner (v5) Aug 17 01:27:26 PV kernel: [ 2.116228] ngene: Device version 1 Aug 17 01:27:26 PV kernel: [ 2.129127] ngene: probe of 0000:00:00.0 failed with error -1 Aug 17 01:27:26 PV kernel: [ 2.129193] ngene 0000:00:01.0: enabling device (0000 -> 0002) Aug 17 01:27:26 PV kernel: [ 2.129326] ngene 0000:00:01.0: Xen PCI mapped GSI19 to IRQ28 Aug 17 01:27:26 PV kernel: [ 2.129346] ngene: Found Linux4Media cineS2 DVB-S2 Twin Tuner (v5) Aug 17 01:27:26 PV kernel: [ 2.134618] ngene: Device version 1 Aug 17 01:27:26 PV kernel: [ 2.147808] ngene: probe of 0000:00:01.0 failed with error -1
- Jetzt die Firmware Datei der CineS2 herunterladen und an die richtige Stelle kopieren. Je nach Version der CineS2 kann es ein anderer Download Link sein siehe Anleitung auf http://linuxtv.org/wiki/index.php…B-S2_Twin_Tuner
- Mittels "halt" die PV anhalten
- Mittels "xm create PV.cfg" die DomU starten
- Mittels "xm console PV" in die DomU wechseln, und einloggen
- Falls es zu großen Problemen in der DomU kommt (Der Kernel spuckt komische Meldungen aus und "dmesg | grep ngene" spuckt etwas aus wie:Code
Display More[0.937471] ngene 0000:00:00.0: enabling device (0000 -> 0002) [0.937622] ngene 0000:00:00.0: Xen PCI mapped GSI16 to IRQ27 [0.937646] ngene: Found Linux4Media cineS2 DVB-S2 Twin Tuner (v5) [0.939006] ngene 0000:00:00.0: setting latency timer to 64 [0.939101] ngene: Device version 1 [0.956111] ngene: Loading firmware file ngene_18.fw. [3.716673] ngene: Command timeout cmd=12 prev=02 [3.716688] host_to_ngene (c000): 02 04 00 d0 00 04 00 00 [3.716701] ngene_to_host (c100): 00 00 00 00 00 00 00 00 [3.716712] dev->hosttongene (ffff88001ddb4000): 12 06 30 30 00 30 30 00 [3.716725] dev->ngenetohost (ffff88001ddb4100): 00 00 00 00 00 00 00 00 [3.717547] ngene: probe of 0000:00:00.0 failed with error -5
- Dann hat man wahrscheinlich das
- vergessen. Falls dies auftritt sollte man aber die ganze Dom0 neustarten, ansonsten will die Karte nicht mehr.
- Ein korrekt initialisierter ngene Treiber liefert z.B. folgendes auf "dmesg | grep ngene"
root@PV:~# dmesg | grep ngeneCode[0.926051] ngene 0000:00:00.0: enabling device (0000 -> 0002) [0.926208] ngene 0000:00:00.0: Xen PCI mapped GSI16 to IRQ27 [0.926232] ngene: Found Linux4Media cineS2 DVB-S2 Twin Tuner (v5) [0.946232] ngene 0000:00:00.0: setting latency timer to 64 [0.946328] ngene: Device version 1 [0.954277] ngene: Loading firmware file ngene_18.fw.
- In der PV nimmt man nun folgende Änderungen vor
- "vdr" mittels aptitude installieren
- Bestätigen, dass man "/var/lib/video.00" als erstellen möchte
- "Satellite" auswählen
- "vdr-plugin-streamdev-server" via aptitude installieren
- erlaubte IP Adressen dem VDR hinzufügen. (ggf anpassen)
- In der Datei "/etc/default/vdr" den vdr bei jedem start mitstarten lassen:
- Mittels "halt" die DomU herunterfahren
- Mittels "xm create PV.cfg" die DomU starten
- Mittels "xm console PV" in die DomU wechseln, und einloggen
- Mittels "ifconfig" die IP der PV herausfinden
- Jetzt sollte man falls alles geklappt hat mit dem VLC Player den Stream "http://[IP_der_DomU]:3000/TS/1" empfangen können
Stromverbrauch
- Obwohl es mein Ziel war einen möglichst stromsparenden Server aufzubauen ist, erfüllt der Stromverbrauch nicht meine Erwartungen.
- Hier die Messungen (Idle, nur eine Festplatte, keine VM gestartet)
Windows 7: 67W
Linux ohne XEN: 67W
Linux mit XEN: 82W
Xen erzeugt also einen Mehrverbrauch von ca. 15W - Stromverbraucher die ich identifizieren konnte:
Gehäuselüfter (2x4W) -> jetzt deaktiviert - Falls ihr noch Tipps habt wie man den Stromverbrauch weiter reduzieren kann, bin ich dafür dankbar.
Ich hoffe ich konnte euch trotzdem mit dieser Anleitung ein wenig dabei helfen einen Xen-VDR aufzusetzen.
Viele Grüße
Tim