yaVDR 0.2

Die neue Version 0.2 von yaVDR (einer speziell als Home Theater Betriebssystem zusammenkonfigurierten Ubuntu Distri) wurde gestern veröffentlicht – genau einen Tag nachdem ich die alte Version 0.1.1 auf meinem HTPC installiert habe. (Danke auch!)

yaVDR 0.1 war noch sehr gewöhnungsbedürftig und funktionierte in vielen Punkten nicht so, wie ich mir das gewünscht habe. Das Update auf 0.1.1 brachte schon große Verbesserungen mit wie ich gestern festgestellt habe, daher freue ich mich auf 0.2.

Howto: X10 OR22V and VDR

Some days ago I explained how to set up basically the X10 OR22V remote control on a ubuntu system.That post also contains the required hardware.conf and lirdc.conf files! The thing that still didn’t work on my system was the ability to control my VDR.

The missing link to get things to work is a mapping from the “lirc-codes” to functions of VDR. In /etc/vdr there is a symlink “remote.conf” to a missing(!)  file located in /var/lib/vdr/remote.conf. That file will contain the required mapping. For me it was enough (sometimes) just to create the missing file (touch /var/lib/vdr/remote.conf – take care that vdr owns the file), restart vdr( /etc/init.d/vdr restart) and start the video output (for my setup: xinit -e vdr-sxfe -f). Now some teaching dialogue will (most likely) appear that tells you to press buttons in some sequence (press 1, press 2, …) and that remembers the received “lirc-codes”. If you went through this and later edit the mapping file you’ll have something like this:

LIRC.Up Up
LIRC.Down Down
LIRC.Menu Home
LIRC.Ok OK
LIRC.Back Back
LIRC.Left Left
LIRC.Right Right
LIRC.Red Red
LIRC.Green Green
LIRC.Yellow Yellow
LIRC.Blue Blue
LIRC.0 Zero
LIRC.1 One
LIRC.2 Two
LIRC.3 Three
LIRC.4 Four
LIRC.5 Five
LIRC.6 Six
LIRC.7 Seven
LIRC.8 Eight
LIRC.9 Nine
LIRC.Info More
LIRC.Play Play
LIRC.Pause Pause
LIRC.Stop Stop
LIRC.Record Record
LIRC.FastFwd Forward
LIRC.FastRew Rewind
LIRC.Next Skip
LIRC.Prev Replay
LIRC.Power Power
LIRC.Channel+ ChanUp
LIRC.Channel- ChanDown
LIRC.Volume+ VolUp
LIRC.Volume- VolDown
LIRC.Mute Mute
LIRC.Schedule KEY_TIMESHIFTING
LIRC.Channels DVD
LIRC.Timers LiveTV
LIRC.Recordings Guide

It is also possible, just to copy and paste the listing above to the mapping file. Just restart vdr and be happy that the remote will work now for VDR.

Wake on LAN (WOL) mit dem eeePC 4G

Ich habe mich heute gefragt, ob mein olles Netbook eeePC 4G, das mittlerweile ein kleiner Ubuntu-Homeserver ist, eigentlich Wake on LAN beherrscht – im Bios des Netbooks findet sich keine entsprechende Option die diese Frage beantwortet.

Nach etwas herumgooglen stieß ich auf das Programm ethtool, mit dem die Frage beantwortbar ist:

root@homeserver:~# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: Unknown! (65535)
Duplex: Unknown! (255)
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: d
Current message level: 0x00000000 (0)
Link detected: no

Die Zeile “Supports Wake-on” ist entscheidend. Steht dort ein g, bedeutet dies, dass Wake on LAN mit Hilfe der “Magic Packets” prinzipiell unterstützt wird. Das “Wake-on d” eine Zeile darunter bedeutet, das WOL gerade ausgeschalten (disabled) ist.

Ein freundliches

ethtool -s eth0 wol g

schaltet WOL an. Und tatsächlich: Wird der eeePC danach abgeschaltet und ein Magic Packet an die MAC-Adresse der Netzwerkkarte gesendet, wacht der eeePC auf.

Leider muss man das obige Kommando scheinbar nach jedem Reboot neu ausführen. Das kann per Aufruf in einem Script geschehen, /etc/rc.local bietet sich dafür an.

Homeserver: Der eeePC 4G als Video-Recorder

Vor einiger Zeit habe ich mir eine DVB-T Karte bei Saturn für gewaltige 20 Euro geholt, um Fernsehen auf meinem eeePC ansehen zu können. Idee: so hat man einen 2. Fernseher im Haus. Interessanterweise hielt sich aber die Häufigkeit des Gebrauchs dieses “Fernsehers” stark in Grenzen… ;-) Daher wollte ich den eeePC für eine neue Aufgabe rüsten: das Dasein als Video-Server.

Basis-Software

Ich habe zunächst mit ein paar Softwares herumgetestet (mytube, mythTV, …) und fand das alles aber schrecklich kompliziert (MythTV), nur wenig nützlich (mytube), völlig überladen (MythTV) oder, oder oder… Von den Kollegen habe ich schließlich den Tipp bekommen VDR anzusehen und siehe da: diese Software ist tatsächlich klasse.

Mein Video-Recorder basiert jetzt also auf der Software VDR (Video Disk Recorder) und einigen VDR-Plugins. VDR ist ein Open Source Projekt von einem Menschen namens Klaus Schmidinger und wird von einer großeren Community gepflegt bzw. mit neuen Plugins ausgerüstet.

Welche Distribution?

Ich verwende Ubuntu 9.04 Server. Ubuntu deswegen, weil es die gesamten benötigten Pakete verfügbar hat und Server, weil ich keine graphische Oberfläche haben wollte.

Installation und Konfiguration

(als Root)

apt-get install vdr vdr-plugin-streamdev-server

Nun hat man die grundlegende Software für den VDR. Man benötigt jetzt die Konfigurationsdatei für die Sender. Google hilft hier, wenn man z.B. nach channels.conf München (Ersetze München durch Stuttgart, Bitterfeld, …) sucht. Die so festgestellten Sender werden in die /etc/vdr/channels.conf eingetragen (die bereits in der Datei eingetragenen Sender kann man auch getrost rauswerfen). In /etc/default/vdr setzt man nun noch Enabled = 1 und fügt den Pfad in das gewünschte Aufnahmeverzeichnis hinzu: VIDEO_DIR=/media/disk/vdr. In meinem Fall liegt dieser Pfad auf einer externen Festplatte. Jetzt könnte man den VDR starten, bedienen kann man ihn so aber noch nicht. Schön wäre es doch z.B. eine Webseite zu haben, mit der man den VDR programmieren könnte, eh voila:

apt-get install vdr-plugin-live

Nach ein paar Sekunden wäre auch diese Installation abgeschlossen und man kann sich nun mit dem Webbrowser seiner Wahl zum VDR bzw. seiner Administrationsoberfläche verbinden: http://ip-des-vdr:8008

vdr

Wie man so ein wenig auf dem Bild erkennen kann, beinhaltet dies diverse Übersichten, z.B. was läuft jetzt, was läuft nachher bzw. was läuft den Tag über auf einem bestimmten Sender. Durch einen Klick auf den roten Knopf vor einer Sendung, wird diese programmiert und auch aufgenommen. Eine wirklich feine Sache.

Ein ziemlich tolles Plugin für VDR Live, die Weboberfläche des VDR, ist epgsearch. Mit

apt-get install vdr-plugin-epgsearch

bekommt man die Möglichkeit geliefert die über DVB ausgestrahleten elektronischen Programminfos nach Sendungsnamen, etc zu durchsuchen. So dürfte also niemand mehr seine Lieblingssendung verpassen

Über VDR Live kann man aber nicht nur Aufnahmen programmieren, sondern auch einen Video Stream des aktuellen Programms zu seinem Rechner pumpen lassen. Hierzu muss man aber erst in /etc/vdr/plugins/streamdevhosts.conf den Rechner an bzw. das Netz in das gestreamed werden darf eintragen: z.B.: 192.168.178.1/8

Aufgenommene Videos ansehen:

VDR Live sollte theoretisch auch Streams der aufgenommenen Sendungen auslösen können. Das klappt bei mir aber komischerweies überhaupt nicht. Ich war daher so frei und habe auf dem eeePC einen Apache Webserver installiert und in /var/www einen Link auf das Video-Verzeichnis der externen Festplatte gesetzt. So kann ich nun per Browser durch den Folder Tree navigieren, die URL der Videos kopieren und in VLC (Video Lan Client) öffnen. Das klappt übrigens hervorragend und sogar die 54MBit WLAN Leitung ist ausreichend schnell, um die Daten zu schaufeln.

VDR hat allerdings eine etwas seltsame Eigenheit: es splittet einen aufgenommenen Film in maximal 2GB große Blöcke. D.h. ein Film von gut zwei Std. Länge erstreckt sich immer über zwei Dateien. Ich vermutete zunächst, dass man irgendwelche komplizierte Software braucht, um die Filmfragmente zusammenzufügen und suchte mehrere Stunden nach der betreffenden Info. Irgendwann kam ich auf die Idee kam mal ein cat teil1.vdr teil2.vdr >> video.mpeg zu versuchen. Eh voila: es hat funktioniert -man muss also nur die Dateien konkatenieren (zusammenhängen). Für einen überlangen Film (mit mehr als 2 Fragmenten) kann man auch einfach

cat ???.vdr >> video.mpeg

eingeben und erhält das komplette Video. Dieses kann dann natürlich wieder wie oben beschrieben durch den Apache gestreamed werden…