Hermann Czedik-Eysenberg

Media Center PC

Inhalt

Update 15. Jänner 2010

Nicht mehr alle Informationen auf dieser Seite sind aktuell. Inzwischen verwende ich als Betriebssystem für meinen Media-Center-PC Mythbuntu 9.10. Das ist eine Linux-Distribution bei der MythTV schon automatisch mitinstalliert wird. Einige Schritte in dieser Anleitung entfallen daher.

Einleitung

Mein Sommerprojekt 2007 ist die Konstruktion eines Media Centers.
Zuvor habe ich mir Anforderungen überlegt, die es erfüllen soll:

  • im Wohnzimmer und direkt an den Fernseher angeschlossen
  • über eine Fernsteuerung kontrollierbar
  • Empfang von (digitalem) Satellitenfernsehen (DVB-S)
  • Österreich Tauglichkeit: Entschlüsselung von ORF und ATV (die über Satellit nur verschlüsselt ausgestrahlt werden)
  • Teletext
  • Unterstützung für mehrere Audiospuren (z.B. der ORF sendet manche Sendungen im Zweikanalton)
  • Aufnahme von Sendungen auf die Festplatte, wobei während einer Aufnahme auch noch ein weiteres Programm angesehen werden kann
  • Timeshifting: Das LiveTV kann angehalten, zurück-, und wieder vorgespult werden. Das soll auch funktionieren, während eine Aufnahme läuft.
  • Aufnahmen können schon, auch während sie noch laufen, (zeitversetzt) angesehen werden.
  • Fernprogrammierung von Aufnahmen aus der Ferne (über eine Web-Oberfläche)
  • Wiedergabe von DVDs
  • Brennen von Aufnahmen auf DVD
  • die Möglichkeit auch andere Videos (z.B. aus dem Internet heruntergeladene) wiederzugeben

Es gibt sehr viele Lösungen, die viele dieser Anforderungen erfüllen. Nach langem Überlegen und Recherchieren habe ich mich für eine Linux-Lösung (Kubuntu) mit der Media-Center-Software MythTV entschieden.
MythTV bietet gegenüber anderen Lösungen (Windows Media Center Edition, fertige Sat-Harddisk-SetTop-Boxen) einige Vorteile:

  • DVD-Rippen möglich
  • Werbepausen können automatisch erkannt und übersprungen werden
  • Video-Schnitt-Möglichkeiten
  • Video-Streaming auf (andere) PCs
  • jegliche vorstellbare Linux-Software kann installiert und verwendet werden (z.B. Spiele oder ein Karaoke-Programm)
  • MythTV-Software ist komplett Open Source und wird ständig weiterentwickelt (und jeder kann mitmachen!)
  • es gibt zahlreiche Plugins um die Funktionalität zu erweitern
  • die Entwicklung wurde 2002 gestartet, es sollte inzwischen also ziemlich ausgereift sein
  • bereit für HDTV (wenn man die passenden TV-Tuner dazu hat)

Hardware

Bei der Auswahl der Hardware wurde ich von der Firma i-design aus Perchtoldsdorf beraten. Da der Computer, wie gesagt, im Wohnzimmer steht, sollte der Betrieb möglichst leise und stromsparend sein. Leider machen diese Anforderungen das ganze System auch sehr teuer. Ich musste also Teile auswählen, die meinem bescheidenem Studenten-Budget entsprechen und trotzdem möglichst leise sind:

Antec P150-430 LowNoise, Midi, mit Netzteil 430W

Media Center Gehäuse sehen zwar sehr schick aus, sind aber auch entsprechend teuer. Deswegen habe ich mich für diesen schallreduzierten Midi-Tower entschieden.

Fujitsu-Siemens D2438-A, i975X Chipset, Gbit LAN on-board

Dieses Premium Motherboard für Intel Core 2 Prozessoren soll eine ausgezeichnete Lüftersteuerung unterstützen (die Lüfterdrehzahl wird bei niedriger Belastung des Prozessors durch Pulswellenmodulation verringert). Außerdem bietet es 4 PCI-Slots, die ich für TV-Tuner nützen kann.

Intel Core 2 Duo E4400 Sockel-775 boxed, 2x 2.00GHz, 200MHz FSB, 2MB shared Cache

Der Dual-Core Prozessor sollte das gleichzeitige Dekodieren von zwei TV-Programmen ohne Probleme möglich machen. Eine Kühler ist bei der boxed-Version auch dabei.

2x PowerRAM DDR2-SDRAM 512 MB, 667 Mhz, 533 MHz kompatibel

Insgesamt 1GB RAM sollte hoffentlich ausreichend sein.

ASUS Extreme GeForce 7300 GT, 256MB DDR2, DVI, TV-out, PCIe (passiv gekühlt)

Grafikkarten mit Nvidia-Chipset sind mit Linux sehr gut kompatibel. Der TV-Ausgang ist natürlich auch wichtig. Außerdem ist diese Karte passiv gekühlt; sie verursacht also keinen zusätzlichen Lärm.

Samsung SpinPoint T166 500GB 16MB SATA II

Eine schön große Festplatte für die Aufnahmen.

LG Electronics DVD-Brenner GSA-H42N

DVD-Brenner, der mit allen DVD- und CD-Formaten zurechtkommt (DVD+-R(W)(-DL), CD-R(W))

Diskettenlaufwerk TEAC 1,44 MB 3,5", mit integr. 7in1 Kartenleser

Ein Diskettenlaufwerk ist eigentlich keine Anforderung, aber dieses beinhaltet einen 7in1 Kartenleser. Damit kann ich dann z.B. Fotos direkt vom Speicherchip meiner Digitalkamera am Fernseher anzeigen.

Funktastatur und Funkmaus

Damit kann ich auch bequem auf der Couch sitzend am Media Center arbeiten (wenn die Fernsteuerung mal doch nicht ganz ausreicht).

2x Technotrend Budget S-1500 DVB-S-Tuner inkl. Fernbedienung

Die Auswahl der TV-Tuner war schwierig, da nicht alle unter Linux perfekt funktionieren. Die Technotrend Budget 1500-Reihe ist aber kompatibel und bietet auch die Möglichkeit zur Erweiterung mit einem CI-Modul (zur Entschlüsselung). Sie ist übrigens baugleich mit den Nova-S-Tunern von Hauppauge (zumindest manche Versionen).
Ich benötige zwei Tuner um die oben beschriebene Anforderung, dass ein Programm aufgenommen werden kann, während ich gleichzeitig ein anderes ansehe, zu erfüllen.
Eine Fernsteuerung ist auch gleich dabei (da ich zwei Tuner nehme, habe ich eine in Reserve) und diese ist auch für Linux einrichtbar.

2x Technotrend Common Interface für Budget-S/C/T-1500

Die CI-Erweiterung der Tuner ermöglicht die Aufnahme von CI-Entschlüsselungsmodulen und ist die Voraussetzung um (legal) ORF (und PayTV) anzusehen.

2x Cryptoworks CI-Modul + ORF-Karte

Das Decryptor-Modul steckt man in die CI-Erweiterung des TV-Tuner (und die ORF-Karte wiederrum in das Decryptor-Modul). ORF-Entschlüsselungskarten sind für ein relativ geringes Entgeld für österreichische ORF-Gebühren-Zahler erhältlich (und auch für ATV geeignet).
Leider muss ich zwei Entschlüsselungs-Module nehmen, da ich auch zwei ORF/ATV-Sendungen gleichzeitig aufnehmen (bzw. eine aufnehmen und eine andere ansehen) können möchte.

All diese Teile habe ich heute (30. Juni 2007) bestellt und warte nun sehnsüchtig darauf, sie zusammenzubauen und die Software zu installieren. Wenn es so weit ist, werde ich an dieser Stelle mein weiteres Projekt beschreiben.

Assembling

Der Zusammenbau der Einzelteile lief eigentlich relativ problemlos. D.h. es ist mir keine Ecke vom Prozessor abgebrochen oder ähnliches. :-)
Die Anleitungen der Komponenten waren alle sehr gut, deswegen will ich diesen Teil hier nicht weiter beschreiben. Das BIOS hat beim ersten Hochfahren die Meldung angezeigt, dass ich einen BIOS-Patch für die CPU installieren soll. Ein BIOS-Update für mein Mainboard habe ich nicht gefunden; ein Intel Microcode Update von der Fujitsu-Siemens-Seite hat dieses Problem jedoch behoben.

Linux Installation

Als Betriebssystem möchte ich Kubuntu Linux einsetzen. Warum gerade Kubuntu? Nunja, Kubuntu ist fast identisch zu Ubuntu Linux, nur statt Gnome wird KDE als graphische Desktopumgegbung verwendet.
Ubuntu (und damit auch Kubuntu) ist für mich eine gute Wahl, weil es derzeit sehr beliebt ist. Es gibt also viele Anleitungen und hilfsbereite Benutzer im Internet, wenn man mal Probleme hat. Außerdem bietet die Distribution meiner Meinung nach einen guten Mix aus Stabilität, aktuellen Softwarepaketen und Benutzerfreundlichkeit.
Und warum KDE statt Gnome? Die eingesetzte Desktopumgebung ist eigentlich für das Media Center relativ egal, da die meiste Zeit sowieso MythTV im Vollbildmodus laufen wird. Sinnvoll wäre vielleicht sogar der Einsatz einer ressourcensparenderen graphischen Oberfläche (da gäbe es sogar auch Ubuntu-Varianten: Fluxbuntu mit Fluxbox und Xubuntu mit XFCE). Die Kubuntu-Installations-CD habe ich jedoch bereits und ich denke, dass mein zusammengestellter Rechner auch damit keine Probleme haben wird (weil er ausreichend Hauptspeicher hat).
Aber die ursprüngliche Frage warum ich KDE lieber als Gnome verwende, habe ich damit noch immer nicht beantwortet. Das ist eine Geschmackssache und jeder muss selbst herausfinden, was ihm mehr zusagt. Ehrlichgesagt habe ich noch nicht sehr viel Erfahrung mit Gnome. KDE bietet, soweit ich das überblicken kann, einfach mehr Anpassungs- und Personalisierungsmöglichkeiten. Gnome sieht dafür attraktiver aus und mit weniger Einstellungsmöglichkeiten kann man auch weniger kaputt machen. In dieser Hinsicht ist KDE ähnlicher wie Windows, Gnome entspricht eher MacOS X.

So, genug geschwafelt, nun zur eigentlichen Installation:
Dieser Text bezieht sich auf Kubuntu 7.04 ("Feisty Fawn"), die derzeit aktuelle Version (zumindest während ich das schreibe).
Ich habe die PC (Intel x86) Desktop CD Version heruntergeladen, eingelegt und den PC damit gebootet. Es startet die graphische Oberfläche, auf der ich nur mehr auf das "Install"-Icon klicken muss, um die wirklich einfache Installation zu starten.

Bei der Partitionierung wähle ich "Manuell" und entscheide mich für folgende Platteneinteilung: Eine 12 GB EXT3 Partition für das System, eine 1 GB Linux-Swap-Partition, weitere 12 GB lasse ich frei (falls ich in Zukunft ein zweites Betriebssystem parallel installieren will) und der Rest wird eine große Partition für Aufnahmen und Videos. Als Dateisystem dafür verwende ich XFS, da das in der MythTV-Dokumentation empfohlen wird.

Der "schwierigste" Teil der Installation war jedoch die Eingabe des Computernamens. Dazu musste zuerst eine Familienkonferenz einberufen werden. Nach stundenlangen Überlegungen und unzähligen Vorschlägen haben wir uns schlussendlich für "MrBeam" entschieden. Diesen Namen muss man dann z.B. im Webbrowser eingeben um auf die Weboberfläche von MythTV zuzugreifen.

Nachdem die Installation abgeschlossen ist, starte ich neu und das Media Center startet zum ersten mal in sein neues Betriebssystem.

Als erstes bringe ich die Software auf den neuesten Stand. Dazu führe ich in einer Konsole hintereinander die folgenden Befehle aus:
sudo apt-get update
sudo apt-get dist-upgrade
Natürlich könnte ich dafür auch das graphische Programm Adept Updater verwenden.

Statische IP-Adresse

Da das Media Center ja auch als Server (Web, Streaming) im lokalen Netzwerk arbeiten soll, bekommt es eine statische IP-Adresse. Diese muss in der Datei /etc/network/interfaces eingetragen werden. Bei mir sieht die Konfiguration so aus:
## LAN interface
auto eth0
iface eth0 inet static
    address 192.168.0.7
    netmask 255.255.255.0
    gateway 192.168.0.1
Genauere Informationen finden sich unter Interfaces im ubuntuusers.de-Wiki (das übrigens sehr viele nützliche Anleitungen bietet).

SSH

Um das Systen auch von meinem Arbeitscomputer administrieren zu können, installiere ich den OpenSSH-Server:
sudo apt-get install ssh
Nun kann ich mich von jedem Computer, auf dem ein SSH-Klient (gibt es auch für Windows: PuTTY) installiert ist, zu MrBeam verbinden. Auf meinem Arbeitscomputer läuft auch Linux, dort geht das ganz einfach:
ssh USER@mrbeam
USER steht für den Benutzer, den ich bei der Kubuntu-Installation eingerichtet habe. Damit mein Arbeitscomputer den Namen "mrbeam" kennt, habe ich die (zuvor statisch fixierte) IP-Adresse in die Datei /etc/hosts eingetragen.

Grafikkarten Treiber

Um gute Unterstützung (TV-out, 3D) für die Grafikkarte zu erhalten, installiere ich die Nvidia-Treiber:
sudo apt-get install nvidia-glx-new
sudo nvidia-xconfig
Danach muss man den Computer (bzw. zumindest den XServer) neu starten. Weitere Information finden sich unter Nvidia-Grafikkarten im ubuntuusers.de-Wiki.

Multimedia

Standardmäßig unterstützt Ubuntu nicht viele Multimedia-Formate. Ich installiere daher folgende Pakete dazu:
sudo apt-get install libxine-main1 libxvidcore4 libxine-extracodecs
sudo apt-get install libquicktime0 libk3b2-mp3
Zusätzliche noch folgende Video-Player/Encoder:
sudo apt-get install mplayer mencoder ffmpeg vlc
Außerdem benötige ich noch w32codecs (zur Wiedergabe von Micosoft-Videos) und libdvdcss (zum Abspielen von DVDs). Die Pakete finden sich jedoch nicht in den offiziellen Ubuntu-Quellen. Deswegen füge ich zu /etc/apt/sources.list folgendes Repository hinzu:
## Seveas' Ubuntu Packages (libdvdcss, w32codecs)
deb http://mirror.ubuntulinux.nl feisty-seveas extras
Dann muss noch der Key (mit dem die Pakete signiert sind) installiert werden:
wget http://mirror.ubuntulinux.nl/Seveas.gpg -O- | sudo apt-key add -
Und nun:
sudo apt-get update
sudo apt-get install w32codecs libdvdcss
Weitere Information dazu gibt es unter Codecs im ubuntuusers-Wiki und Multimedia in der Ubuntu Community-Dokumentation.

Firefox

Als Webbrowser benutze ich lieber Firefox als Konqueror (der standardmäßig bei Kubuntu dabei ist). Dabei installiere ich auch gleich das Flash-Plugin:
sudo apt-get install firefox flashplugin-nonfree

MythTV Installation

Das Installieren von MythTV geht ganz einfach:
sudo apt-get install mythtv mythtv-themes

Plugins

Wie schon erwähnt gibt es für MythTV einige nützliche Plugins. Ich installiere vorerst diese (eh fast alle im Ubuntu Repository vorhandenen):
sudo apt-get install mytharchive mythbrowser mythdvd
sudo apt-get install mythnews mythvideo mythweather mythweb
Um alle Packages anzuzeigen, die mit MythTV zu tun haben, kann man übrigens
apt-cache search myth
verwenden. Oder man sucht in Adept (grafischer APT-Klient).

Im MythTV-Wiki findet man Informationen zu weiteren Plugins.

MySQL

Mit MythTV wird auch automatisch MySQL als Datenbankserver installiert. Wenn man MythTV in einem Netzwerk mit mehreren Frontends nützen will, muss man dafür sorgen dass MySQL nicht nur vom lokalen Rechner Verbindungen annimmt.
(Hinweis: In der nächsten (K)Ubuntu Version 7.10 "Gutsy Gibbon" kann diese Konfiguration automatisch bei der Installation von MythTV vorgenommen werden.)
Dazu muss man die Zeile
bind-address = 127.0.0.1
in der Datei /etc/mysql/my.cnf so auskommentieren:
#bind-address = 127.0.0.1
Außerdem muss der Remote Zugriff in der Datenbank aktiviert werden. Die MySQL Konsole aufrufen:
mysql -u root mythconverg
und dort folgendes eingeben:
grant all on mythconverg.* to mythtv@"%" identified by "mythtv";
flush privileges;
Hinweis: Wenn der Computer aus dem Internet zugreifbar ist (offene Ports), dann kann nun auch jeder die Datenbank verändern. Auf jeden Fall sollte man ein MySQL-root-Passwort setzen:
mysqladmin -u root password GEHEIM
GEHEIM ist durch das Passwort zu ersetzen.

Quellen: Garry Parker's MythTV Ubuntu Guide und MySQL-Kapitel in der MythTV Dokumentation.

Zur Administrierung der Datenbank will ich die Weboberfläche phpmyadmin verwenden:
sudo apt-get install phpmyadmin

Webserver

Der Webserver (Apache) ist eigentlich schon fertig eingerichtet. Um auf MythWeb zuzugreifen ruft man einfach http://IP_ODER_HOSTNAME/mythweb/ auf (das geht aber erst, wenn MythTV fertig konfiguriert ist); phpmyadmin ist unter http://IP_ODER_HOSTNAME/phpmyadmin/ erreichbar.
Wenn der Webserver auch aus dem Internet zugreifbar ist (bzw. sein soll), muss (zumindest) MythWeb gesichert werden. Informationen dazu findet man auf der Seite MythWeb im MythTV-Wiki.
Hinweis: In der nächsten (K)Ubuntu Version 7.10 "Gutsy Gibbon" kann diese Sicherung automatisch bei der Installation von MythTV vorgenommen werden.

TV-Tuner

Inzwischen habe ich auch die TV-Tuner und Entschlüsselungsmodule (samt ORF-Karten) eingebaut. Die Ausgabe von
grep -i dvb /var/log/messages
sieht bei mir so aus:
saa7146: register extension 'budget_ci dvb'.
DVB: registering new adapter (TT-Budget/S-1500 PCI).
input: Budget-CI dvb ir receiver saa7146 (0) as /class/input/input4
DVB: registering frontend 0 (ST STV0299 DVB-S)...
DVB: registering new adapter (TT-Budget/S-1500 PCI).
input: Budget-CI dvb ir receiver saa7146 (1) as /class/input/input5
DVB: registering frontend 1 (ST STV0299 DVB-S)...
dvb_ca adapter 0: DVB CAM detected and initialised successfully
dvb_ca adapter 1: DVB CAM detected and initialised successfully
Die TV-Karten (inklusive den Infrarot-Empfängern für die Fernbedienung) und die Entschlüsselungsmodule (DVB CAM) wurden korrekt erkannt, ohne dass ich irgendwelche Treiber installieren musste. Cool!

TV-Tuner testen

Zum schnellen Testen der TV-Tuner verwende ich Kaffeine (den Standard Kubuntu-Video-Player). Direkt nach dem Start (aus dem K-Menü unter Multimedia) zeigt er mir einen Dialog an um die beiden DVB-Geräte einzurichten. Als Satellit stelle ich bei beiden "Astra-19.2E" ein.
Im Menü unter DVB klicke ich auf "Kanäle" und starte den Sendersuchlauf. Klappt wunderbar! Er findet hunderte von Sendern; ein paar davon wähle ich aus und füge sie in die Senderliste ein. Dann klicke ich im Hauptfenster auf "Digitales Fernsehen" und das Fernsehbild wird angezeigt. Sogar das Entschlüsseln des ORF funktioniert!

MythTV Konfiguration

Nun kann ich beginnen MythTV einzurichten. Als erstes starte ich myth-setup (in der Konsole oder aus K-Menü/MythTV Backend Setup). Ich gehe hier nicht auf alle Einstellungen, die ich vorgenommen habe, ein, sondern nur auf die wichtigsten. Mehr dazu gibt es im MythTV-Manual.

Allgemeines

Unter "Allgemeines" stelle ich als "Verzeichnis für Aufnahmen" /media/storage/recordings ein (wobei ich bei der Installation von Kubuntu aktiviert habe, dass die große Datenpartition unter /media/storage/ gemountet wird). Das Verzeichnis recordings in /media/storage/ habe ich zuvor angelegt und die passenden Rechte gesetzt (das MythTV-Backend läuft unter dem Benutzer mythtv):
sudo mkdir /media/storage/recordings
sudo chown mythtv:mythtv /media/storage/recordings/
sudo chmod g+ws /media/storage/recordings/
Als TV-Norm wähle ich "PAL", unter VBI-Norm stelle ich "PAL Teletext" ein. Tabelle der Senderfrequenzen setze ich auf "europe-west".

TV-Karten

Unter "TV-Karten" wähle ich "Neue TV-Karte". Kartentyp setze ich auf "DVB DTV TV-Karte", Kartennummer auf 0. Diesen Vorgang wiederhole ich für die 2. Karte mit der Kartennummer 1.
Wichtig: Für beide Karten müssen auch die DiSEqC-Einstellungen durchgeführt werden. Ich habe LNB und dann "Universal (Europe)" ausgewählt.

Videoquellen

Unter "Videoquellen" bestimmt man die Quellen der Programmvorschaudaten. Ich erstelle vorerst eine Quelle, bei der ich kein XMLTV-Skript, sondern "Transmitted guide only (EIT)" auswähle. Es werden also die Daten verwendet, die über DVB-S mit den Sendern mitgeschickt werden.

Verknüpfungen

Unter "Verknüpfungen" kann man nun die TV-Tuner mit der zuvor definierten Videoquelle verbinden. Wenn sie mit der gleichen Videoquelle verknüpft sind, bedeutet dass für MythTV auch automatisch, dass sie dieselbe Sendertabelle haben und es egal ist welcher Tuner für eine Aufnahme verwendet wird. Die Option "Nur unverschlüsselte Sender" deaktiviere ich, damit auch ORF und ATV gefunden werden.

Sender bearbeiten

Unter "Sender bearbeiten" starte ich nun den Sendersuchlauf. Ich wähle "Vollständiger Scan (Tuned)", wobei man jedoch zuerst einen bekannten Transponder von Astra einstellen muss. Ich gebe folgende Daten ein:
Frequenz: 12551500
Polarisierung: vertikal
Symbolrate: 22000000

Mit der Suche nach Sendern auf diesem Transponder werden auch automatisch die anderen (verlinkten) Transponder in der Datenbank gespeichert. Danach kann ich also einen erneuten Sendersuchlauf durchführen und wähle diesmal "vollst. Scan aller bekannten Transponder". Danach sind alle Sender in der Sendertabelle eingetragen.

Falls dieser Suchlauf Probleme macht, kann auch mit dem Tool scan, das im Paket dvb-utils enthalten ist, eine channels.conf Datei erstellt werden, die dann von MythTV eingelesen wird. Das geht (für Astra) so (Mythbackend muss zuerst gestoppt werden, da sonst die TV-Tuner blockiert sind):
sudo /etc/init.d/mythtv-backend stop
scan /usr/share/doc/dvb-utils/examples/scan/dvb-s/Astra-19.2E > ~/channels.conf
sudo /etc/init.d/mythtv-backend start
Diese Datei wird dann im MythTV-Setup unter Sendersuchlauf mit der Option "channels.conf einlesen" in die MythTV-Datenbank übertragen.

Aufgrund der großen Anzahl von Sendern, die über Astra ausgestrahlt werden, ist die Umsortierung der Kanäle in der MythTV-GUI sehr unpraktisch. Ich bevorzuge es die Sendertabelle (channel) der MythTV-Datenbank (mythconverg) über phpmyadmin direkt zu bearbeiten. Es ist auch möglich die Sendereigenschaften in MythWeb relativ komfortabel zu ändern.

MythTV verwenden

Wenn das MythTV-Setup abgeschlossen ist, kann das MythTV-Frontend (KMenü/Multimedia/) gestartet werden. Die Anleitung zum "Daily Use" in der MythTV-Dokumentation habe ich schon genau studiert und ich spiele nun einfach ein bisschen damit herum.

Folgende nützliche Einstellungen im Frontend möchte ich noch erwähnen (es gibt noch viel mehr und ein Durchlesen der Dokumentation und Herumprobieren kann ich nur jedem empfehlen).
Alle Einstellungen werden unter "Zubehör/Konfiguration" vorgenommen:

Themes

Das Standard-Design finde ich nicht besonders schön, deswegen stelle ich unter Erscheinungsbild als Theme "Retro" ein. Das OSD-Theme (On Screen Display) wird getrennt unter "TV/Wiedergabe" (auf einer Unterseite) eingestellt. Dort wähle ich auch "Retro".

Aufnahme-Pufferzeiten

Damit Aufnahmen auch sicher komplett sind (die angegebenen Zeiten der Sender stimmen ja oft nicht ganz genau) stelle ich einen vorzeitigen Aufnahmestart und ein späteres Ende unter "TV/Allgemeines" (auf einer der Folgeseiten) ein. Diese Zeiten werden dann automatisch an jede programmierte Aufnahme angehängt.

XvMC

Nvidia-Grafikkarten unterstützen X-Video Motion Compensation, das die CPU beim Dekodieren von MPEG2-Videos entlastet. Ich aktiviere "Standard XvMC" unter "TV/Wiedergabe/Bevorzugter MPEG2 Dekoder".

Fernsteuerung

Um die Fernsteuerung zu betreiben muss LIRC installiert werden.
sudo apt-get install lirc
Der Infrarot-Receiver der Fernbedienung wird automatisch als Input-Device unter /dev/input/ angelegt. Um zu wissen welches Device das richtige ist kann folgendes Kommando verwendet werden:
less /proc/bus/input/devices
Die Ausgabe sieht bei mir unter anderem so aus:
...

I: Bus=0001 Vendor=13c2 Product=1017 Version=0001
N: Name="Budget-CI dvb ir receiver saa7146 (0)"
P: Phys=pci-0000:09:05.0/ir0
S: Sysfs=/devices/pci0000:00/0000:00:1e.0/0000:09:05.0/input/input5
U: Uniq=
H: Handlers=kbd event5
B: EV=100003
B: KEY=40fc010 20206100000000 0 8000 418080002001 9e168000000000 ffc

...
Die wichtige Information ist event5. Wir wissen also das der IR-Receiver als /dev/input/event5 ansprechbar ist. Die LIRC-Konfigurationsdateien habe ich daher wie folgt angepasst bzw. angelegt:

  • /etc/lirc/hardware.conf
    Hier muss der richtige Zugriffspunkt (bei mir /dev/input/event5) eingetragen werden.
  • /etc/lirc/lircd.conf
  • ~/.lircrc
    Hier habe ich bestimmt wie die Knöpfe der Fernbedienung in Tastenanschläge (die dann MythTV und jedes andere Programm ganz normal wie die Anschläge auf der Tastatur interpretiert) übersetzt werden. Die Datei muss je nach Bedarf (welche Funktionen in MythTV durch die Fernbedienungstasten gesteuert werden sollen) angepasst werden.
  • /usr/share/lirc/remotes/devinput/lircd.conf.devinput
    Diese Datei sollte bei der Lirc-Installation bereits so installiert worden sein. Ich biete sie hier sicherheitshalber trotzdem zum Download an.

Nach der Konfiguration muss LIRC neu gestartet werden:

sudo /etc/init.d/lirc restart
Die eigentliche Konfiguration der Fernbedienung liegt in der Datei ~/.lircrc. Dort werden die einzelnen Fernbedienungsknöpfe zu Tastenanschlägen im X-Server umgewandelt. Damit das funktioniert muss das Tool irxevent im Hintergrund gestartet sein:
DISPLAY=:0.0 irxevent &
Nach einem Reboot muss das Tool neu gestartet werden. Ich habe es daher in den KDE-Autostart gelegt.

Tipp: Nach einem Neustart kann sich der Zugriffspunkt des IR-Receivers (bei mir /etc/input/event5) verändern und muss dann auch in der Datei /etc/lirc/hardware.conf angepasst werden. Man kann daher das Device "statisch" machen, d.h. einen symbolischen Link (Symlink) auf den jeweils aktuellen Zugriffspunkt automatisch von udev anlegen lassen. Weitere Informationen dazu finden sich unter http://www.parker1.co.uk/mythtv_tips.php unter "Make the LIRC Device Static". Bei mir habe ich dazu eine udev-Regel unter /etc/udev/rules.d/irremote.rules angelegt, mit folgendem Inhalt:

SUBSYSTEM=="input", ATTRS{phys}=="pci-0000:09:05.0/ir0", SYMLINK+="input/irremote"
Achtung: ATTRS{phys}=="pci-0000:09:05.0/ir0" gilt nur bei mir und muss angepasst werden. Weitere Informationen finden sich auf der verlinkten Seite.

Tipps & Tricks

Automatische KDE-Anmeldung & MythTV automatisch starten

Ich möchte, dass mein Media Center nach dem Einschalten automatisch MythTV startet.
Dazu aktiviere ich zuerst die automatische Anmeldung in KDE. Im KMenü unter Systemeinstellungen findet man im Reiter Advanced (Erweitert) den Punkt "Anmeldungsmanager". Dort aktiviere ich "automatische Anmeldung erlauben" unter Vereinfachung (nachdem ich in den "Systemadministratormodus" gewechselt bin).

Dann sorge ich noch dafür, dass MythTV-Frontend nach dem Login automatisch aufgerufen wird. Dazu kopiere ich den MythTV-Frontend Eintrag aus KMenü/Multimedia (z.B. mit Drag & Drop) in das Verzeichnis ~/.kde/Autostart/ ("~" steht für das Home-Verzeichnis des aktuellen Benutzers). Dort sollte dann eine Datei mit der Endung ".desktop" liegen.

Datenbank-Backup

Ein regelmäßiges Backup der MythTV-Datenbank kann nicht schaden. Außerdem wird in der MythTV-Dokumentation (unter Periodic_Maintenance) empfohlen die Datenbank täglich zu optimieren. Um solche täglichen Aufgaben zu erledigen habe ich das Script maintenance.sh geschrieben:
#!/bin/sh

LOG="/tmp/mythtv_maintenance.log"
DB_OPTIMIZE_SCRIPT="/usr/share/doc/mythtv-backend/contrib/optimize_mythdb.pl"
DB_BACKUP_SCRIPT="/home/tv/scripts/db_backup.sh"

echo "`date` started $DB_OPTIMIZE_SCRIPT" >> $LOG
$DB_OPTIMIZE_SCRIPT >> $LOG
echo "`date` finished $DB_OPTIMIZE_SCRIPT" >> $LOG

echo >> $LOG

echo "`date` started $DB_BACKUP_SCRIPT" >> $LOG
$DB_BACKUP_SCRIPT >> $LOG
echo "`date` finished $DB_BACKUP_SCRIPT" >> $LOG

echo >> $LOG
Das darin aufgerufene Script db_backup.sh sieht so aus:
#!/bin/sh

# Dumps the mythconverg database - daily backup
# keep the last 7 days

DAY="$(/bin/date +%u)"
DUMPFILE="/home/tv/db_backup/mythdb_$DAY.sql.bz2"
echo "saving $DUMPFILE"
mysqldump -u mythtv --password=PWD mythconverg -c | bzip2 -cq9 > $DUMPFILE
Außerdem wird das Script optimize_mythdb.pl, das mit MythTV mitgeliefert wird aufgerufen. Dieses muss möglicherweise zuerst entpackt und ausführbar gemacht werden:
gunzip /usr/share/doc/mythtv-backend/contrib/optimize_mythdb.pl.gz
sudo chmod +x /usr/share/doc/mythtv-backend/contrib/optimize_mythdb.pl
Mein Maintenance-Script aktiviere ich nun als täglichen Cronjob (dazu wird ein symbolischer Link im Verzeichnis /etc/cron.daily/ angelegt):
sudo ln -s /home/tv/scripts/maintenance.sh /etc/cron.daily/myth_maintenance
Wichtiger Hinweis: Der Name des Links (bei mir "myth_maintenance") in /etc/cron.daily/ darf keinen Punkt beinhalten (und sonst auch keine Sonderzeichen, außer Unterstrich und Bindestrich), sonst wird das Skript nicht ausgeführt.

Mythbackend Abstürze abfangen

Es ist niemals ausgeschlossen, dass mythbackend abstürzt. Das hat zur Folge, dass keine Aufnahmen mehr gestartet werden, was ja sehr schade wäre. Deshalb habe ich ein Skript mbe.keepup.sh übernommen/adaptiert, dass kontrolliert ob mythbackend noch läuft und es gegebenenfalls neu startet:
#!/bin/bash

LOGFILE="/tmp/mythbackend.restarts.log"
PIDFILE="/var/run/mythtv/mythbackend.pid"
INITSCRIPT="/etc/init.d/mythtv-backend"

# make sure the backend stays up
if $(ps -e | grep -q [m]ythbackend)
then
  echo "Mythbackend is up"
else
  if [ -e $PIDFILE ]
  then
    echo "`date` $1: restarting" >> $LOGFILE
    $INITSCRIPT restart
  else
    echo "`date` $1: not restarting (stopped by user)" >> $LOGFILE
    echo "Mythbackend was stopped by user"
  fi
fi

Wenn mythbackend nicht läuft, die Datei /var/run/mythtv/mythbackend.pid aber schon existiert, dann ist der Prozess abgestürzt und wird neu gestartet. Natürlich funktioniert das nur, wenn das init-Script (/etc/init.d/mythtv-backend) diese pid-Datei beim Starten anlegt und beim (gewolltem) Stoppen wieder löscht. (Unter Ubuntu ist das standardmäßig so.)

Ich füge diese Zeile in der Datei /etc/crontab ein, damit das Skript alle drei Minuten aufgerufen wird:
*/3 *   * * *   root    /home/tv/scripts/mbe.keepup.sh

Hinweis: Das Skript und auch kein anderer Prozess, der auf dem System läuft, dürfen im Namen "mythbackend" beinhalten (außer natürlich das echte mythbackend). Sonst wird das Skript immer glauben, dass mythbackend noch läuft. Um auszuprobieren, wie viele Prozesse mit "mythbackend" im Namen laufen, kann man ps -e | grep [m]ythbackend in der Konsole ausführen.

Quelle: Das Originalskript habe ich von diesem Tutorial (8.9 Making sure the mythbackend stays up) übernommen.