Blog - Dresden - VDR - Fotografie - Digital Stuff

Mrz 30 2006

VDR PVR-350 only @c’t-VDR

Hinweis: Diese Anleitung ist veraltet. Schneller ans Ziel kommt man mit der Mahlzeit-ISO 3.2. Außerdem läuft das System stabiler.

  1. Verfügbare Hardware
  2. Zielstellung & Probleme
  3. Basisinstallation (Debian 3.1 netinst Image)
  4. apt-Quellen anpassen
  5. 2.6.12-ct-1 Kernel+-quellen installieren
  6. ivtv (TV-Karten Treiber+Firmware) kompilieren & installieren
  7. vdr installieren & konfigurieren
  8. Fernbedienung einrichten (lirc kompilieren & installieren)
  9. ACPI Wakeup installieren und einrichten
  10. Externes EPG einrichten (PlugIn tvmovie2vdr)

1. Verfügbare Hardwarekonfiguration

– Gehäuse: Fujitsu Siemens Scenic S
– Mainboard: D1215
– Prozessor: Pentium III 1GHz 133FSB (Coppermine)
– Hauptspeicher: 128MB RAM
– Festplatte: 20GB Seagate ST320414A
– TV-Karte: Hauppage PVR-350 (analog, MPEG En- und Decoder)

Für einen auf der PVR-350 basierenden VDR reicht eigentlich auch ein Prozessor aus der 500MHz-Klasse, da die Videoströme vom Chipsatz der TV-Karte verarbeitet werden. Zwar wird auf der deutschen Hauppage-Seite behauptet, dass die PVR-350 lediglich einen Hardware MPEG Encoder beisitzt, aber der vdr kann den Chip auch zum Decodieren und somit für die Wiedergabe nutzen. Somit muss der Prozessor lediglich ein paar Daten hin & her bewegen. Da ich zusätzlich noch noad (automatische Markierung von Werbeblöcken) benutze und das System auch dafür konzipiert war, DivX abzuspielen, hatte ich mich für einen größeren Prozessor entschieden.

Die 20GB Platte ist nur für das System und allenfalls im Notfall für Videodaten gedacht. Diese werden auf einem externen File-Server über Samba eingebunden bzw. abgelegt.

2. Zielstellung & Probleme

Heutzutage spricht alles von Digital Video Broadcasting (DVB). Gerade im Hinblick auf die Möglichkeiten eines Computers als „Aufnahmegerät“ wären digitale Signale natürlich qualitativ von Vorteil. Leider gibt es mehrere Gründe, die auch weiterhin für den Einsatz eines analogen Aufnahmesystems sprechen:

  • Anbringen einer Sat-Schüssel verbietet der Vermieter (also kein DVB-S)
  • Zahlreiche private Sender werden vom Kabelanbieter nicht digital eingespeist (also kein DVB-C)
  • DVB-T wird in meiner Region noch nicht angeboten

Grundsätzlich wurde der VDR für den digitalen Betrieb konzipiert. Erfreulicherweise gibt es durch PlugIns die Möglichkeit, einen analogen VDR zu betreiben. Leider wird der analoge Betrieb von den Entwicklern etwas stiefmütterlich behandelt, so dass die Konfiguration eines solchen Systems nicht gerade einfach ist. Außerdem werden verschiedene Features und PlugIns (DVD, DivX, Screenshot- & Image-PlugIn) im reinen analog-Betrieb nicht oder nur teilweise und mit viel Glück bzw. Umwegen unterstützt. Wer auf diese Funktionen verzichten kann und vor ein paar Problemen bei der Installation nicht zurückschreckt, ist mit der PVR-350 gut beraten, zumal diese TV-Karte ein erstaunlich gutes Bild abliefert.

3. Basisinstallation

Ich habe mich für Debian als Grundlage für meinen VDR entschieden. Gründe waren vor allem die schnelle Installation, regelmäßige Sicherheitsupdates und die Möglichkeit, auf unnötigen Schnickschnack zu verzichten. Durch die Installation von Debian über das netinst-Image besteht die Möglichkeit das System schlank zu halten und nur Komponenten auszuwählen, die man wirklich benötigt. Klar gibt es auch noch andere Distributionen, die dies ermöglichen – aber irgendwann muss die Entscheidung ja fallen! 😉

Die Installation von Debian ist mittlerweile sehr einfach und auch für Linux-Laien zu schaffen. Zudem gibt es noch zahlreiche Anleitungen dazu im Internet (z.B. EineAnleitungVonVielen). Einfach das netinst-Image herunterladen, das Image auf CD bannen und von CD booten. Die Installation startet automatisch.
WICHTIG: Direkt nach dem Booten am Boot-Prompt linux26 eingeben. Dies bewirkt, dass gleich der 2.6-er Kernel installiert wird.

Wichtiges Augenmerk sollte man auf die Partitionierung legen. Hier ist es ratsam, die Festplatte in 3 Bereiche aufzuteilen. Die Aufteilung hat den Vorteil, dass man sehr schnell das System erneuern kann, ohne die Videodaten sichern zu müssen. Auch das Sichern der Systempartition und das Wiederaufspielen geht einfacher von der Hand, da die Systemdaten von Anfang an klar von den oft sehr umfangreichen Videodaten getrennt abgelegt werden.

  1. Swap (doppelte Ram-Größe)
  2. Systempartition (je nach Größe der Festplatte und eigenen Anforderungen ca 1-5GB)
  3. Partition für Video und Nutzerdaten (Restlicher Speicher; zu mounten unter /home; später kann dort unter /home/video das Videoverzeichnis angelegt werden.

Auf die Einzelheiten der Installation von Debian wird hier nicht weiter eingegangen. Sobald die Grundinstallation und -konfiguration abgeschlossen ist, sollte man seine vielleicht mühsam erstellte Linux-Installation sichern. Das geht unter Linux sehr einfach und wird demnächst von mir näher beschrieben. Weiter gehts mit den Anpassungen der Apt-Quellen.

4. apt-Quellen anpassen

Apt ist unter Linux ein sehr mächtiges Tool der Paketverwaltung. Herzstück ist die Datei sources.list im Verzeichnis /etc/apt. Diese Beschreibt welche Pakete aus welchen Quellen in welcher Entwicklungsversion installiert werden sollen. Für den VDR müssen wir diese anpassen. die Datei sources.list einfach in einem beliebigen Editor öffnen und folgendermaßen anpassen:
Hinweis: Die automatischen Zeilenumbrüche erscheinen hier nur auf Grund des fehlenden Platzes, in die sources.list dürfen diese nicht übernommen werden!

## Debian Standard
deb http://ftp.de.debian.org/debian sarge main contrib non-free
deb-src http://ftp.de.debian.org/debian/ sarge main
deb http://ftp2.de.debian.org/debian/ sarge main
deb-src http://ftp2.de.debian.org/debian/ sarge main
deb http://security.debian.org/ sarge/updates main contrib non-free
# Zusätze (spezielle Pakete z.B. mplayer)
deb ftp://ftp.nerim.net/debian-marillat sarge main
# c’t (z.B. für das Kernel-Update)
deb http://www.heise.de/ct/ftp/projekte/vdr4 experimental/
# e-tobi.net vdrdevel
deb http://www.e-tobi.net/vdrdevel-experimental sarge base backports addons vdr-multipatch
deb-src http://www.e-tobi.net/vdrdevel-experimental sarge base backports addons vdr
# e-tobi vdr (wird auch benötigt, wenn nur vdrdevel eingesetzt wird)
deb http://www.e-tobi.net/vdr-testing sarge base backports addons vdr-multipatch
deb http://www.e-tobi.net/vdr-experimental sarge base backports addons

Die Bedeutungen von vdr-multipatch, vdr-standard bzw. vdr(devel)-experimental und vdr(devel)-testing kann man direkt bei e-tobi nachlesen. Hier sollte man sich jedoch vor der Installation genau überlegen, was für einen das Beste ist.

Neben der source.list muss man noch die Datei preferences im selben Verzeichnis anpassen. Sollte sie noch nicht existieren, kann man sie mit folgendem Ihalt anlegen:

Package: *
Pin: release o=debian a=stable
Pin-Priority: 500

Package: *
Pin: release a=sarge,o=debian,v=3.1*
Pin-Priority: 991

Package: *
Pin: release o=ctvdr4
Pin-Priority: 1300

Package: *
Pin: release o=e-tobi.net
Pin-Priority: 1501

Package: *
Pin: release o=ctvdr
Pin-Priority: 1200

Die Änderungen müssen jetzt noch übernommen werden. Die geschieht mit „apt-get update“

5. 2.6.12-ct-1 Kernel+-quellen installieren

Zunächst müssen einige Tools, die Kernelquellen und -header installiert werden. dies geschieht mit:

apt-get install build-essential unzip bzip2 kernel-image-2.6.12-ct-1 kernel-headers-2.6.12-ct-1 kernel-source-2.6.12-ct-1 module-init-tools

Die Installation des kernel-images erledigt neben der eigentlichen Kernel-Installation den Eintrag im Grup-Boot-Loader. Nun sollte erstmal ein Neustart mit dem neuen Kernel erfolgen. Klappt das problemlos, können die Kernel-Quellen entpackt und eingerichtet werden:

cd /usr/src
tar -xvjf kernel-source-2.6.12-ct-1.tar.bz2
cp –rv kernel-headers-2.6.12-ct-1/* kernel-source-2.6.12-ct-1
cp –v kernel-headers-2.6.12-ct-1/.config kernel-source-2.6.12-ct-1
ln -s kernel-source-2.6.12-ct-1 kernel-source-2.6.12
ln -s kernel-source-2.6.12 linux-2.6.12
ln -s kernel-source-2.6.12 linux
cd linux
make oldconfig
make prepare

6. ivtv installieren

Zunächst sollte die aktuellste 0.4.x ivtv-Version heruntergeladen werden. Diese bekommt man auf www.ivtvdriver.org. Nachfolgend ist das „x“ ist durch die heruntergeladene Versionsnummer zu ersetzen.

cd /usr/src
mkdir modules
cd modules
tar -xvzf ivtv-0.4.x.tar.gz
cd ivtv-0.4.x
make clean
make
make install
Falls bereits gleichnamige Module installiert wurden, kommt es bei make install zu Fehlermeldungen. Hier unbedingt die folgenden Umbenennungen duchführen:

mv /lib/modules/2.6.12-ct-1/kernel/drivers/media/video/msp3400.ko /lib/modules/2.6.12-ct-1/kernel/drivers/media/video/msp3400.ko.old
mv /lib/modules/2.6.12-ct-1/kernel/drivers/media/video/tda9887.ko /lib/modules/2.6.12-ct-1/kernel/drivers/media/video/tda9887.ko.old
mv /lib/modules/2.6.12-ct-1/kernel/drivers/media/video/tveeprom.ko /lib/modules/2.6.12-ct-1/kernel/drivers/media/video/tveeprom.ko.old
mv /lib/modules/2.6.12-ct-1/kernel/drivers/media/video/tuner.ko /lib/modules/2.6.12-ct-1/kernel/drivers/media/video/tuner.ko.old

Nach einem nochmaligen make install können die Module an die richtige Stelle kopiert werden:

cd /lib/modules/2.6.12-ct-1
mkdir misc
cp –rv /lib/modules/2.6.12/ivtv/* /lib/modules/2.6.12-ct-1/misc

Um sicher zu gehen sollte jetzt noch einmal im gesamten System nach den soeben kopierten Modulen gesucht werden. Sollten diese noch an einer anderen Stelle existieren, müssen sie auch noch umbenannt werden.

find / -name tuner.ko*
mv tuner.ko tuner.ko.old
.
.
.
find / -name ivtv.ko*
mv ivtv.ko ivtv.ko.old

Mit einem abschließenden

depmod –a

müssen die Abhängigkeiten nur noch erneuert werden.

Der nun installierte ivtv-Treiber benötigt noch die passende Firmware für die PVR-350. Diese kann man hier herunterladen. Das zip-Archiv braucht man nicht zu entpacken. Ivtv liefert ein kleines Tool zum extrahieren der Firmware mit.

cd /usr/src/modules/ivtv-0.4.x
utils/ivtvfwextract.pl pvr_1.18.21.22301_inf.zip

Die nun verfügbare Firmware muss nun nur noch ins Hotplug Verzeichnis eingespielt werden.

cd /lib/modules
cp ivtv-fw-enc.bin v4l-cx2341x-enc.fw
cp ivtv-fw-dec.bin v4l-cx2341x-dec.fw
cp HcwMakoA.ROM v4l-cx25840.fw
cp ivtv_init_mpeg.bin v4l-cx2341x-init-mpeg.bin
mv /lib/modules/v4l-cx2* /usr/lib/hotplug/firmware

Bevor man nun den Treiber der PVR-350 laden kann, muss man noch ein paar Konfigurationsdateien anpassen.
In der Datei /etc/modutils/aliases:

#alias char-major-81
bttv alias char-major-81 videodev
alias char-major-81-1 ivtv

…und mit update-modules übernehmen.
Für das automatische Laden der Treiber in der Datei /etc/moduls folgendes am Ende einfügen:

ivtv
ivtv-fb

Nun kann man die Treiber mit dem Befehl modprobe manuell laden.

modprobe ivtv
modprobe ivtv-fb

7. vdr installieren und konfigurieren

Die PVR-350 ist kein normales Device auf das der VDR ohne weiteres Zugreifen kann. Dafür benötigt er zwei Plugins, die die Verwendung der analogen TV-Karte als Ein- und Ausgabegerät ermöglichen. Diese werden zusammen mit dem VDR installiert:

apt-get install vdr vdrdevel-plugin-pvr350 vdrdevel-plugin-pvrinput

Die Sender für den Empfang der analogen Kanälse werden in der Datei /var/lib/vdr/channels.conf gespeichert. Da dies per Hand etwas mühselig ist, kann man das Tools w_pvrscan verwenden. Dieses ist beim VDR nicht direkt enthalten, es muss extra heruntergeladen und kompiliert werden. Zu finden ist dieses Tool unterhttp://free.pages.at/wirbel4vdr/w_pvrscan/index2.html. $Version ist mit der jeweiligen Versionsnummer zu ersetzen. Eine Detailierte Installationsbeschreibung findet sich hier.

cd /usr/src
mkdir tools
cd tools
tar -xvjf /mnt/w_pvrscan-$Version.tar.bz2
cd w_pvrscan
make
make install
cd /var/lib/vdr
w_pvrscan -p pvrinput -v 2 > channels.conf

Die so generierte Senderdatei kann man noch mit aussagekräftigen Sendernamen anpassen. Der Sendername entspricht jeweils dem ersten Wert in jeder Zeile.

8. Fernbedienung einrichten (lirc kompilieren & installieren)

Die Lirc Quelltexte der aktuellsten Version kann man hier herunterladen. Auspacken, konfigurieren und installieren nach folgender Anleitung:

cd /usr/src/modules
tar –xvjf lirc-0.8.0.tar.bz2
cd lirc-0.8.0/
./setup.sh

Bei der Konfiguration unter „Driver configuration“ Hauppage auswählen, unter dem Punkt „Software configuration“ alles abwählen und „Save configuration and run configure“ ausführen.

make
make install

Nun noch ein paar Konfigurationsparameter ändern.
In der Datei /etc/modutils/lirc:

alias char-major-61 lirc_i2c

…und mit update-modules die Änderungen übernehmen.

In der Datei /etc/lirc/hardware.conf: #MODULES=“lirc_dev lirc_serial“
MODULES=“lirc_dev lirc_i2c“

Nun kann das Ganze folgendermaßen getestet werden:

modprobe lirc_i2c
mode2

Wenn jetzt eine Ausgabe auf dem Bildschirm erscheint, wurde alles richtig gemacht. Um den Test abzubrechen STRG+C drücken.
Um die Module bei jedem Systemstart automatisch zu laden, an das Ende der Datei /etc/modules folgende Zeile anfügen:

lirc_i2c

9. „Automatisches Aufwachen“ einrichten

Es gibt mindestens zwei Möglichkeiten, den Rechner zum automatischen Aufwachen zu bewegen, wenn ein Timer ausgeführt werden soll. ACPI-Wakeup und NVRAM-Wakeup. Beide Möglichkeiten verfolgen unterschiedliche Ansätze. Das Funktionieren beider Methoden hängt stark von der verwendeten Hardware ab. Nicht jede Hardware unterstützt diese Methoden. Ich möchte mich zunächst erstmal nur mit der Installation des ACPI-Wakeup beschäftigen.

apt-get install vdrdevel-addon-acpiwakeup

Nach der Installation in der Datei „/etc/vdr/vdr-addon-acpiwakeup.conf“ den Eitnrag „ACPI-ENABLED“ auf „yes“ setzen sowie in den Dateien „/etc/init.d/hwclock.sh“ und „/etc/init.d/hwclockfirst.sh“ die Aufrufe von hwclock um die Option –directisa erweitern.

Ob die Installation erfolgreich war, kann man direkt mit folgendem Aufruf testen:

echo „2006-02-09 21:25:00“ > /proc/acpi/alarm

10. Externes EPG einrichten (Addon tvmovie2vdr)

Anders als bei DVB werden beim analogen TV-Signal die EPG-Daten nicht mitgeliefert. Abhilfe schafft ein kleines Addon, welches die Daten direkt aus dem Internet von verschiedenen Anbietern herunterladen kann. Vorraussetzung dafür ist natürlich ein Internetzugang des VDR.

apt-get install vdr-addon-tvmovie2vdr

Es folgt die Konfiguration für vdrdevel.
In der Datei „/etc/vdr/tvmovie2vdr/config.pl“ „$wantosd = 1;“ hinzufügen und alle Pfade nach “ /var/cache/vdrdevel“ abändern.
In der Datei „/etc/vdr/tvmovie2vdr/channels_wanted.pl“ die gewünschten Sender aktivieren.
Nun müssen noch die Senderzuordnungen der eigenen channels.conf gesetzt werden. Dies geschieht in der Datei „/etc/vdr/tvmovie2vdr/channels.pl“. Sehr hilfreich ist hier das Script printchannels.pl. Dieses ermittelt automatisch die richtigen Werte aus der eigenen channels.conf-Datei.
In „/etc/cron.d/“ sollte bereits ein CronJob mit dem Namen „tvmovie2vdr“ angelegt sein. Dieser ist für das automatische EPG-Update zuständig und führt das Update in den vom Nutzer gewünschten Intervallen durch. Was die Parameter des Cronjob-Eintrages bedeuten kann man hier nachlesen.
Hat man in der Konfigurationsdatei das Herunterladen von Bildern zu den EPG-Daten ausgewählt, muss man doch das Verzeichnis für die Bilder unter „/var/cache/vdrdevel“ anlegen.

Ob die Installation geklappt hat, kann man manuell mit dem Script „tvm2vdr.pl“ überprüfen.

Ein Kommentar bisher

Einen Kommentar hinterlassen


Spammen zwecklos!
Lediglich zum Zwecke der Linkverbreitung abgegebene Kommentare werden kommentarlos gelöscht!