Sie sind auf Seite 1von 31

Installation und Einrichtung eines c’t-VDR 7 für HD-Fernsehen mit Nvidia VDPAU

Version 1.6.2 – Feb. 2010 – MJJ

1 Vorbemerkung

2

1.1 Meine Hardwareausstattung

2

1.2 Was noch fehlt

2

2 c’t VDR und Nvidia VDPAU

3

2.1

Installation c’t-VDR7 von CD

3

2.1.1 Start von der Installations-CD

4

2.1.2 Netzwerkeinstellung

4

2.1.3 Hostname

5

2.1.4 Festplatten partitionieren

5

2.1.5 VDR-Grundsystem

6

2.2 Aktuellen Kernel installieren

7

2.3 DVB-Treiber kompilieren

8

2.4 Fernbedienung einrichten

9

2.4.1 LIRC

9

2.4.2 IR-Empfänger der DVB-Karte

10

2.5

X-Desktop

11

2.5.1 X-Desktop installieren

11

2.5.2 Tonausgabe über Soundkarte

11

2.5.3 Platzprobleme auf der root-Partition

13

2.6

VDPAU-Unterstützung

13

2.6.1 Grafiktreiber

13

2.6.2 VDPAU-Bibliotheken

14

2.6.3 xorg.conf

15

2.7

HDTV mit VDRDevel

16

2.7.1 Channellist für HDTV

17

2.7.2 Einstellungen Xineliboutput-Plugin

17

2.7.3 config_xineliboutput

18

3 Sonstige VDR-Erweiterungen

18

3.1

VDR-Plugins

18

3.1.1 VDR-Burn-Plugin

18

3.1.2 MarkAd-Plugin

19

3.1.3 MP3-Plugin

20

3.1.4 MPlayer-Plugin

20

3.1.5 Weitere Plugins

20

3.2

Samba

20

3.2.1 Windows VDR

20

3.2.2 VDR Windows

21

3.3

Automatisches Aufwachen des VDR

21

3.3.1 ACPI-Wakeup

21

3.3.2 NVRAM-Wakeup

22

3.4

Autostart von VDR-SXFE

22

3.4.1 GNOME: Automatische Anmeldung und VDR-Autostart (opt.)

22

3.4.2 Ohne Gnome

22

3.5

Diverse Einstellungen

23

3.5.1 Runlevel-Editor (opt.)

23

3.5.2 Verhindern, das der VDR in tty8 startet (opt.)

23

3.6

Grafik-LCD (opt.)

24

3.6.1 Selbstkompilieren des Plugins für VDRDevel

24

3.6.2 Anpassung der Konfigurationsdateien

24

3.6.3 Start/Stop-Logos

26

3.6.4 FSCK beim Shutdown mit Logo

27

3.7

Plugin-YAEPGHD (opt.)

28

3.7.1

Paket kompilieren und bauen

29

3.7.2

Konfiguration

29

3.8

PearlHD-Theme für Text2Skin (opt.)

30

3.8.1

Pakete von Tobis NG-Repository

30

3.8.2

Paket kompilieren und bauen (alternativ)

30

3.8.3

Konfiguration

31

Kapitel mit dem Suffix (opt.) sind nicht unbedingt erforderlich, da sie lediglich optionale An- passungen / Ergänzungen des Systems enthalten.

1

Vorbemerkung

Auf der Basis der Artikel des c’t-Magazins, Ausgabe 13/2009 und 23/2009 (Zusammenfassung im c’t-Sonderheft „Home Entertainment“ Nov 2009) habe ich meine Installationsschritte zu einem kleinen How-To zusammengeschrieben. Ich hoffe, es hilft den Einsteigern beim Aufbau ihres ersten VDR mit HD-Fähigkeiten. Im c’t-Magazin Ausgabe 3/2010 ist ein weiterer großer Artikel über den ctvdr7 und HD-TV.

Anregungen und Verbesserungsvorschläge sind jederzeit willkommen.

1.1 Meine Hardwareausstattung

Nachdem dies mein dritter VDR ist, den ich im Laufe der letzten sechs Jahre aufbaue, habe ich mich wieder für ein konventionelles ATX-Board entschieden. Ich habe fürs Wohnzimmer ein recht großes Alu-Gehäuse im HiFi-Formfaktor, in das mehrere Erweiterungskarten aufrecht hineinpassen. Also kein Grund für ein Spezial-Mainboard mit Riser-Card.

Hier die Eckdaten des Systems:

Mainboard: Gigabyte GA-EP31-DS3L

CPU:

Intel Pentium E6300 (2 x 2800 MHz, 2 x 1042kB, Wolfdale, 45nm)

RAM:

Kingston 2 GB (2 x 1 GB DDR2-800)

Grafik:

Gigabyte GV-N220 (Nvidia GT220, 1GB DDR3, HDMI)

H-Disk:

Samsung HD503HI (500 GB, 5400 U/min, SATAII)

DVD-RW:

LG GH-22LS

Netzteil: BeQuiet 400W TV-Karten: Technotrend budget S2-3200 mit CI

Technotrend budget S2-1600 Technotrend budget S-1500 (aus altem VDR)

Grafik-LCD 240 x 128 Pixel am Parallelport

Display:

Sonstiges: IR-Einschalter von www.atric.de

Fernbedienung Logitech Harmony

Wünsche bezüglich der aktuellen VDR-Entwicklungen mitteilen. Die derzeitige Entwicklerversion des VDR kann schon eine ganze Menge:

HDTV abspielen, aufnehmen und wiedergeben funktioniert

SDTV abspielen, aufnehmen, wiedergeben und auf DVD brennen funktioniert

Medienwiedergabe für viele aktuellen Audio- und Videoformaten funktioniert

Abstürze gibt’s nicht mehr

Zeitgesteuerte Aufnahmen, einschließlich automatischem WakeUp

Pay-TV funktioniert auch schon recht gut

Tolle Oberflächen (Skins) mit modernem Erscheinungsbild, z.B. PearlHD

Was geht nicht bzw. fehlt noch?

Beim Umschalten gibt’s immer noch einen kleinen Ruckler beim Bild.

Umschaltzeiten bei SD sind noch lang (wenn man früher eine FF-Karte hatte, war man schon recht verwöhnt)

Bei HD sind die Umschaltzeiten noch länger. Dort ruckelt es danach auch etwas heftiger, ist aber dann OK.

Das Verschieben von Schnittmarken muss blind vorgenommen werden, da das Bild nicht entsprechend mitgeführt wird.

Beim Abspielen von Aufzeichnungen funktioniert das Rückwärtsspulen nicht. Das Bild läuft zwar rückwärts mit, springt jedoch wieder an die ursprüngliche Stelle, wenn die Taste losgelassen wird.

Einige Plugins sind noch sehr jung, z. B. MarkAd und haben noch ein paar Kinder- krankheiten. Aber das wird sicher bald besser.

2

c’t VDR und Nvidia VDPAU

2.1

Installation c’t-VDR7 von CD

Die CD stammt aus der c’t Ausgabe 13/2009 und kann inzwischen frei heruntergeladen werden

Auf der CD befindet sich vdr-1.6.0 mit dem Kernel 2.6.26. Für den Empfang und die Darstellung von HD-Fernsehen ist die Entwicklerversion vdrdevel ab 1.7.x und Linux-Kernel 2.6.28 erforderlich. Des Weiteren sind für die Ausgabe des Fernsehbildes über die Grafikkarte des Rechners weitere Komponenten notwendig. Nachfolgende Installationsschritte zeigen einen möglichen Weg dorthin.

2.1.1 Start von der Installations-CD

2.1.1 Start von der Installations-CD Mir persönlich ist die textorientierte Inst allationsvariante lieber, daher die

Mir persönlich ist die textorientierte Installationsvariante lieber, daher die Eingabe: auto.

2.1.2 Netzwerkeinstellung

Standardmäßig wird bei vorhandenem DHCP-Server (die meisten DSL-Router haben sowas), von dort eine dynamische IP-Adresse bezogen. Wer lieber eine statische IP-Adresse bevorzugt, der sollte vor der Installation das Netzwerkkabel abziehen. Die Anderen lesen im nächsten Kapitel weiter. Es erscheint eine Fehlermeldung, dass die automatische Netzwerkkonfiguration fehl schlug. Das ist in diesem Fall auch so gewollt. Nach Bestätigung wird eine Auswahl angeboten, in der die Methode: Netzwerk manuell einrichten ausgewählt werden soll.

Bestätigung wird eine Auswahl angeboten, in der die Methode: Netzwerk manuell einrichten ausgewählt werden soll.

Anschließend erscheinen die Abfragen nach der IP-Adresse, Netzwerkmaske, Gateway- Adresse und DNS-Server. Nach der manuellen Netzwerkinstallation sollte das Netzwerkkabel wieder eingesteckt werden.

2.1.3

Hostname

Als nächstes wird der Name des Rechners erwartet:

Hostname Als nächstes wird der Name des Rechners erwartet: Anschließend wird noch der Domainname erwartet, der

Anschließend wird noch der Domainname erwartet, der in lokalen Heimnetzwerken keine Rolle spielt.

2.1.4 Festplatten partitionieren

Für den einfachen VDR mit grafischen Desktop-Manager und Entwicklungsumgebung reichen die weiteren Standardvorgaben aus. Dabei wird eine 4 GB große root-Partition, eine swap- Partition (je nach RAM-Ausbau) und der Rest als Daten-Partiion (var/lib/video.00) eingerichtet. Wem das reicht, der sollte dem folgenden Menü die Voreinstellung Geführte - verwende vollständige Festplatte auswählen und die angebotenen Default-Einstellungen verwenden. Für die übrigen VDR-Administratoren, denen 4 GB root-Partition zu wenig sind, wählen als Partitionsmethode Manuell aus und befolgen die nachfolgenden Schritte.

Zu Beginn der Partitionierung wird die Festplatte ausgewählt, auf denen die Partitionen erstellt werden sollen. Als nächstes wird eine leere Partitionstabelle auf der Festplatte angelegt. Hiernach wird der FREIE SPEICHER markiert und darauf eine neue Partition erstellt. Es werden der Reihe nach die Partitionen für root, Swap und für die Daten (Mountpoint /var/lib/video.00) angelegt.

Beispiel für eine mögliche Partitionierung:

Anschließend werden die Pa rtitionen angelegt und formatiert. Darauf erfolgt die Installation des Debian Grundsystems.

Anschließend werden die Partitionen angelegt und formatiert. Darauf erfolgt die Installation des Debian Grundsystems. Nach einer Weile wird das zu vergebende Root-Passwort abgefragt. Dann wird noch der Boot-Loader installiert und es geht nach einem automatischen Neustart des Systems weiter.

2.1.5

VDR-Grundsystem

Hier erfolgt die Installation des VDR-Grundsystems auf der Basis der Version 1.6. Nach einer Bestätigung wird nach der Empfangs/Kanalliste für den VDR gefragt. Es gibt fertige Kanallisten für verschiedene DVB-C, DVB-S und DVB-T-Systeme. Im folgenden Bild wurde die Kanalliste für den beliebten Astra-Satellit auf 19.2° Ost gewählt. Die Kanalliste kann später mit diversen Plugins (z.B. Wirbelscan) aktualisiert und mit dem VDR neu geordnet und verändert werden.

und mit dem VDR neu geordnet und verändert werden. Hiernach sollten in dem VDR-Installationsmenü nur die

Hiernach sollten in dem VDR-Installationsmenü nur die nötigsten Plugins (z.B. femon, dvd, skins) und einige wichtige Addons wie (Samba, MC, ggf. ACPI-Wakeup) ausgewählt und abschließend installiert werden.

Wenn die die Installati on abgeschlossen ist, die CD entfernen und das System von Festplatte

Wenn die die Installation abgeschlossen ist, die CD entfernen und das System von Festplatte neu starten. Bei den nachfolgenden Installationsschritten wird davon ausgegangen, dass diese als Benutzer root ausgeführt werden.

Als nächstes muss die Datei /etc/apt/sources.list angepasst werden

deb http://ftp2.de.debian.org/debian lenny main contrib non-free deb http://security.debian.org/ lenny/updates main contrib non-free deb http://www.debian-multimedia.org/ lenny main #deb http://e-tobi.net/vdpau-xine1.1 lenny base backports vdr-multipatch #deb http://e-tobi.net/vdpau-xine1.1-vdrdevel lenny base backports vdr-multipatch deb http://e-tobi.net/vdr-experimental lenny base addons vdr-multipatch deb http://e-tobi.net/vdrdevel-experimental lenny vdr-multipatch deb http://www.backports.org/debian lenny-backports main contrib non-free

Die Zeilen 4 und 5 sind absichtlich auskommentiert, sie werden erst ab Kapitel 2.6 benötigt.

Danach die Paketlisten aktualisieren:

apt-get update

Falls der folgende Fehler erscheint:

GPG error: http://www.backports.org etch-backports Release: Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist:

NO_PUBKEY EA8E8B2116BA136C

muss mit:

wget -O - http://backports.org/debian/archive.key | apt-key add - ein neuer Schlüssel geholt werden. Der Buchstabe hinter wget ist ein großes o (keine Null).

apt-get upgrade aktualisiert die bereits installierten Pakete

2.2 Aktuellen Kernel installieren

Für die aktuellen Erweiterungen muss zuerst ein neuer Kernel installiert werden:

apt-get install linux-image-2.6.28-etobi.3-486 linux-headers-2.6.28-etobi.3-486

Mit diesem Kernel kann max. 885 MB RAM adressiert werden. Ist mehr Arbeitsspeicher ein- gebaut, empfiehlt sich der Einsatz des 686-Kernels, der bis 3,2 GB RAM verwalten kann. Wem das nicht reicht kann dann auf die BIGMEM-Variante zurückgreifen. Für Nutzer der AMD- Prozessoren gibst den Kernel linux-image-2.6.28-etobi.3-amd64.

apt-get install linux-image-2.6.28-etobi.3-686 linux-headers-2.6.28-etobi.3-686

Danach ist ein Neustart des Systems fällig.

reboot

Darauf achten, dass im Bootmenü der neue Kernel 2.6.28 automatisch ausgewählt wird.

2.3 DVB-Treiber kompilieren

Wenn die eingesetzte DVB-Karte von der Installation noch nicht erkannt wurde, müssen aktuelle DVB-Treiber erstellt werden. Bei mir ist u.a. eine Technotrend DVB S2-3200 im System. Die Treiber dafür waren noch nicht auf der Installations-CD. Inzwischen sind weitere neue Fernseh-Karten erschienen, die damals noch nicht unterstützt wurden.

Zuerst ein Update der Paketlisten apt-get update apt-get install dvb-s2api-liplianin-source debhelper

mit cat /proc/version nachsehen, ob auch wirklich der aktuelle Kernel 2.6.28 geladen wurde.

In das Verzeichnis /usr/src wechseln und mit module-assistant prepare prüfen ob alle nötigen Pakete installiert sind. Dann Treiber kompilieren. Das dauert ziemlich lange, auch auf Dual-Core-Systemen (bei mir hat das ca. 3 Min. gedauert).

module-assistant build dvb-s2api-liplianin

Wenn alles ohne Fehler abgearbeitet wurde, kann das erstellte Paket mit dpkg -i dvb-s2api-liplianin*.deb installiert werden

Ob nun auch wirklich alle DVB-Karten gefunden werden, kann mittels:

lsmod | grep dvb nachgesehen werden

Beispiel:

dvb_ttpci

83788 0

dvb_core

72040 1 dvb_ttpci

saa7146_vv

39040 1 dvb_ttpci

saa7146

15752 2 dvb_ttpci,saa7146_vv

ttpci_eeprom

2176 1 dvb_ttpci

i2c_core

20880 3 dvb_ttpci,ttpci_eeprom,i2c_i801

Wenn nicht, erstmal nachsehen, ob die DVB-Karte im PCI-Bus erkannt wurde:

lspci

Beispiel mit 2 DVB-Karten:

04:00.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01) 04:02.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)

Ggf. hilft auch ein Neustart des Systems. reboot

2.4

Fernbedienung einrichten

2.4.1

LIRC

Zunächst mal muss das für den neuen Kernel passende Lirc-Modul kompiliert und installiert werden. module-assistant update,prepare module-assistant clean lirc apt-get install lirc-modules-source module-assistant auto-install lirc

Wenn dass ohne Fehler durchgelaufen ist, kann die LIRC Konfigurations-Datei /etc/lirc/lircd.conf an die zu nutzende Fernbedienung angepasst werden. Nachfolgend sind die RC-Codes der Technotrend-Fernbedienung zu sehen.

#

/etc/lirc/lircd.conf

 

#

using lirc-0.8.3(default)

#

#

brand:

Technotrend

#

model no. of remote control:

#

devices being controlled by this remote: TV-Card

#

begin remote

 
 

name

Technotrend

bits

6

flags RC5|CONST_LENGTH

eps

30

aeps

100

one

889

889

zero

889

889

plead

889

pre_data_bits

7

pre_data

0x55

gap

113792

toggle_bit

2

frequency

36000

duty_cycle

50

begin codes

Power

0x01

Mute

0x18

1

0x03

2

0x04

3

0x05

4

0x06

5

0x07

6

0x08

7

0x09

8

0x0A

9

0x0B

0

0x0C

Audio

0x1A

Repeat

0x02

Volume-

0x26

Volume+

0x25

Menu

0x19

Channel-

0x24

Channel+

0x23

Back

0x13

Ok

0x0F

Up

0x0D

Down

0x11

Left

0x0E

Right

0x10

Red

0x14

Green

0x15

Yellow

0x16

Blue

0x17

Record

0x3A

Play

0x3B

Stop

0x3C

Info

0x12

Rew

0x3D

Pause

0x3E

Fwd

0x3F

EPG end codes end remote

0x22

Mit dem Befehl /etc/init.d/lirc start wird der LIRC-Daemon gestartet.

2.4.2 IR-Empfänger der DVB-Karte

Wird der IR-Empfänger der TV-Karte verwendet und das System hat (hoffentlich) diese Fern- bedienung erkannt (im Verzeichnis /dev/input nach einem neuen Event-Device schauen), fordert der VDR beim ersten Start den Benutzer zum Anlernen der Fernbedienung auf. Nach

dem Anlernen werden die erkannten IR-Codes in der remote.conf speichert.

(/var/lib/vdr) abge-

Nachfolgend sind die RC-Codes der Technotrend-Fernbedienung aus meiner remote.conf aufgeführt:

remote-event3.Up

remote-event3.Down

remote-event3.Menu

remote-event3.Ok

remote-event3.Back

remote-event3.Left

remote-event3.Right

remote-event3.Red

remote-event3.Green

remote-event3.Yellow

remote-event3.Blue

remote-event3.0

remote-event3.1

remote-event3.2

remote-event3.3

remote-event3.4

remote-event3.5

remote-event3.6

remote-event3.7

remote-event3.8

remote-event3.9

remote-event3.Info

remote-event3.Play

remote-event3.Pause

remote-event3.Stop

remote-event3.Record

remote-event3.FastFwd

0000000100010067

000000010001006C

0000000100010184

000000010001001C

00000001000100AE

0000000100010069

000000010001006A

000000010001018E

000000010001018F

0000000100010190

0000000100010191

000000010001000B

0000000100010002

0000000100010003

0000000100010004

0000000100010005

0000000100010006

0000000100010007

0000000100010008

0000000100010009

000000010001000A

000000010001008B

00000001000100CF

0000000100010077

0000000100010080

00000001000100A7

00000001000100D0

remote-event3.FastRew

remote-event3.Power

remote-event3.Channel+

remote-event3.Channel-

remote-event3.PrevChannel 0000000100010179

remote-event3.Volume+

remote-event3.Volume-

remote-event3.Mute

00000001000100A8

0000000100010074

0000000100010192

0000000100010193

0000000100010073

0000000100010072

0000000100010071

2.5 X-Desktop

2.5.1

X-Desktop installieren

Mittels tasksel wird die grafische Oberfläche (Gnome) installiert. Im Installations-Menü „Desktop-Umgebung“ auswählen. Das dauert nur wieder eine ganze Weile, da erstmal >500 Pakete aus dem Internet heruntergeladen und dann noch installiert werden müssen.

Für die Benutzeroberfläche Gnome muss noch ein Benutzer-Account eingerichtet werden.

groupadd -g 1000 Benutzername useradd -m -u 1000 -g 1000 -G dialout,cdrom,floppy,audio,video,plugdev Benutzername passwd Benutzername

Alternative zu tasksel:

Wer nur den X-Server (ohne Gnome Display-Manager) möchte, kann die wenigen erforderlichen Pakete manuell installieren:

apt-get install xterm xorg x11-xserver-utils

Damit das Fernsehbild auf dem Monitor ausgegeben werden kann, benötigt man noch:

apt-get install vdr-plugin-xineliboutput xineliboutput-sxfe

Wenn alles glatt gelaufen ist, kann im grafischen Terminal mit vdr-sxfe --fullscreen oder auf der Konsole das Fernsehbild mit:

xinit -e vdr-sxfe --fullscreen angezeigt werden.

Nach einem Neustart des Systems gelangt man direkt in den Anmeldebildschirm von Gnome. Hier werden der zuvor angelegte Benutzername und das entsprechende Passwort eingegeben.

2.5.2 Tonausgabe über Soundkarte

Wenn kein Ton zu hören ist, kann die Ursache an einer deaktiverten Ausgang im Mixer liegen. Unter Gnome sollten dann die Audioeinstellungen im ALSAMixer geprüft werden. Dort muss die Ansicht Playback oder All auswählen sein. In einem der Register die Checkbox IEC958 Output suchen und aktivieren. Es gibt auch einen Befehl, der den Digitaleingang einschaltet: iecset audio on

Falls mehrere Audiogeräte im System angeschlossen sind, kann im Terminal mit dem Befehl aplay -l

sich eine Übersicht verschafft werden. Die Übersicht gliedert sich hierarchisch in Card, Device und Subdevice.

Beispiel einer Terratec Audiokarte:

aplay -l **** List of PLAYBACK Hardware Devices **** card 0: T71Space [Terratec Aureon 7.1-Space], device 0: ICE1724 [ICE1724] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: T71Space [Terratec Aureon 7.1-Space], device 1: IEC1724 IEC958 [IEC1724

IEC958]

Subdevices: 0/1 Subdevice #0: subdevice #0 card 0: T71Space [Terratec Aureon 7.1-Space], device 2: ICE1724 Surrounds [ICE1724 Surround PCM] Subdevices: 3/3 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2

Der Bezeichner des jeweiligen Anschlusses wird dementsprechend gebildet:

hw: (card),(device)

In obigem Beispiel wäre das Gerät 1 (IEC1724 IEC958) der gesuchte Digitalausgang. Der Bezeichner dafür lautet: hw:0,1

Falls in der Übersicht kein IEC958-Gerät angezeigt wird, sollte nach S/PDIV Ausschau gehalten werden.

Falls so kein digitales Tonausgabegerät gefunden wird, listet die folgende alternative Methode auch alle angeschlossenen ALSA-Geräte auf:

cat /proc/asound/devices

Beispiel:

cat /proc/asound/devices

0: [0]

: control

1:

: sequencer

16: [0- 2]: digital audio playback 17: [0- 1]: digital audio playback

24: [0- 0]: digital audio capture 25: [0- 0]: digital audio capture 26: [0- 0]: digital audio capture

Einer der markierten Einträge ist der gesuchte Ausgang. Welcher es ist, kann uns der Befehl aplay helfen. Dazu müssen nacheinander alle identifizieren Ausgänge mit einer kleinen Audiodatei (datei.wav) getestet werden. Der Eintrag, bei dem aus den Lautsprechern etwas ertönt, ist der gesuchte Anschluss.

aplay -D plughw:0,0 datei.wav aplay -D plughw:0,1 datei.wav

Bei mir passte 0,1. Der entsprechende Eintrag in der /var/lib/vdrdevel/setup.conf:

xineliboutput.Audio.Port = hw:0,1 xineliboutput.Audio.Speakers = Pass Through

Falls die Ausgabe des Stereo-Tons über die Soundkarte nicht funktioniert, die Ausgabe von Dolby-Digital-Tonsignalen hingegen problemlos ist, hilft eine Korrektur der Konfigurationsdatei fürs Xine-Plugin:

/home/ Benutzername /.xine/config_xineliboutput

Auszug:

 

audio.device.alsa_front_device:plug:iec958

audio.output.speaker_arrangement:Pass Through

Bei mir wird das Tonsignal von der Soundkarte via optisches Kabel (Toslink) zum AV-Receiver. Deshalb die Einstellung „Pass Through“. In der Datei findet man auch für die Konfiguration der Videoausgabe relevante Parameter. Für die meisten Anwendungen und wenn kein weiteren Probleme auftreten, reichen dort die Standardvorgaben. Mehr dazu in einem späteren Kapitel.

Hinweis:

Sollte vdr-sxfe als root (su) ausgeführt werden, so wird die Konfigurationsdatei:

/root/.xine/config_xineliboutput verwendet.

2.5.3 Platzprobleme auf der root-Partition

Falls die 4 GB-Standard root-Partition nicht ausreicht, kann mit dem Verzicht auf das automatisch installierte Open-Office-Paket wertvoller Plattenspeicher zurück gewonnen werden:

apt-get purge openoffice.org*

2.6 VDPAU-Unterstützung

Jetzt sollten die Kommentare aus der sources.list entfernt werden. Sie sieht dann folgendermaßen aus:

deb http://ftp2.de.debian.org/debian lenny main contrib non-free deb http://security.debian.org/ lenny/updates main contrib non-free deb http://www.debian-multimedia.org/ lenny main deb http://e-tobi.net/vdpau-xine1.1 lenny base backports vdr-multipatch deb http://e-tobi.net/vdpau-xine1.1-vdrdevel lenny base backports vdr-multipatch deb http://e-tobi.net/vdr-experimental lenny base addons vdr-multipatch deb http://e-tobi.net/vdrdevel-experimental lenny vdr-multipatch deb http://www.backports.org/debian lenny-backports main contrib non-free

2.6.1 Grafiktreiber

Bei SD-TV reicht zum Dekodieren und Darstellen des Fernsehbildes die Rechenleistung einer einfachen CPU (2 GHz Celeron) aus. Bei den Datenmengen von HD-TV stoßen selbst moderne DualCore-CPUs rasch an ihre Grenzen und das Bild kann nicht mehr fehlerfrei dargestellt werden. Deshalb empfiehlt es sich, die Rechenarbeit der Dekodierung von MPEG-Streams auf die Grafikkarte zu verlagern. NVIDIA hat dafür eigens die VDPAU (Video Decode and Presentation API for Unix) geschaffen.

Dazu müssen als erstes die NVIDIA-Treiber geholt werden. Im Dezember 2009 war gerade die Treiber-Version 190.53 herausgekommen.

a) Entweder direkt von NVIDIA

wget ftp://download.nvidia.com/XFree86/Linux-x86/190.53/NVIDIA-Linux-x86-190.53-

pkg1.run

Hier ein Beispiel mit der Installation des Original-Treiberpakets. Nach dem Herunterladen des ausführbaren Paketes müssen noch die entsprechenden Rechte der Datei übertragen werden. chmod u+x,g+x NVIDIA-Linux-x86-190.53-pkg1.run

Start der automatischen Treiber-Installation.

./NVIDIA-Linux-x86-190.53-pkg1.run

Der Treiber kann später mit dem Parameter --uninstall wieder deinstalliert werden.

b) oder über Tobis-Repository als debian-Pakete

apt-get install module-assistant nvidia-kernel-common module-assistant auto-install nvidia apt-get install nvidia-glx nvidia-settings nvidia-xconfig nvidia-xconfig

(danke an deepksky)

Weitere Infos, wie NVIDIA-Treiber mit Debian-Paketen installiert werden, kann hier nachgelesen werden: http://wiki.debian.org/NvidiaGraphicsDrivers

2.6.2

VDPAU-Bibliotheken

Zum Installieren der VDPAU-Bibliotheken folgende Kommandos eingeben:

apt-get update

apt-get upgrade (es sollte dabei auch das xineliboutput-sxfe aktualisiert werden)

apt-get install nvidia-libvdpau1-driver libxineliboutput-sxfe libxine1-all-plugins libxine1- gnome libxine1-vdpau-plugins

Zusammen mit diesen Paketen werden noch eine Reihe andere Bibliotheken automatisch mit installiert.

Wenn das Aktualisieren des xineliboutput-sxfe nicht funktioniert hat, sondern das Paket nur entfernt wurde, hilft vielleicht das:

apt-get install xineliboutput-sxfe libxine1-xvdr libxine1-ffmpeg libavcodec52 libdirac-

encoder0

Wenn das alles funktioniert hat, kannst Du im X-Terminal (unter Gnome) mit vdr-sxfe --video=vdpau --fullscreen oder von der Konsole xinit -e vdr-sxfe --video=vdpau --fullscreen das Fernsehbild ansehen.

Wenn unter Gnome im X-Terminal einige vo_vdpau: xxxxxx -Einträge zu erkennen sind, funktioniert die VDPAU Schnittstelle. Zur Vollständigkeit hier eine vollständige Ausgabe des vdr-sxfe nach dem Start:

sh-3.2$ vdr-sxfe --video=vdpau --fullscreen vdr-sxfe 1.0.90-cvs (build with xine-lib 1.1.17, using xine-lib 1.1.17)

Video driver: vdpau Fullscreen mode

VDR server not given, searching Found VDR server: host 127.0.0.1, port 37890

[14047] [vdr-fe]

GNOME screensaver disabled

vo_vdpau: vdpau API version : 1 vo_vdpau: vdpau implementation description : NVIDIA VDPAU Driver Shared Library

190.53 Tue Dec

8 20:50:02 PST 2009 Detected 2 CPUs Enabling FFmpeg multithreaded video decoding

[14047] [vdr-fe] [14047] [vdr-fe]

[14047] [input_vdr] Connecting (control) to tcp://127.0.0.1:37890 [14047] [input_vdr] Server greeting: VDR-1.7.11 xineliboutput-1.0.90-cvs READY [14047] [input_vdr] Connected (control) to tcp://127.0.0.1:37890

[14047] [input_vdr] Connecting (data) to

pipe:///var/lib/vdrdevel/plugins/xineliboutput/pipes.6608/pipe.0

[14047] [input_vdr] Data stream connected (PIPE) [14047] [input_vdr] using custom "no signal" image /usr/share/libxine1- xvdr/nosignal.mpg [14047] [demux_vdr] Using decoder "libmpeg2" for mpeg2 video [14047] [demux_vdr] Using decoder "FFmpeg" for H.264 video [14061] [demux_vdr] PMT changed

Press Esc to exit

vo_vdpau: deinterlace: none vo_vdpau: set_scaling_level=0 vo_vdpau: enabled features: inverse_telecine=0 vo_vdpau: disable noise reduction. vo_vdpau: disable sharpness. vo_vdpau: vdpau_update_csc: hue=0,000000, saturation=1,000000, contrast=1,000000, brightness=0,000000, color_standard=0

2.6.3

xorg.conf

Nachfolgend ist meine Konfiguration der /etc/X11/xorg.conf aufgelistet. Der zweite Monitor (Eizo) war nur zu Konfigurationszwecken während des Aufbaus angeschlossen.

Um manuell Änderungen an der xorg.conf vornehmen zu könnem, muss zuvor der Gnome Display-Manager mit /etc/init.d/gdm stop beendet werden.

Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" EndSection

Section "Files" EndSection

Section "Module" Load

"dbe"

Load

"extmod"

Load

"type1"

Load

"freetype"

Load EndSection

"glx"

Section "InputDevice"

Identifier

"Mouse0"

Driver

"mouse"

Option

"Protocol" "auto"

Option

"Device" "/dev/psaux"

Option

"Emulate3Buttons" "no"

Option

"ZAxisMapping" "4 5"

EndSection

Section "InputDevice"

Identifier

"Keyboard0"

Driver

"kbd"

Option

"XkbLayout" "de"

Option

"XkbModel" "pc105"

EndSection

Section "Monitor"

Identifier "Monitor0" VendorName "Philips"

ModelName

"PFL42-9703"

HorizSync

30.0 - 85.0

VertRefresh

48.0 - 66.0

Option

"DPMS"

ModeLine "1920x1080@50" 148.500 1920 2448 2492 2640 1080 1084 1089 1125

+hsync +vsync ModeLine "1920x1080@60" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync EndSection

Section "Monitor" Identifier VendorName ModelName HorizSync VertRefresh Option EndSection

VendorName ModelName HorizSync VertRefresh Option EndSection Section "Device" Identifier Driver VendorName Screen
VendorName ModelName HorizSync VertRefresh Option EndSection Section "Device" Identifier Driver VendorName Screen
VendorName ModelName HorizSync VertRefresh Option EndSection Section "Device" Identifier Driver VendorName Screen
VendorName ModelName HorizSync VertRefresh Option EndSection Section "Device" Identifier Driver VendorName Screen

Section "Device" Identifier Driver VendorName Screen EndSection

ModelName HorizSync VertRefresh Option EndSection Section "Device" Identifier Driver VendorName Screen EndSection
ModelName HorizSync VertRefresh Option EndSection Section "Device" Identifier Driver VendorName Screen EndSection

"Monitor1"

"Eizo"

"T553"

30.0 - 85.0 55.0 - 160.0 "DPMS"

"Device0"

"nvidia" "NVIDIA Corporation"

0

Section "Screen" Identifier

"Screen0"

Device

"Device0"

Monitor

"Monitor0"

DefaultDepth

24

SubSection

"Display"

Depth

24

Modes "1920x1080@50" "1920x1080@60"

EndSubSection

EndSection

2.7 HDTV mit VDRDevel

Als nächstes wird der aktuelle VDR in der Entwicklerversion geholt und installiert:

apt-get install vdrdevel vdrdevel-plugin-xineliboutput

Die während der Installation erscheinende Abfrage, ob statt dem VDR künftig der VDRDevel gestartet werden soll, ist mit JA zu beantworten.

Um VDR 1.7.x mit Fernbedienung oder Tastatur bedienen zu können, müssen folgende Zeilen an die Datei /etc/default/vdrdevel angefügt werden:

KEYB_TTY="/dev/tty8"

KEYB_TTY_SWITCH=1

Die Kanalliste mit einigen HD-Kanälen findet man im VDR-Portal z.B. hier

Die Tastenbelegung kann vom VDR 1.6.x übernommen werden. ln -sf /var/lib/vdr/remote.conf /var/lib/vdrdevel/

2.7.1 Channellist für HDTV

Die Kanalliste /var/lib/vdrdevel/channels.conf kann aus dem VDR-Wiki (zumindest

Für den Empfang von HDTV via ASTRA-Satellit ist hier eine aktuelle Kanalliste zu finden:

Die Kanalliste kann auch mit diversen Plugins, z.B. Wirbelscan selbst erstellt werden.

2.7.2 Einstellungen Xineliboutput-Plugin

In VDR-Plugin Xineliboutput sollte, je nach Bedarf, einige wesentliche Einstellungen vorge- nommen werden. Die Einstellungen werden über das VDR-Menü -> Eintellungen -> Plugins verändert. Der VDR speichert die Einstellung in seiner setup.conf.

Hier ein Auszug aus meiner /var/lib/vdrdevel/setup.conf.

xineliboutput.Audio.Compression = 100 xineliboutput.Audio.Delay = -120 xineliboutput.Audio.Headphone = 0 xineliboutput.Audio.SoftwareVolumeControl = 1 xineliboutput.Audio.Speakers = Pass Through xineliboutput.Audio.Surround = 0 xineliboutput.Audio.Upmix = 0 xineliboutput.OSD.AlphaCorrection = 0 xineliboutput.OSD.AlphaCorrectionAbs = 0 xineliboutput.OSD.Blending = 1 xineliboutput.OSD.BlendingLowRes = 1 xineliboutput.OSD.DvbSubtitles = 0 xineliboutput.OSD.ExtSubSize = -1 xineliboutput.OSD.Height = 1080 xineliboutput.OSD.HideMainMenu = 0 xineliboutput.OSD.LayersVisible = 4 xineliboutput.OSD.Scaling = 0 xineliboutput.OSD.Size = 1920x1080 xineliboutput.Post.denoise3d.chroma = 30 xineliboutput.Post.denoise3d.Enable = 0 xineliboutput.Post.denoise3d.luma = 40 xineliboutput.Post.denoise3d.time = 60 xineliboutput.Post.pp.Enable = 0 xineliboutput.Post.pp.Mode = de xineliboutput.Post.pp.Quality = 3 xineliboutput.Post.unsharp.chroma_amount = 0 xineliboutput.Post.unsharp.chroma_matrix_height = 3 xineliboutput.Post.unsharp.chroma_matrix_width = 3 xineliboutput.Post.unsharp.Enable = 0 xineliboutput.Post.unsharp.luma_amount = 0 xineliboutput.Post.unsharp.luma_matrix_height = 5 xineliboutput.Post.unsharp.luma_matrix_width = 5 xineliboutput.Video.AspectRatio = 3 xineliboutput.Video.AutoCrop = 1 xineliboutput.Video.AutoCrop.AutoDetect = 1 xineliboutput.Video.AutoCrop.DetectSubs = 1

xineliboutput.Video.AutoCrop.FixedSize = 1 xineliboutput.Video.AutoCrop.SoftStart = 1 xineliboutput.Video.Brightness = -1 xineliboutput.Video.Contrast = -1 xineliboutput.Video.Decoder.H264 = automatic xineliboutput.Video.Decoder.MPEG2 = automatic xineliboutput.Video.Deinterlace = tvtime xineliboutput.Video.DeinterlaceOptions =

method=Linear,cheap_mode=1,pulldown=none,framerate_mode=full,judder_correction=1,u

se_progressive_frame_flag=1,chroma_filter=0,enabled=1

xineliboutput.Video.HUE = -1 xineliboutput.Video.IBPTrickSpeed = 1 xineliboutput.Video.MaxTrickSpeed = 12 xineliboutput.Video.NoiseReduction = -1 xineliboutput.Video.Overscan = 0 xineliboutput.Video.Saturation = -1 xineliboutput.Video.Sharpness = -1 xineliboutput.Video.SwScale = 0 xineliboutput.Video.SwScale.Aspect = 0 xineliboutput.Video.SwScale.Downscale = 0 xineliboutput.Video.SwScale.Height = 1080 xineliboutput.Video.SwScale.Resize = 0 xineliboutput.Video.SwScale.Width = 1920

2.7.3 config_xineliboutput

Ergänzend zu Kap.2.5.2 werden hier nur die wichtigsten Einstellungen der /home/ Benutzername /.xine/config_xineliboutput aufgeführt. Die übrigen Parameter wurden auf ihren Standardwerten belassen:

audio.device.alsa_front_device:plug:iec958

audio.output.speaker_arrangement:Pass Through audio.synchronization.av_sync_method:resample

audio.synchronization.force_rate:48000

audio.synchronization.resample_mode:on

video.output.vdpau_display_queue_length:4

video.processing.ffmpeg_thread_count:2

engine.buffers.audio_num_buffers:250

engine.buffers.video_num_buffers:250 *)

engine.buffers.video_num_frames:22

*) Den Wert habe ich schon versuchsweise auf 1800 hoch gesetzt. Beim Start des VDR wird er immer wieder auf den „Standardwert“ 250 zurückgesetzt. Offensichtlich ist die 250 im Quellcode vom vdr-sxfe abgelegt. Im Forum kann man lesen, dass sich bereits mehrere Nutzer mit dem Thema beschäftigt haben, mit gleichem Erfolg.

3 Sonstige VDR-Erweiterungen

Wenn alles stabil läuft, können weitere wünschenswerte VDR-Plugins und Erweiterungen in- stalliert werden.

3.1 VDR-Plugins

3.1.1

VDR-Burn-Plugin

Zusammen mit dem Burn-Plugin sollte ProjectX installiert werden

apt-get install vdrdevel-plugin-burn project-X

Project-X benötigt ein Java von SUN (z.B. Java 1.6: Paket: sun-java6-jre). Mit GNU Java gcj-4.3 funktioniert es nicht.

apt-get install sun-java6-jre dann mit update-alternatives --config java Sun Java auswählen.

Im Setup des Burn-Plugins müssen jetzt nur noch als Demuxer: ProjektX und als Requantisierer: Transcode eingetragen werden.

Das Burn-Plugin versagt den Dienst, wenn Aufnahmen mit Untertitel gebrannt werden sollen. Das liegt an den Parameterübergaben an Project-X, da das Burn-Plugin im Menü noch keinen Ein/Ausschalter für Untertitel (Subtitles) hat.

Folgende Einstellungen in der project-x.ini helfen:

# ExportPanel

ExportPanel.Streamtype.Subpicture=0

ExportPanel.Streamtype.Teletext=0

ExportPanel.Streamtype.Vbi=0

# SubtitlePanel

SubtitlePanel.useTextOutline=0

Sollte bei einer Aufzeichnung die größer als 4,3 GB sind das Burn-Plugin mit einem Fehler abbrechen, so liegt es vermutlich am Paket Transcode (wird mit dem Burn-Plugin installiert) in dem das Werkzeug tcrequant fehlt. Im Repository http://debian-multimedia.org, das von Christian Marillat betreut wird, fehlt im aktuellen Paket transcode_1.1.5-03, das fürs Schrumpfen der Aufnahmen benötigte tcrequant. In der Vorgänger-Version 1.0.7-0.0 hingegen ist es noch vorhanden.

Als Work-Around habe ich aus dem alten Debian-Paket transcode_1.0.7-0.0_i386.deb das tcrequant entnommen und in das Verzeichnis /usr/bin kopiert. Seit dem funktioniert bei mir das Burn-Plugin auch mit Aufnahmen, die größer sind als 4,3 GB (danke an Martin für den Tipp).

Die Mitstreiter vom Ubuntu-Projekt haben bereits reagiert und in ihrer aktuellen Version das tcrequant wieder eingebaut. Vielleicht ist beim nächsten Release von debian das Problem hier auch behoben.

3.1.2

MarkAd-Plugin

Dieses Plugin ersetzt vorerst das bewährte NoAd-Addon. Da ab der VDR-Version 1.7.x das Dateiformat von PES- auf TS-Format umgestellt wurde, musste auch das Plugin angepasst, bzw. ersetzt werden. Das Plugin ist noch sehr jung, kann daher (noch) nicht ganz mit der Funktionsvielfalt und Verlässlichkeit des NoAd aufwarten.

Installiert wird es mit:

apt-get install vdrdevel-plugin-markad

Update:

Am 29. Januar hat Tobi eine aktuelle Fassung des NoAd 0.7 in sein NG-Repository gelegt. Offensichtlich tut sich bei NoAd doch noch etwas. Mal sehen wie gut es mit dem neuen TS- Format funktioniert.

3.1.3

MP3-Plugin

Diese Funktion kann inzwischen auch vom Xineliboutput-Plugin erledigt werden. Wer darauf nicht verzichten möchte, der kann diese weiterhin nutzen.

apt-get install vdrdevel-plugin-mp3

Ort der Konfigutationsdatei: /etc/vdrdevel/plugins/mp3sources.conf Um eigene Einträge ergänzen

/music;MP3-Server;0

/media/cdrom0;CDROM;1

/media/usb0;USB1;0

/media/usb1;USB2;0

/cdfs;Audio-CD;1;*.wav

3.1.4 MPlayer-Plugin

Obsolet, da diese Funktion das Xineliboutput-Plugin übernimmt.

3.1.5 Weitere Plugins

Nachfolgend eine Liste mit weiteren sinnvollen VDR-Plugins, die ich nutze:

vdrdevel-plugin-dvd vdrdevel-plugin-dvdswitch vdrdevel-plugin-chanorg vdrdevel-plugin-devstatus vdrdevel-plugin-mailbox vdrdevel-plugin-menuorg vdrdevel-plugin-nordlichtsepg vdrdevel-plugin-skinsoppalusikka (nutze ich nur während des Aufbaus) vdrdevel-plugin-sleeptimer vdrdevel-plugin-sysinfo

vdrdevel-plugin-text2skin

vdrdevel-plugin-vdrrip

vdrdevel-plugin-weatherng

vdrdevel-plugin-wirbelscan

vdrdevel-plugin-yaepghd (siehe auch das Kapitel hierzu)

 

3.2 Samba

3.2.1

Windows VDR

Für den Zugriff von Windows-Arbeitsplätzen auf die VDR-Aufnahmen (/var/lib/video.00) ist Samba ein bewährtes Paket. Dafür sind zunächst einige Einstellungen und die Bekanntgabe der Benutzer in Samba erforderlich.

groupadd smbgroup chgrp -R -v smbgroup /var/lib/video.00 chmod -Rv 664 /var/lib/video.00

chmod -Rv g+s /var/lib/video.00

nur Verzeichnisse brauchen Execute-Rechte find /var/lib/video.00/ -type d -exec chmod 775 {} \;

useradd -g smbgroup Benutzer smbpasswd -a Benutzer useradd -g smbgroup Benutzer2 smbpasswd -a Benutzer2

Die Samba-Konfigurationsdatei /etc/samba/smb.conf muss entsprechend angepasst werden:

security = user

#------------------------------------------

# Beispiel für share [video] path = /var/lib/video comment = VDR Aufnahmen public = yes writeable = yes browseable = yes valid users = @smbgroup create mode = 0774 directory mode = 0775 force create mode = 0774 force directory mode = 0775

3.2.2 VDR Windows

Wenn vom VDR auf Windows-Shares zugegriffen werden soll, ist das Paket smbfs apt-get install smbfs zu installieren

Mit dem Paket smbfs (neue Bezeichnung cifs) lassen sich bereits beim Systemstart via fstab Windows-Shares einhängen. Beispiel:

# /etc/fstab: static file system information.

# <file system> <mount point>

<type> <options>

<dump> <pass>

proc

/proc

proc

defaults

0

0

/dev/sda1

/

ext3

errors=remount-ro 0

 

1

/dev/sda6

/var/lib/video.00 ext3

swap

defaults

 

0

2

/dev/sda5

none

sw

0

0

/dev/scd0

/media/cdrom0

udf,iso9660 user,noauto

 

0

0

/dev/scd0

/cdfs

udf,cdfs user,noauto

0

0

//10.0.0.5/Music /music/ smbfs username=vdr,password=xyxy 0 0 //10.0.0.5/Filme /var/lib/video.00/filme smbfs username=vdr,password=xyxy 0 0

3.3

Automatisches Aufwachen des VDR

3.3.1

ACPI-Wakeup

Bei der Verwendung des ACPI-Wakeup ist zu beachten, dass die Systemzeit auf UTC eingestellt sein muss. apt-get update apt-get install vdr-addon-acpiwakeup

In der /etc/vdr/vdr-acpi-wakeup.conf sollte ACPI_ENABLED = "yes" stehen.

3.3.2 NVRAM-Wakeup

Das Gigabyte GA-EP31 Board unterstützt NVRAM-Wakeup. Trotz eingehender Tests und widersprüchlicher Internet-Recherche benötigt es einen Kernel-Reboot, damit die Aufweck- zeiten im BIOS eingetragen werden. Das Rebooten ist mir zu umständlich und ich entschied mich für ACPI.

Wer es dennoch einsetzten möchte, der installiert es so:

apt-get update apt-get install nvram-wakeup

In der Konfigurationsdatei /etc/vdr/ vdr-nvram-wakeup.conf sollten folgende Einträge stehen:

ENABLED="yes" COMMANDLINE="-C /etc/nvram-wakeup.conf --directisa" FORCE_REBOOT="yes" (ggf. je nach Mainboard)

3.4

Autostart von VDR-SXFE

3.4.1

GNOME: Automatische Anmeldung und VDR-Autostart (opt.)

Damit der VDR nicht nach dem Hochfahren bei Gnome-Anmeldebildschirm stehen bleibt, sind nachfolgende Einstellungen hilfreich.

In der /etc/gdm/custom.conf:

TimedLoginEnable=true TimedLogin=yourusername

TimedLoginDelay=0

Mit folgenden Einstellungen wird das Fernsehbild nach dem Start von Gnome automatisch angezeigt. In Gome einen neuen AutoStart-Eintrag erstellen. Dazu im Systemmenu:

"System -> Einstellungen -> Sitzungen" auswählen.

Name: VDR Befehlszeile: vdr-sxfe --video=vdpau --fullscreen --reconnect

Der Parameter --reconnect bewirkt ein automatisches Wiederverbinden des vdr-sxfe, auch wenn der VDR-Prozess mal hängt und neu gestartet werden muss.

3.4.2 Ohne Gnome

Wenn kein grafischer Display-Manager im Hintergrund erwünscht ist, kann der X-Server auch mit xinit gestartet werden (siehe weiter oben). Für den automatischen Start wird am sinnvollsten ein Startscript erstellt, in dem die entsprechende Befehlszeile untergebracht wird.

Beispiel für ein /usr/bin/vdrsxfe.sh

#!/bin/sh

#

#

startet den X-Server und die Ausgabe des VDR

/usr/bin/xinit -e /usr/bin/vdr-sxfe –-video=vdpau –-fullscreen --

reconnect

Jetzt muss nur noch das Script im richtigen Runlevel (meistens 2) gestartet werden. Entweder mit dem Tool im Kapitel (Runlevel-Editor) oder manuell.

ln -s /usr/bin/vdrsxfe.sh /etc/rc2.d/S30vdrsxfe.sh update-rc.d vdrsxfe start 30 2 . stop 30 0 6 .

3.5

Diverse Einstellungen

3.5.1

Runlevel-Editor (opt.)

Für das übersichtliche Bearbeiten der Runlevels auf der Konsole hat sich der Editor sysv-rc-conf bewährt. Damit hat man einen guten Überblick, welche Startscripte in welchem Runlevel gestartet/gestoppt werden

Installieren des Editors mit:

apt-get install sysv-rc-conf

Gestartet wird er dann mit:

sysv-rc-conf

3.5.2 Verhindern, das der VDR in tty8 startet (opt.)

Wird der VDR unter einem grafischen Desktop betrieben, wird nach einem Restart des VDR- Prozesses die Text-Konsole tty8 angezeigt. Um Gnome anzuzeigen, muss auf die grafische Konsole Strg-Alt-F7 umgeschaltet werden. Wem das zu unbequem ist, der kann das Umschalten auf tty8 beim Start des VDR ausschalten.

Dazu muss in dem VDR-Startscript /etc/init.d/vdr bzw. vdrdevel die Zeile mit dem Befehl chvt muss auskommentiert werden. Stattdessen kann eine einfache Ausgabe eingefügt werden.

# chvt `echo "$KEYB_TTY" | sed "s/\/dev\/tty//"`

echo -n "

finshed"

3.5.3 Nicht benötigte Dienste abschalten (opt.)

Folgende Dienste sind ggf. entbehrlich, werden jedoch standardmäßig gestartet. Mit dem Tool sysv-rc-conf kann ihr Start unterdrückt werden.

Name

Dienst

Gnome

gdm

Lpd

lpd

Mailserver Exim exim4

3.6

Grafik-LCD (opt.)

Für eine Statusanzeige des VDR mit Hilfe eines grafischen LCD (am Parallelport) wird normalerweise das Plugin folgendermaßen installiert:

apt-get install vdrdevel-plugin-graphlcd

Das Plugin fehlt derzeit noch in Tobis Repostory.

3.6.1 Selbstkompilieren des Plugins für VDRDevel

Zuerst muss die /etc/apt/sources.list ergänzt werden:

deb-src http://e-tobi.net/vdr-experimental lenny base addons vdr-multipatch deb-src http://e-tobi.net/vdrdevel-experimental lenny vdr-multipatch

Dann die Entwicklungsumgebung herstellen:

apt-get update apt-get install build-essential apt-get build-dep vdr apt-get install vdrdevel-dev apt-get install make-special-vdr fakeroot cdbs dpatch apt-get install libglcddrivers1-dev libglcdgraphics2-dev libfreetype6-dev

Dann die Quellen holen. Ich habe meine Sourcen von hier:

vdr-plugin-graphlcd_0.2.0-pre1~svn20091009-4tvt1.dsc

vdr-plugin-graphlcd_0.2.0-pre1~svn20091009-4tvt1.tar.gz

Herunterladen und kopieren nach /usr/src

Dann auspacken mit:

dpkg-source -x vdr-plugin-graphlcd_0.2.0-pre1~svn20091009-4tvt1.dsc

In das Verzeichnis /usr/src/vdr-plugin-graphlcd…

wechseln und

kompilieren des Paketes mit:

PATCHVARIANT=multipatch SPECIAL_VDR_SUFFIX=devel fakeroot dpkg-buildpackage -b -uc -tc -Rmake-special-vdr

Im Verzeichnis /usr/src sollte jetzt das Paket vdrdevel-plugin-graphlcd-0.2.0-pre1~svn20091009-4tvt1_i386.deb liegen

installieren des fertigen Paketes mit:

dpkg -i vdrdevel-plugin-graphlcd*.deb

und restart des VDR mit /etc/init.d/vdrdevel restart

3.6.2 Anpassung der Konfigurationsdateien

In dem folgenden Beispiel wird ein LCD mit 240x128 Pixel und Toshiba T6963C-Controller am Parallelport angeschlossen

/etc/graphlcd.conf

-c /etc/graphlcd.conf -d t6963c

/etc/vdrdevel/plugins/plugin.graphlcd.conf

[t6963c]

# t6963c driver

# This is a driver module for the Toshiba T6963C LCD controller.

# Default size: 240 x 128

Driver=t6963c

Port=0x378

#Device=/dev/parport0

Width=240

Height=128

UpsideDown=no Invert=yes

RefreshDisplay=1

# Wiring

# Select the type of wiring your display is connected with.

# Possible values: 'Standard', 'Windows', 'Serial'

# Default value: 'Standard' Wiring=Windows

# FontSelect

# Select the font width your display uses for text mode. In most cases

# this is selectable through one of the pins of your LCD board

# Possible values: '6', '8'

# Default value: '6'

FontSelect=6

# AutoMode

# Enables or disables the usage of T6963C's auto mode which doubles

# writing speed when enabled.

# Possible values: 'yes', 'no'

# Default value: 'yes' AutoMode=yes

# StatusCheck

# Enables or disables the usage of T6963C's status check. When using a

# shielded cable for connecting your display, the disabling may be

# possible. This results in doubling the speed of writing data to the

# LCD.

# Possible values: 'yes', 'no'

# Default value: 'yes' StatusCheck=yes

Wem die dargestellte Schrift auf dem LCD zu klein ist, der kann die die Größe in der Datei /etc/vdrdevel/plugins/graphlcd/fonts.conf ändern.

#

#

Change the font settings for the graphlcd plugin here.

#

For example font configurations see:

# /usr/share/doc/vdr-plugin-graphlcd/examples/fonts.conf.*

#

Large Font = fnt:verdana-018.fnt Normal Font = fnt:verdanab-013.fnt Small Font = fnt:verdanab-009.fnt

Symbol Font = fnt:sym11.fnt

3.6.3

Start/Stop-Logos

Reine Kosmetik, aber nett anzusehen!

3.6.3 Start/Stop-Logos Reine Kosmetik, aber nett anzusehen! Damit der VDR beim Booten und Shutdown solche Logos
3.6.3 Start/Stop-Logos Reine Kosmetik, aber nett anzusehen! Damit der VDR beim Booten und Shutdown solche Logos

Damit der VDR beim Booten und Shutdown solche Logos anzeigt, ist folgendermaßen vorzugehen.

zunächst mit apt-get install graphlcd-tools die notwendigen Tools (showpic) zum Anzeigen der Bilder installieren.

Die LCD-Logos für die Auflösungen (128x64 und 240x128) können hier heruntergeladen werden:

auspacken und in dem Verzeichnis usr/share/vdr-plugin-graphlcd/splash/ ablegen.

Script:

/usr/bin/glcdsplash.sh

#! /bin/sh

STARTLOGO=/usr/share/vdr-plugin-graphlcd/splash/vdr-starting_240x128

STOPLOGO=/usr/share/vdr-plugin-graphlcd/splash/vdr-shutdown_240x128

set -e

case "$1" in start) echo "Displaying Startlogo" /usr/bin/showpic -c /etc/graphlcd.conf -d t6963c -s 150\ $(ls $STARTLOGO/*.glcd) \ $(ls $STARTLOGO/*.glcd) \ $(ls $STARTLOGO/*.glcd) \ $(ls $STARTLOGO/*.glcd) &

;; stop) echo "Displaying Shutdownlogo" /usr/bin/showpic -c /etc/graphlcd.conf -d t6963c -s 650 $(ls $STOPLOGO/*.glcd) & ;;

esac

exit 0

Start-Logos Script: /usr/bin/glcdstart.sh

glcdsplash.sh start

dann in /etc/rcS.d den Link S02glcdstart.sh erstellen, der auf das Skript /usr/bin/glcdstart.sh zeigt.

ln -s /usr/bin/glcdstart.sh /etc/rcS.d/S02glcdstart.sh

Shutdown-Logos Script: /usr/bin/glcdstop.sh

glcdsplash.sh stop

In /etc/rc0.d und /etc/rc6.d symbolische Links K20glcdstop.sh anlegen, die auf das Skript /usr/bin/glcdstop.sh zeigen.

ln -s /usr/bin/glcdstop.sh /etc/rc0.d/K20glcdstop.sh ln -s /usr/bin/glcdstop.sh /etc/rc6.d/K20glcdstop.sh

3.6.4 FSCK beim Shutdown mit Logo

Alle ca. 30 Systemstarts wird normalerweise ein fsck während des Boot-Vorgangs durch- geführt. Diese Integritätsprüfung des Dateisystems dauert besonders bei großen Festplatten recht lange. Während dieser Zeit wird auf dem Monitor kein Fernsehbild ausgegeben und das LCD zeigt den Bootvorgang an. Dieser Zustand kann besonders bei technisch weniger versierten Nutzern zu Unverständnis und soll sogar schon zu Fehlbedienungen (z.B. Aus- und

Anschalten des VDR) geführt haben.

Statt beim Booten, könnte der fsck besser beim Shutdown durchgeführt werden, da stört er nicht. Bei der Gelegenheit wird der FileSystemCheck auf dem Graph-LCD angezeigt, damit man sich nicht wundert, warum die Kiste so lange braucht um herunterzufahren.

warum die Kiste so lange braucht um herunterzufahren. Idee für das Scri p t und Quelle

Idee für das Script und Quelle der Logos:

Erstellen des Scripts: /etc/init.d/fsck

#!/bin/bash

#

# Vorgezogener fsck, falls ein MountCount +1 = MaxMountCount

#

showpic=/usr/bin/showpic DrivesToCheck="/dev/sda1 /dev/sda6" GraphLcdConf=/etc/graphlcd.conf

GraphLcdType=t6963c

FsckSplashDir=/usr/share/vdr-plugin-graphlcd/splash/fsck

#wer das GraphLCD-Zeugs nicht braucht #kommentiert GraphLcdConf,GraphLcdType,

#FsckSplashDir,showpic und Zeile 30 aus

for HDD in $DrivesToCheck do

RunFsck="false" MountCount=`tune2fs -l $HDD | grep "Mount count" | cut -c 27-` echo "Mount Count from $HDD = $MountCount" MaxMountCount=`tune2fs -l $HDD | grep "Maximum mount count" | cut -c 27-` echo "Max Mount Count from $HDD = $MaxMountCount" let MountCountZahl=$MountCount+1 if [ $MountCountZahl -ge $MaxMountCount ] then RunFsck="true" echo "---Run fsck for $HDD is needed---" if [ $RunFsck == "true" ]; then touch /etc/mtab if [ $? -eq 0 ] then echo "---RootFS still mounted, skipping run of fsck on $HDD!!!---" else echo "---Now starting fsck on $HDD---" $showpic -c $GraphLcdConf -d $GraphLcdType -s 500 -e $(ls $FsckSplashDir/*.glcd)& STPID=$! fsck -C0 -y -f $HDD echo "---Filesystemcheck is done on $HDD---"

fi

fi else echo "---No Need to run fsck on $HDD---"

fi

done

Die Zeilen 6 - 9 müssen noch an die individuellen Gegebenheiten angepasst werden.

Datei speichern, ausführbar machen mit chmod a+x /etc/init.d/fsck

Das ganze wird mit einem symbolischen Link; entweder in /etc/rc0.d/ und/oder in /etc/rc6.d/ gestartet. Der Link muss nach dem umountfs-Kommando (hier /etc/rc0.d/S40umountfs) und nach dem umountrootfs (hier /etc/rc0.d/S60umountrootfs) und vor dem halt-Aufruf (hier

/etc/rc0.d/S90halt) erfolgen!

Beispiel:

ln -s /etc/init.d/fsck /etc/rc0.d/S65fsck

Zum Testen des Scriptes kann mit tune2fs -C29 /dev/sda1 der MountCount von sda1 auf 29 erhöht werden. (MaxMountCount meiner sda1 ist 30).

Wenn jetzt ein Shutdown erfolgt, wird vorher noch der fsck für die Root-Platte sda1 ausgeführt.

3.7.1 Paket kompilieren und bauen Zuerst sicherheitshalber ;-) apt-get update apt-get install build-essential apt-get

3.7.1 Paket kompilieren und bauen

Zuerst sicherheitshalber ;-) apt-get update apt-get install build-essential apt-get build-dep vdr apt-get install vdrdevel-dev make-special-vdr

bei mir waren diese Libs noch erforderlich:

apt-get install libmagick++-dev

Dann die Quellen holen. Ich habe meine Sourcen von hier:

extra vdr-plugin-yaepghd_0.0.1-7tvt1.dsc (914 bytes) vdr-plugin-yaepghd_0.0.1-7tvt1.tar.gz (61.6 KiB)

dpkg-source -x vdr-plugin-yaepghd_0.0.1-7tvt1.dsc

In das Verzeichnis /usr/src/vdr-plugin-yaepgh…

wechseln und

kompilieren des Paketes mit:

PATCHVARIANT=multipatch SPECIAL_VDR_SUFFIX=devel fakeroot dpkg-buildpackage -b -uc -tc -Rmake-special-vdr -d

Im Verzeichnis /usr/src sollte jetzt das Paket vdrdevel-plugin-yaepghd_0.0.1-7tvt1.deb liegen

installieren des fertigen Paketes mit:

dpkg -i vdrdevel-plugin-yaepghd*.deb

und restart des VDR mit /etc/init.d/vdrdevel restart

Siehe hierzu auch Theme-Paket vdr-plugin-yaepghd-pearlhd-theme im folgenden Kapitel.

3.8

PearlHD-Theme für Text2Skin (opt.)

Reine Kosmetik an der VDR-Oberfläche, sieht aber mit großen HDTVs richtig gut aus. Leider fehlt das Theme in Tobis Experimental-Repositorys, im NG-Repository hat er es schon aufgenommen.

im NG-R epository hat er es schon aufgenommen. 3.8.1 Pakete von Tobis NG-Repository Pakete manuell holen:

3.8.1 Pakete von Tobis NG-Repository

Pakete manuell holen:

wget http://e-tobi.net/vdr-ng-experimental/pool-lenny/binary/addons/vdr-skin-

pearlhd_0.0.9.git20100117-1_all.deb

und installieren mit:

dpkg -i vdr-skin-pearlhd_0.0.9*.deb

Danach kontrollieren, ob der Skin PearlHD auch im vdrdevel-Pfad /var/lib/vdrdevel/plugins/text2skin/ angelegt wurde. Die Themen-Dateien (PearlHD- xxxx.theme) sind im Pfad /var/lib/vdrdevel/themes/ zu finden.

Es fehlt noch der TrueTypeFont mit den typischen VDR-Symbolen.

wget http://e-tobi.net/vdr-ng-experimental/pool-lenny/binary/addons/ttf-vdrsymbols_2008.09.05-

1_all.deb

Installieren des Fonts mit:

dpkg -i ttf-vdrsymbols_2008.09.05*.deb

Der Font wird im Pfad /usr/share/fonts zu finden sein. Wenn das funktioniert hat, geht’s im übernächsten Kapitel weiter. Das folgende Kapitel beschreibt eine Alternative, die nur dann in Betracht kommt, wenn die vorgenannten Befehle nicht zum gewünschten Erfolg geführt haben.

Dann die Quellen holen. Ich habe meine Sourcen von der Ubuntu-Fraktion hier:

vdr-skin-pearlhd_0.0.10~git20100110-1tvt2.dsc (1.2 KiB) vdr-skin-pearlhd_0.0.10~git20100110-1tvt2.tar.gz (363.4 KiB)

vdr-plugin-yaepghd-pearlhd-theme_0.0.10~git20100110-1tvt2_all.deb

dpkg-source -x vdr vdr-skin-pearlhd_0.0.10~git20100110-1tvt2.dsc

In das Verzeichnis /usr/src/vdr-skin-pearlhd…

wechseln und

kompilieren des Paketes mit:

PATCHVARIANT=multipatch SPECIAL_VDR_SUFFIX=devel fakeroot dpkg-buildpackage -b -uc -tc -Rmake-special-vdr -d

Im Verzeichnis /usr/src sollte jetzt das Paket vdrdevel-skin-pearlhd_0.0.10~git20100110-1tvt2.deb liegen

Installieren des fertigen Paketes mit:

dpkg -i vdrdevel-skin-pearlhd*.deb

und dann das Pearl-Theme fürs YAEPGHD-Plugin noch installieren. dpkg -i vdr-plugin-yaepghd-pearlhd-theme*.deb

3.8.3

Konfiguration

Bevor der VDR neu gestartet wird, müssen ggf. ein paar Veränderungen an der setup.conf vorgenommen werden:

/var/lib/vdrdevel/setup.conf

OSDAspect = 1,000000 OSDHeight = 1080 OSDHeightP = 1,000000 OSDLanguage = de_DE OSDLeft = 0 OSDLeftP = 0,000000 OSDSkin = PearlHD OSDTop = 0 OSDTopP = 0,000000 OSDWidth = 1920 OSDWidthP = 1,000000 ShowReplayMode = 1 xine.osdExtent.X = 1920 xine.osdExtent.Y = 1080 xine.osdMode = osdBlendScaledAuto xine.transparencyMode = transparencyOn xineliboutput.OSD.Size = 1920x1080 xineliboutput.OSD.SoftOSD = 1

- ENDE -