Gentoo VdrInstallation

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Die VDR-Installation und Konfiguration

Inhaltsverzeichnis

Grundlagen

Um nun mit der eigentlichen Installation des VDR zu beginnen, muß noch einiges beachtet werden. Zunächst gibt es 2 Varianten der VDR-Ebuilds. Dabei handelt es sich um einen 'vdr' und Nessy-VDR. Der 'vdr' ist die Standardversion welche mittels der VDR_OPTS Variable mit verschieden Patches und Erweiterungen versehen werden kann. Wir gehen mal davon aus, das die meisten User diesen vdr bevorzugen da nessy sehr langsam entwickelt wird. Schon alleine wegen des tollen Elchi-Patches, der das Ausehen des OSD um einiges aufwertet, beschreiben wir mal nachfolgend diese Variante. Wobei jemand, der VDR das erste Mal installiert, lieber die Version mit leeren VDR_OPTS nehmen sollte, da diese weniger Abhänigkeiten und Konfigurationen beinhaltet. Die Installation ist aber ähnlich.

Um aktuell zu bleiben und immer die neuesten Versionen der ebuilds zu haben, sollte man vor der Installation die ebuilds vom Gentoo CVS-Server als tarball downloaden und entpacken wie in VdrEbuilds oder VdrEbuildsSync beschrieben.

Zur Zeit sind schon mehrere VdrOpts Flags für die Installtion des VDR verfügbar.

Diese Variablen setzt man einfach mit

VDR_OPTS="vfat elchi ....."

dem emerge-Befehl voran. Für die Art der Fernsteuerung des VDR stehen lirc oder rcu zur Verfügung. Hierbei ist zu beachten, daß lirc mittels USE-Variable und rcu mittels VDR_OPTS bei der Installation übergeben wird. In den meisten Fällen ist wohl lirc die am meisten angewandte Methode. Genauso kann man auch hier eventuell maskierte neue Versionen der ebuilds mit dem ACCEPT_KEYWORDS-Flag zur Installtion zwingen. Das wird entweder auch dem 'emerge' vorangestellt oder als Umgebungsvariable dauerhaft für die Sitzung gesetzt. Wer immer die unstable Ebuilds testen will kann auch in der Datei /etc/make.conf die Sektion Advanced Masking bearbeiten.

export ACCEPT_KEYWORDS="~x86"

Nun kann man mit dem emerge-Parameter --pretend (-p) erst mal nachsehen was installiert würde. Angenommen wir möchten nun den VDR mit lirc, vfat und dem Elchi-Patch installieren, geben wir folgenden Befehl ein:

USE="lirc" VDR_OPTS="elchi" ACCEPT_KEYWORDS="~x86" emerge -p vdr

Ich würde allen Anfängern raten erstmal den vdr OHNE VDR_OPTS Flags zu benutzen. Wenn das alles läuft kann man ohne Probleme updaten.

Die Ausgabe lautet dann in etwa so:

tricorder root # ACCEPT_KEYWORDS="~x86" emerge vdr  -p

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N   ] media-video/linuxtv-dvb-1.0.0_pre3-r20030608
[ebuild  N   ] app-admin/sudo-1.6.7_p5
[ebuild  N   ] media-libs/jpeg-6b-r3
[ebuild  N   ] media-video/vdr-1.2.1

Hier sieht man, dass die DVB-Karten Treiber und vdr in der Version 1.2.1 installiert würden. Die Treiber für die Karte sind dazu zwingend notwendig und werden deshalb als Abhängigkeit auch gleich mitinstalliert. Das ist, nebenbei gesagt, ein sehr großer Vorteil des Portage-Systems von Gentoo. Falls das bei Euch so aussieht und ihr meint das da was nicht stimmt:

tricorder root # ACCEPT_KEYWORDS="~x86" emerge vdr  -p

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N   ] media-libs/jpeg-6b-r3
[ebuild  N   ] media-tv/linuxtv-dvb-1.0.0_pre2-r2
[ebuild  N   ] media-video/vdr-1.1.27

dann habt Ihr Recht, da fehlt euch das PORTAGE_OVERLAY Directory. So sehen die offiziellen Ebuilds im Moment aus.

Installation

Um jetzt auch Ernst zu machen und das Ganze zu installieren lassen wir einfach den Parameter --pretend (-p) weg, lehnen uns zurück und warten ab.

USE="lirc" VDR_OPTS="elchi" ACCEPT_KEYWORDS="~x86" emerge vdr

Nach kurzer Zeit sind nun die Treiber, VDR und lirc-Support installiert.

Jetzt muss man dass Verzeichnis /video erstellen und die entsprechenden Rechte dem Benutzer vdr zuweisen. Das trifft z.B. für das Verzeichnis /var/vdr zu, wenn man dieses für die Ablage der EPG-Daten verwenden möchte.

mkdir /video
chown vdr:video /video

mkdir /var/vdr
chown vdr:video /var/vdr

Jetzt sollte ein

/etc/init.d/vdr start

den VDR in einer Standard-Konfiguration starten. Wenn lirc-Support vorhanden ist, wird der VDR dies jetzt erkennen und mit dem Tasten-Anlernen beginnen. Dazu müssen einfach nur OSD-Meldungen befolgt werden, welche selbsterklärend sind. Wie die Tasten der Fernbedienung zugeordnet werden, ist jedem selber überlassen.

Ob die Treiber funktionieren sieht man wie gesagt auf dem TV und mittels dmesg. Die letzten Zeilen sollten etwas so aussehen:

DVB: registering new adapter (Siemens/Technotrend/Hauppauge PCI rev1.3).
saa7146_core.o: adjusting pci latency to 64
DVB: registering frontend 0:0 (Grundig 29504-491, (TDA8083 based))...
DVB: AV7111(0) - firm f0240009, rtsl b0250018, vid 71010068, app 80002613
DVB: AV7111(0) - firmware supports CI link layer interface

Hier würde ich auch empfehlen einmal einen Blick auf das Logging-Terminal zu werden, welches standardmäßig mit ALT+F12 erreichbar ist. Wenn dem so ist, Glückwunsch. Wenn nicht kann es daran liegen das einige Kernelmodule/ Funktionen fehlen.

Kernel 2.4

Benötigt werden evdev, input, i2c und videodev Support, egal ob als Modul oder im Kernel.

Input core support  --->
    <M> Input core support
    <M>   Event interface support

Character devices  --->
   I2C support  --->
    <*> I2C support
    <M> I2C bit-banging interfaces
    <M> I2C device interface
    <M> I2C /proc interface

Multimedia devices  --->
    <*> Video For Linux
    Video For Linux  --->
     [*]   V4L information in proc filesystem

Wenn man diese Funktionen als Module kompiliert, darf man nicht vergessen, sie auch beim Systemstart automatisch laden zu lassen. Unter Gentoo dient dazu die Datei /etc/modules.autoload.d/kernel-2.4 (bzw. entsprechend der eingesetzten Kernelversion). Dort sollten folgende Zeilen stehen:

i2c-core
i2c-proc
i2c-dev
evdev

Kernel 2.6

Kerneloptionen

Code maturity level options -->
   --> Prompt for development and incomplete code / driver aktivieren
       Select only drivers expected to compile cleanly aktivieren
       Select only drivers that don't need compile-time external firmware deaktivieren

 Loadable module support -->
   --> Enable loadable module support aktivieren
       Module unloading aktivieren
       Automatic kernel module loading aktivieren

 Bus options -->
   --> Support for hot-pluggable devices aktivieren

 File Systems
   --> Kernel automounter version 4 support aktivieren
   --> Pseudo filesystems -->
       --> /proc file system support aktivieren
       --> /dev file system support aktivieren
       --> Automatically mount at boot aktivieren
       --> /dev/pts file system for Unix98 PTYs aktivieren
       --> Virtual memory file system support aktivieren

 Device Drivers -->
   --> Generic Driver Options -->
       --> Hotplug firmware loading support aktivieren (m)

   --> Block Devices
       --> RAM disk support aktivieren
       --> Initial RAM disk (initrd) support aktivieren

   --> Character Devices
       --> Serial Drivers -->
           --> 8250/16550 and compatible serial support deaktivieren oder als Modul (nur für LIRC notwendig)
       --> Unix98 PTY support aktivieren
       --> Linux Infrared Controller -->
           --> Linux Infrared Controller deaktivieren oder als Modul (nur für LIRC notwendig)
           --> Serial Driver aktiviern (m) deaktivieren oder als Modul (nur für LIRC notwendig)
               --> Serial Receiver Type (Homebrew)
               --> I/O Port (0x3f8, 4) für COM1
       --> /dev/nvram aktivieren
       --> Enhance Realtime Clock support aktivieren

   --> I2C support -->
       --> I2C support aktivieren (m)
       --> I2C device interface aktivieren (m)
       --> I2C Algorithms -->
           --> I2C bit-banging interfaces aktivieren (m)
           --> I2C PCF 8584 interfaces aktivieren (m)

   --> Multimedia Devices -->
       --> Video For Linux aktivieren
       --> Digital Video Broadcasting Devices -->
           --> DVB for linux aktivieren
           --> DVB core support aktivieren
           --> STV0299 based DVB-s frontend aktivieren (m)
           --> Alps TDLB7 aktivieren (m)
           --> Alps TDMB7 aktivieren (m)
           --> Grundig 29504-491 aktivieren (m)
           --> Grundig 29504-401 aktivieren (m)
           --> Frontends with external VES1820 demodulator aktivieren (m)
           --> Frontends with VES1893 or VES1993 demodulator aktivieren (m)
           --> AV7110 cards aktivieren (m)
             --> Compile AV7110 firmware into the driver
                   (/usr/lib/hotplug/firmare/dvb-ttpci-01.fw)
           --> AV7110 OSD support aktivieren
           --> Budget cards aktivieren (m)
           --> Budget cards with onboard CI connector aktivieren
           --> Budget cards with analog video inputs aktivieren
           --> AV7110 card with Budget Patch aktivieren

für eine Hauppauge Nexus 2.1 Karte benötigt man eigentlich nur STV0299, AV7110 (+Firmware +OSD Support)

Zugriffsrechte auf die DVB Devices für nicht-root-Benutzer anpassen:

Datei /etc/devfs.d/linuxtv-dvb mit folgendem Inhalt erstellen.

REGISTER ^dvb/adapter[0-9]+/[^/]+$ PERMISSIONS root.video 0660

Wenn alles glatt gegangen ist, kann der VDR wieder mit

/etc/init.d/vdr stop

beendet werden.

Konfiguration

Die zentralen Konfigurationsdateien für den VDR befinden sich unter /etc/conf.d. Dort werden solche auch zukünftig für die Parametrierung der Plugins abgelegt, sobald ein Plugin das erfordert. Mit der Installation eines Plugins ensteht dann ein neues Config-File, welches man schon am Namen erkennen kann. Für den VDR an sich ist dies einfach nur /etc/conf.d/vdr. Ein installiertes Plugin erhält dann beispielsweise den Namen vdr.mp3, welches die Parameter für das MP3-Plugin enthält. Um die Erstellung braucht man sich nicht kümmmern, das alles machen die ebuilds bei der Installation. Lediglich die Anpassung an das jeweilige System sollte man dann vornehmen. In jeder dieser Dateien befindet sich zu den möglichen Einstellungen auch ein Text, der diese Einstellungen kurz beschreibt. Standardmäßig sind diese Parameter kommentiert, das heißt mit einem # davor. Damit sind sie inaktiv und es werden die default-Werte für diesen Parameter übernommen. Möchte man die jeweilige Einstellung ändern, so ist das # zu entfernen und durch einen eigenen Wert zu ersetzen. Nachfolgend eine kurze Beschreibung der Einstellungen für den VDR.

* NVRAM_CONFIG="/etc/nvram-wakeup.conf"
 Hier den Pfad angeben, wo sich die Konfigurationsdatei für nvram-wakeup befindet.

* #WATCHDOG="60"
 Hier wird die Zeit in Sekunden angegeben, die der Watchdog zur Reaktion benötigt

* #AUDIO=""
 Angabe des Programms, welches für die Weiterleitung des Dolby-Digital Signals verantwortlich ist

* #CONFIG="/etc/vdr"
 Verzeichnis, in dem sich die Konfigurationsdateien des VDR befinden

* #DEVICE=""
 Anzahl der DVB-Devices, die genutzt werden sollen (0,1,2 ...)

* #SHUTDOWN=""
 Script zum Herunterfahren des PCs

* #EPGFILE="/var/vdr/epg.data"
 Verzeichnis, in dem die EPG-Daten abgelegt werden

* #LOG="3"
 Angabe des Logging-Levels (0,1,2,3)

* #VIDEO=""
 Verzeichnis für die Aufnahmen

* #RECORD=""
 Kommando, welches vor bzw. nach einer Aufnahme ausgeführt wird

* #PORT=""
 Port für das Simple-Video-Disk-Recorder-Protokoll (z.B.für vdradmin)

* #LIB="/usr/lib/vdr"
 Verzeichnis, in dem sich die Plugin befinden

* #PLUGINS=""
 Kurzname der Plugins, die vom VDR geladen werden sollen (durch Leerzeichen getrennt)

* #TERMINAL=""
 Ausgabe-Terminal zur Kontrolle von Meldungen des VDR (z.B /dev/tty8)

Zum Herunterfahren des PC über das OSD des VDR muß ein Script angelegt werden. Dieses erstellt man mit einem Editor und ändert dann mittels visudo die Rechte, damit auch der vdr-User dieses ohne Password-Eingabe erledigen kann. Damit das auch möglich ist, muß natürlich der Eintrag in /etc/conf.d/vdr auskommentiert werden und ein Pfad gesetzt werden. (siehe Kasten oben). Man übernimmt am Besten die Standard-Werte, also /usr/bin/vdrshutdown.sh. Der Inhalt dieser Datei sollte folgendermaßen aussehen:

#!/bin/bash
sudo /sbin/halt

Jetzt muß man das File noch ausführbar machen und die sudoers mit dem Befehl visudo editieren.

chmod +x /usr/bin/vdrshutdown.sh
visudo

In die sudoers dann folgendes ergänzen:

root ALL=(ALL) ALL
vdr  ALL=(ALL) NOPASSWD: /sbin/halt

Das waren im Großen und Ganzen die hauptsächlichen Einstellungen zur Konfiguration des VDR. Dieser sollte jetzt einsatzbereit sein. Um ihn beim Systemstart gleich mit zu starten, muß das runlevelscript noch zum Runlevel default hinzugefügt werden.

rc-update add vdr default

Nun kann es mit der Installation der zahlreichen Plugins weitergehen wenn man das wünscht. Es findet sich mit Sicherheit immer etwas, um den VDR mit mehr oder weniger sinnvollen Erweiterungen auszustatten.