Diese Seite beschreibt den Aufbau meiner Linux-Multimedia-Box. Das Gerät dient in erster Linie als DVB-T-Empfänger und Multimedia-Zertrale zum Abspielen von Audio- und Video-Dateien. Es hat mittlerweile die gute alte Glotze, den VHS-Videorekorder und (zum Teil) die Stereoanlage ersetzt, ist aber kein hochauflösendes, überdimensionales, Mehrkanal-tönendes Ungetüm.
Dieses voluminöse Aluminium-Case im Standard-ATX-Format bietet Platz für maximal sieben PCI-Karten, zwei 3,5''-Festplatten und ein 5 1/4''-Laufwerk. In der Front sitzt bei mir ein (optional erhältliches) Modul mit VFD-Display und IR-Empfänger, dazu gehört eine Infrarot-Fernbedienung. Das Modul wird normalerweise an die internen USB-Steckerleiste des Motherboards angeschlossen. Da mein Motherboard allerdings keinen internen USB-Anschluss besitzt, mußte ich eine Steckerleiste an die Pins des externen USB-Anschlusses am Motherboard löten. Dies war zwar etwas fummelig, funktioniert aber einwandfrei.
Unter dem (transparenten) Start-Knopf der Fernbedienung klebt normalerweise ein kleines Windows-Logo. Als VDR-Nutzer konnte ich dies natürlich nicht so lassen und habe den Kleber gegen ein Linux-Logo ausgetauscht.
Am Markt gibt es zwar eine ganze Reihe von Mini ITX-Gehäusen für Wohnzimmer-PCs. Allerdings haben diese einige Nachteile: Mini ITX-Mainboards besitzen standardmäßig (also ohne Riser Card usw.) nur einen PCI-Slot, der teilweise nur mit Karten halber Bauhöhe bestückt werden kann, die Gehäuse bieten in aller Regel nur Platz für maximal eine 3,5''-Festplatte (teilweise nur eine 2,5''-Platte). Ein weiteres Problem ist die Wärmeabfuhr aus dem engen Gehäuse. Und nicht zuletzt sind die ITX-Mainboards verhältnismäßig teuer.
Im Allgemeinen wird für die DVB-Wiedergabe unter Linux eine Full-Featured-Karte (mit Hardware-MPEG-Decoder und analogem TV-Ausgang) empfohlen. Allerdings gibt es für DVB-T nur ein einziges, nicht mehr hergestelltes Modell, welches zudem nicht alle DVB-T-Frequenzbereiche empfangen kann (TechnoTrend Premium DVB-T, siehe vdr-wiki.de). Da Budget-Karten i.A. auch um einiges billiger als Full-Featured-Karten sind, habe ich mich gegen eine Full-Featured-Karte entschieden. Hat man nun keine Full-Featured-DVB-Karte und auch keine Grafikkarte mit TV-Ausgang zur Verfügung, bleibt für die Video-Ausgabe nur mehr der Monitor-Ausgang übrig. Da ich allerdings ohnehin keinen TV, sondern einen "normalen" Computer-Monitor für die Video-Ausgabe verwende, spielt diese Einschränung keine Rolle.
Ohne Full-Featured-Karte oder sonstige Hardware-Unterstützung muss der Prozessor den MPEG-Datenstrom selbst decodieren. Empfohlen wird in diesem Fall ein Prozessor mit mindestens 1 GHz.
Die Darstellung von DVB-T mit Xine und Xv-Output ist ruckelfrei und erzeugt eine CPU-Last von ca. 70%. Allerdings ruckelt das Bild etwas bei gleichzeitiger Anzeige des OSD (Bildschirm-Menü) und beim Kanalwechsel, dies läßt sich aber verschmerzen.
Getestet habe ich auch einen Intel Celeron-Prozessor mit 633 MHz. Bei der reinen Darstellung von DVB-T hat sich dieser nicht schlechter geschlagen als der 900er. Allerdings war das Ruckeln mit OSD und beim Kanalwechsel doch etwas stärker, außerdem reagierten die Menüs des VDR etwas langsamer.
Der auf dem Motherboard befindliche Intel i810-Chipsatz bringt mit XvMC (XVideo Motion Compensation) eine einfache Hardware-Unterstützung für die Decodierung von MPEG-Daten mit. Allerdings habe ich XvMC nicht dazu gebracht, für eine aktzeptable Bildqualität oder eine merkliche Entlastung der CPU zu sorgen (siehe unten).
USB Keyboard Support oder ähnlich). Bei mir hat der Bootloader GRUB ansonsten die Zusammenarbeit verweigert.
Die Grafik-Ausgabe erfolgt lokal unter X11 mit dem Xineliboutput-Plugin für den VDR über den Multimedia-Player Xine, genauer gesagt über dessen Multimedia-Bibliothek Xine-Lib (libxine1).
Obwohl Xine prinzipiell auch im Framebuffer-Mode läuft, weigert er sich, auf meiner Hardware über Framebuffer irgendwas auszugeben. Unter X11 läuft er einwandfrei.
Gleich vorneweg: Mit dem Plugin vdr-plugin-xineliboutput habe ich noch ein paar Probleme (siehe Bekannte Probleme), daher verwende ich für den alltäglichen Betrieb noch die ältere Installation mit vdr-plugin-xine.
jigdo herunterladen (ausführliche Anleitung):linux:# apt-get install jigdo-filejigdo-File und jigdo-Template herunterladenlinux:# jigdo-lite debian-31r2-i386-binary-1.jigdodebian-31r2-i386-binary-1.iso auf CD brennen/etc/apt/sources.list und /etc/apt/preferences anpassen
apt-get update && apt-get dist-upgrade
apt-get install Paketname nachinstallieren
/dev/hda1 1 GB - swap Virtueller Speicher /dev/hda2 10 GB / ext3 Installation 1 /dev/hda3 10 GB / ext3 Installation 2 (Test) /dev/hda4 Rest /var/lib/data ext3 DatenDamit habe ich die Möglichkeit, auf
/dev/hda2 und /dev/hda3 zwei getrennte Systeme zu installieren, was für Tests und zur Wiederherstellung einer zerschossenen Installation recht praktisch ist./dev/hda4. Um ein paar GB Platz zu sparen macht es für diese Partition Sinn, sie mit der Option -m 1 zu formatieren (siehe man mkfs.ext3).
Folgende Kommandos verhindern, dass beim Systemstart ein fsck ausgeführt wird:
vdr:# tune2fs -c 0 /dev/hda2 vdr:# tune2fs -c 0 /dev/hda3 vdr:# tune2fs -c 0 /dev/hda4 vdr:# tune2fs -i 0 /dev/hda2 vdr:# tune2fs -i 0 /dev/hda3 vdr:# tune2fs -i 0 /dev/hda4Natürlich sollte man dann
fsck /dev/hdaX -- -f gelegentlich manuell starten.
Um ein minimales Debian-System zu erhalten, wird einfach im Dialog Debian Software Auswahl (aus der Liste Desktop-Umgebung, Web-Server usw.) nichts ausgewählt. Der Basiskonfigurations-Dialog kann übrigens jederzeit mit base-config wieder aufgerufen werden.
Die Auswahl der Paket-Quellen ist alles andere als einfach. Nach einigen Versuchen mit verschiedenen Debian-Releases (hier meine erste Installation mit Debian Sarge), Paketen von zap.tartarus.org und Einträgen in /etc/apt/apt.conf (siehe man apt.conf) habe ich mich für folgende Quellen-Kombination entschieden:
libdvdcss2 zur Wiedergabe von verschlüsselten DVDs. Details zur Technik und den rechtlichen Aspekten dieser Bibliothek findet man in der Wikipedia.
/etc/apt/sources.list anzulegen. Die Einträge in /etc/apt/preferences stellen sicher, dass die Pakete von e-tobi.net auch dann verwendet werden, wenn es in Debian Sid eine neuere Version des selben Paketes gibt (siehe man apt_preferences).
Die Kommandos
vdr:# apt-get update vdr:# apt-get dist-upgradebringen Paket-Index und System auf den neuesten Software-Stand von Sid. Danach werden X11 mit Xdm/Twm (einfacher X Display bzw. Window Manager), Alsa, VDR mit Xineliboutput-Plugin und dazugehörigen Paketen sowie einige praktische Tools installiert, gefolgt vom 2.6er-Kernel von Debian Sid:
vdr:# apt-get install x-window-system-core x-window-system xserver-xorg xdm twm vdr:# apt-get install alsa-utils vdr:# apt-get install vdr vdr-plugin-xineliboutput libxine-xvdr libxine1 libxineliboutput-sxfe vdr:# apt-get install linux-image-2.6-686 vdr:# apt-get install xine-ui vdr:# apt-get install dvb-utils dvbstream vdr:# apt-get install vim unzip hdparm hddtemp rsync
xine-ui, das Standard-Frontend (User-Interface) von Xine, sowie die Pakete dvb-utils und dvbstream werden zwar nicht direkt für den VDR benötigt, eignen sich aber sehr gut zur Fehlersuche und für Tests von DVB. Die Pakete der letzten Zeile sind manchmal recht nützlich, haben aber nichts mit dem VDR zu tun.
Nach Installation dieser Pakete können ggf. nicht mehr benötigte Pakete gelöscht werden. Vor dem Entfernen des 2.4er-Kernels muss das System mit dem 2.6er-Kernel gebootet werden.
vdr:# dpkg --purge hotplug vdr:# apt-get remove --purge kernel-image-2.4.27-2-386 vdr:# apt-get remove --purge nviDie DVB-T-Karte wird zwar ab Kernel 2.6.10 automatisch erkannt. Allerdings muss das DVB-Modul noch manuell nachgeladen werden:
vdr:# modprobe dvb-bt8xx vdr:# echo dvb-bt8xx >> /etc/modules
/etc/X11/xorg.conf) sollten die Zeilen
Section "ServerFlags" Option "AllowMouseOpenFail" EndSectionnicht fehlen, ansonsten startet er nicht ohne Maus und Tastatur.
vdr:# alsaconf vdr:# alsamixer vdr:# alsactl store
alsaconf richtet ALSA auf dem System ein. Auf meinem System wurde die Soundkarte automatisch erkannt. Die Dialoge sind weitgehend selbsterklärend, im Zweifel einfach die Standardeinstellungen beibehalten.
Der alsamixer hilft bei der Einstellung der gewünschten Lautstärke(n). alsactl store speichert die eingestellten Werte in die Datei /var/lib/alsa/asound.state. Der Inhalt der Datei ist ebenfalls recht selbsterklärend. Die Master-Lautstärke wird z.B. im Bereich
control.2 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 63'
iface MIXER
name 'Master Playback Volume'
value.0 63
value.1 63
}
festgelegt. Nach einem Neustart des Systems werden diese Einstellungen nun automatisch gesetzt.
tzap und dvbstream:Die Kommandos
vdr:# mkdir -p ~/.tzap/ vdr:# scan /usr/share/doc/dvb-utils/examples/scan/dvb-t/de-Muenchen > ~/.tzap/channels.confgenerieren, DVB-Empfang vorausgesetzt, die
channels.conf für tzap. Vor dem Aufruf muss VDR ggf. mit /etc/init.d/vdr stop beendet werden./usr/share/doc/dvb-utils/examples/scan/ keine passende Frequenztabelle auffindbar sein, findet man sie wahrscheinlich im CVS: http://www.linuxtv.org/cgi-bin/viewcvs.cgi/dvb-apps/util/scan/.
In der Datei ~/.tzap/channels.conf sollten nun alle gefundenen Sender eingetragen sein. Der Eintrag für den Sender VOX schaut in München z.B. so aus:
VOX:578000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:545:546:16418Mit
vdr:# tzap VOXwird die DVB-Karte auf den Sender VOX eingestellt. Die Video- und Audio-Daten lassen sich nun mit einem der beiden (z.B. in einer zweiten Shell) parallel zu startenden Kommandos
vdr:# dvbstream -o -ps -qam 16 -cr 1_2 545 546 | xine stdin:/ vdr:# dvbstream -o -ps -qam 16 -cr 1_2 545 546 > VOX.mpegmit Xine darstellen bzw. in eine MPEG-Datei ausgeben. Die Kommando-Parameter entnimmt man der entsprechende Zeile aus der
~/.tzap/channels.conf. Achtung: Die channels.conf von tzap hat ein anderes Format als die vom VDR.
Ist bis hier alles OK geht's an die Konfiguration von VDR.
/var/lib/vdr/ und /etc/vdr/, VDR-Logmeldungen stehen standardmäßig in /var/log/messages. In der Datei /etc/default/vdr können einige Start-Parameter für den VDR angepaßt werden. Ansonsten wird VDR bequem über das OSD konfiguriert. Dort kann man u.a. auch festlegen, dass VDR die Systemzeit über das DVB-Zeitsignal setzt.
Der VDR benötigt für den Empfang prinzipiell nur die richtige channels.conf unter /var/lib/vdr/. Diese kann man einfach von vdr-wiki.de herunterladen (DVB-T) oder z.B. von Kanotix übernehmen. Da er in meinem Fall aber auch Bild- und Ton selbst lokal ausgeben muss sowie sonstige Multimedia-Dienste zu leisten hat sind noch einige Anpassungen nötig:
Zum Ersten muss der User vdr auf die Audio- und Video-Devices sowie auf das CD/DVD-Laufwerk zugreifen können. Dazu wird er in die entsprechenden Gruppen (siehe /etc/group) aufgenommen:
vdr:# usermod -G audio,video,cdrom vdrZum Zweiten muss dem Xineliboutput-Plugin (genauere Beschreibung siehe weiter unten) noch "mitgeteilt" werden, wo es das VDR-Bild ausgeben soll, und zwar lokal unter X11. Dazu dienen folgende Einträge in der Datei
/etc/vdr/plugins/plugin.xineliboutput.conf:
--local=sxfe --display=:0.0Der lokal laufende X-Server (Display 0) muss dann noch vom angemeldeten User für X-Verbindungen vom lokalen Rechner aus freigeschalten werden,
vdr:$ xhost + local:erst dann kann der VDR von
root gestartet werden:
vdr:# /etc/init.d/vdr startFalls alles glatt gelaufen ist erscheint nun ein Fenster mit dem VDR-Bild. Beim ersten Start springt der VDR automatisch ins Menü zum Lernen der Tasten-Codes für die Tastatur-Steuerung. Die Codes werden in die Datei
/var/lib/vdr/remote.conf geschrieben (Zeilen beginnend mit XKeySym) und können dort bei Bedarf manuell nachbearbeitet werden.
apt-cache search vdr-plugin an. Installiert werden die Plugins wie gewohnt mit apt-get install Plugin-Name. Konfiguriert werden sie über das OSD von VDR - diese Einstellungen werden dann in /var/lib/vdr/setup.conf abgelegt - oder in den Dateien unter /etc/vdr/plugins/.
Folgende Plugins habe ich aktuell in Verwendung:
vdr-plugin-xineliboutputvdr-plugin-xine verwendet (hier die alte Beschreibung dazu). vdr-plugin-xineliboutput ist allerdings mächtiger, einfacher zu handhaben und braucht weniger CPU-Leistung. Es bringt nicht nur verschiedene Ausgabemöglichkeiten mit, sondern auch einen integrierten Multimedia-Player für Filme, DVDs, Musik und Bilder. Allerdings ist der Player noch nicht so ganz ausgereift, daher habe ich für Bilder und Musik noch die entsprechenden separaten Plugins installiert.
Zu Xineliboutput-Plugin gehören insgesamt sechs Debian-Binärpakete:
vdr-plugin-xineliboutput: Das eigentliche Plugin für den VDR. Ohne weitere Pakete kann das Plugin die VDR-Ausgabe nur übers Netz bereitstellen.
libxine-xvdr: Stellt ein Plugin für die Xine-Lib libxine1 zur Verfügung, mit welchem die Ausgabe von vdr-plugin-xineliboutput decodiert und (über ein beliebiges Xine-Frontend) angezeigt werden kann, z.B. mit xine "xvdr://127.0.0.1#nocache;demux:mpeg_block".
libxineliboutput-fbfe: Dieses Paket stellt eine Bibliothek für vdr-plugin-xineliboutput zur lokalen Anzeige des VDR-Bildes über Framebuffer bereit (unter Verwendung von libxine1 mit libxine-xvdr).
libxineliboutput-sxfe: Dieses Paket stellt eine Bibliothek für vdr-plugin-xineliboutput zur Ausgabe des VDR-Bildes auf einen X-Server bereit.
xineliboutput-fbfe: Stellt ein einfaches Xine-Frontend (vdr-fbfe) bereit, welches übers Netz auf einen VDR-Server mit installiertem vdr-plugin-xineliboutput-Plugin zugreift und das VDR-Bild dann am Client über Framebuffer anzeigt (z.B. mit vdr-fbfe "xvdr://10.9.8.7").
xineliboutput-sxfe: Entsprechend xineliboutput-fbfe, nur mit Ausgabe über X11 (vdr-sxfe).
/etc/vdr/plugins/plugin.xineliboutput.conf, wird neben einigen anderen Optionen festgelegt, welche Ausgabemöglichkeiten genutzt werden. Die Kommandos für die Tastatursteuerung werden in /var/lib/vdr/remote.conf abgelegt. Die Client-Frontends haben ihrerseits eine eigene Konfigurationsdatei, ~/.xine/config_xineliboutput.
vdr-plugin-mp3
Für die Wiedergabe Audio-CDs wird das Dateisystem bzw. Kernel-Modul cdfs benötigt, welches leider nicht Bestandteil des offiziellen Kernels ist und daher selbst kompiliert werden muss.
Für das Kompilieren von Kernel-Modulen werden auf dem Rechner ggf. ein paar zusätzliche Pakete sowie die Quellen des aktuell installierten Kernels (hier 2.6.17) benötigt:
vdr:# apt-get install linux-source-2.6.17 kernel-package libncurses5-dev vdr:# cd /usr/src/ vdr:# tar -xvjf linux-source-2.6.17.tar.bz2 vdr:# cd /usr/src/linux-source-2.6.17/ vdr:# cp /boot/config-2.6.17-2-686 .configDa keine speziellen Einstellungen für den Kompiliervorgang benötigt werden, kann die Standard-Konfigurationsdatei des installierten Kernels (
/boot/config-2.6.17-2-686) einfach übernommen werden. Mit dem Kommando make menuconfig kann man diese bei Bedarf bearbeiten.
Das Modul wird dann übersetzt und installiert mit:
vdr:# apt-get install cdfs-src vdr:# cd /usr/src/ vdr:# tar -xvjf cdfs.tar.bz2 vdr:# cd /usr/src/linux-source-2.6.17/ vdr:# dpkg --list | grep linux-image-2.6.17 ii linux-image-2.6.17-2-686 2.6.17-9 Linux kernel 2.6.17 image on PPro/Celeron/PII/PIII/ vdr:# make-kpkg --append-to-version=-2-686 --initrd --revision=2.6.17-9 kernel_image vdr:# make-kpkg --append-to-version=-2-686 --revision=2.6.17-9 modules_imageDer ganze Kernel muss eigentlich nur kompiliert werden (Befehl
make-kpkg ... kernel_image), um dem Kernel-Modul die zum Kernel passenden Versionsinformationen mitzugeben (Datei Module.symvers). Das Modul funktioniert auch ohne diesen Schritt, beim Kompilieren und Laden des Moduls erscheinen aber Warnungen über die fehlende Versionsnummer.--append-to-version=-2-686 sorgt dafür, dass die Module später im richtigen Verzeichnis unter /lib/modules/ landen.
Das Debian-Binärpaket cdfs kann dann installiert werden mit:
vdr:# dpkg --install /usr/src/cdfs-2.6.17-2-686_2.4.20.a+2.6.12-2+2.6.17-9_i386.debMit
cdfs können nun Audio-CDs direkt ins Dateisystem gemountet werden:
vdr:# mount -o ro -t cdfs /dev/cdrom /mnt/Unter
/mnt/ liegen nun die Audio-Tracks auf der CD als WAV-Dateien. Das MP3-Plugin kann diese Funktion nutzen, sobald folgende Schritte gemacht sind:
vdr:# cd /media/ vdr:# mkdir cdfs0 vdr:# ln -s cdfs0 cdfsEinträge in
/etc/fstab:
/dev/hdb /media/cdfs0 cdfs ro,user,noauto 0 0und
/etc/vdr/plugins/mp3sources.conf:
/media/cdfs0;CD-Audio;1;*.wav /media/cdrom0;CDROM;1
vdr-plugin-imagevdr-plugin-osdteletextDie Installation von der mitgelieferten CD erfolgt mit
vdr:# mount /dev/cdrom vdr:# cd /media/cdrom/IR\ Trans vdr:# sh install.shunter
/usr/local/irtrans/. Einige der dort installierten Dateien habe ich durch neuere Versionen von irtrans.de ersetzt. Im Verzeichnis remotes/ befinden sich die Definitionen der Tasten-Codes von verschiedenen Fernsteuerungen. Mit
vdr:# cd /usr/local/irtrans vdr:# ./irserver -debug_code -loglevel 4 /dev/ttyUSB0werden die von der IR-Fernsteuerung gesendeten Codes angezeigt, z.B.
7500c38011000000[0.0] ok mediacenter [0.0]: S11101010000000000011110000010001001000 48Die zweite Zeile entspricht einer nicht unter
remotes/ aufgelisteten Taste. Die angezeigten Daten können zur Ergänzung von fehlenden Tastatur-Codes unter remotes/ verwendet werden. Da remotes/mediacenter.rem am besten auf die bei mir mitgelieferte Fernbedienung paßt, habe ich die fehlenden Einträge dort nachgetragen und die restlichen remotes/*.rem-Dateien gelöscht. Der Eintrag für den obigen unbekannten Code lautet z.B.
[tvrec][T]0[D]S11101010000000000011110000010001001000Alternativ können die Codes auch automatisch mit dem Kommando
irclient in die Konfigurationsdatei eingetragen werden. Hier liegt meine Datei remotes/mediacenter.rem.
Der LIRC-kompatible Server wird mit
./irserver -daemon /dev/ttyUSB0als Daemon gestartet. Mein Init-Skript
/etc/init.d/irserver gibt's hier.
Das Kommando
update-rc.d irserver start 10 2 3 4 5 . stop 30 0 1 6 .legt die Soft Links zum automatischen Starten des Skriptes beim Booten an.
VDR erkennt (bzw. glaubt) nun, dass LIRC gestartet ist und springt beim nächsten Start ins Menü zum Lernen der Tasten-Codes für die IR-Fernbedienung. Auch diese Codes werden unter /var/lib/vdr/remote.conf abgelegt (Zeilen beginnend mit LIRC).
Mit dem Kommando
vdr:# /usr/local/irtrans/irclient 127.0.0.1 Optionenlassen sich weitere Funktionen des VFD-Modules steuern, insbesondere Text auf dem Display ausgeben oder die Willkommen-Meldung ändern. Die Dokumentation dazu finde ich ziemlich mager, hier hilft nur probieren.
Aktuell nutze ich das Display selbst noch nicht (es zeigt nur Datum und Uhrzeit an), da es mir ein Rätsel ist, wie ich den VDR dazu bringen soll, das Display über die IRTrans-Programme anzusteuern.
X4VDR, welches einen eigenen X-Server für den VDR ohne Display-Manager usw. startet. VDR kann darauf sein Bild im Vollbild-Modus ausgeben.
Der X-Server für den VDR startet nach /etc/init.d/X4VDR start auf VT8/Display 1 (erreichbar mit Strg-Alt-F8). Damit kollidiert er nicht mit einem ggf. ebenfalls laufenden X-Display Manager (hier Xdm), der standardmäßig auf VT7/Display 0 läuft.
Das Kommando
update-rc.d X4VDR start 19 2 . stop 21 0 1 6 .legt die Soft Links zum automatischen Starten des Skriptes beim Booten an.
Damit VDR von nun an auf seinem eigenen X-Server im Vollbild-Modus startet, ist noch die Datei /etc/vdr/plugins/plugin.xineliboutput.conf anzupassen:
--local=sxfe --fullscreen --display=:1.0Zusätzlich sind in der Datei
/var/lib/vdr/setup.conf (oder im dazugehörigen OSD-Menü) mindestens folgende Einträge sinnvoll:
xineliboutput.Video.Deinterlace = linearblend xineliboutput.Video.Scale = 1Das Plugin stellt hier ziemlich viele Einstellmöglichkeiten bereit, ggf. machen noch weitere Anpassungen Sinn.
Nach einem /etc/init.d/vdr restart sollte der VDR nun auf VT8 erscheinen.
rm /etc/rc[S2].d/S[0-9][0-9]Init-Skript löschen (Debian verwendet standardmäßig den Runlevel 2 für den "normalen" Multiuser-Betrieb, siehe /etc/inittab). Bei meiner Minimalinstallation sind das nur:
| Dienst | Debian-Paketname | Init-Skript unter /etc/init.d/ |
| X Display Manager | xdm | xdm |
| lpd | lpr | lpd |
| Mailserver Exim | exim4-base | exim4 |
dpkg-reconfigure --unseen-only Paketname wieder angelegt werden (dpkg-reconfigure --unseen-only --all konfiguriert alle Pakete neu). Mit /etc/init.d/Init-Skript start kann der Dienst bei Bedarf nachträglich gestartet werden.
Ein paar weitere Sekunden lassen sich durch die Reduktion des Timeouts für das GRUB-Menü sparen (Datei /boot/grub/menu.lst):
timeout 2
irserver) mit irclient programmiert werden:
vdr:# cd /usr/local/irtrans/
vdr:# ./irclient localhost
1 - Send
2 - Learn
3 - Status
99 - Exit
Select command 3
0 Device(s) Found:
99 - Exit
Select command 0
Device [0]:
Repeat Mask: o o o o o o o x x o o o o o o o
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Device Mode Send [20]: x
IR [21]: x
SBUS [22]: x
IR RemoteCtrl [23]: x
SBUS RemoteCtrl [24]: x
RAW [25]: o
Fast Mode [26]: o
SBUS send Repeat [27]: x
PowerOn Remote [40]: .04.30
PowerOn Command [41]:
Cancel [88]
Save & Exit [99]
Select command 40
Enter PowerOn Remote: mediacenter
Device [0]:
Repeat Mask: o o o o o o o x x o o o o o o o
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Device Mode Send [20]: x
IR [21]: x
SBUS [22]: x
IR RemoteCtrl [23]: x
SBUS RemoteCtrl [24]: x
RAW [25]: o
Fast Mode [26]: o
SBUS send Repeat [27]: x
PowerOn Remote [40]: mediacenter
PowerOn Command [41]:
Cancel [88]
Save & Exit [99]
Select command 41
Enter PowerOn Command: power
Device [0]:
Repeat Mask: o o o o o o o x x o o o o o o o
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Device Mode Send [20]: x
IR [21]: x
SBUS [22]: x
IR RemoteCtrl [23]: x
SBUS RemoteCtrl [24]: x
RAW [25]: o
Fast Mode [26]: o
SBUS send Repeat [27]: x
PowerOn Remote [40]: mediacenter
PowerOn Command [41]: power
Cancel [88]
Save & Exit [99]
Select command 99
1 - Send
2 - Learn
3 - Status
99 - Exit
Select command 99
mediacenter benennt die Datei remotes/mediacenter.rem mit den Fernbedienungs-Codes, power den Namen der Taste aus dieser Datei (siehe oben), über welche der Rechner eingeschalten werden soll.
Nach diesen Einstellungen kann der Rechner per Fernbedienung eingeschalten werden, mit einer Ausnahme: Wurde der Rechner komplett vom Stromnetz getrennt, muss er beim ersten Mal über den Power-Knopf am Gehäuse eingeschalten werden.
Mein Motherboard wird von nvram-wakeup gut unterstützt, die Installation gestaltet sich dann relativ einfach:
vdr:# apt-get install nvram-wakeup vdr:# modprobe nvram vdr:# echo nvram >> /etc/modulesZum Übernehmen der neuen Zeit-Einstellungen benötigt das BIOS einen Reboot, daher sind in der Datei
/boot/grub/menu.lst noch die Einträge
# Menueeintrag aus /boot/grub/default starten default saved # Menueeintrag zum Herunterfahren title Ausschalten savedefault 0 root (hd0,0) haltzu machen, in
/etc/vdr/vdr-nvram-wakeup.conf die Einträge
ENABLED="yes" SPECIALSHUTDOWN="echo y | grub-reboot 3"Irgendwie scheint mir die ganze Prozedur nicht 100%ig konsistent: Eigentlich sollte es den Eintrag
savedefault 0 nicht brauchen, da grub-reboot den angegebenen Menüeintrag (3) ja nur einmal booten sollte, allerdings scheint halt die dafür nötige Änderung an /boot/grub/default zu verhindern. Außerdem ist GRUB sensibel bei der Reihenfolge der Befehle beim Eintrag Ausschalten. Aber egal: So funktioniert's!
Der Daemon LCDd von LCDProc nimmt Texte und Kommandos übers Netz entgegen und zeigt diese auf dem Display an. Konfigurationsdatei: /etc/LCDd.conf. Das Kommando lcdproc übergibt dem Server einige Systemparameter (CPU-Last usw.), die der LCDd dann auf dem Display ausgibt. Als Treiber sollte für das bei mir eingebaute VFD-Display Sasem verwendet werden, habe das Display allerdings mit LCDd noch nicht zum Laufen gebracht (aber auch nicht sehr viel ausprobiert). Ggf. kann man das Kommando lcdproc auch zusammen mit irserver verwenden (hab ich noch nicht getestet).
vdr:# apt-get install lircDie Kernel-Module für LIRC gibt es leider nicht als Binärpaket, sie müssen also ähnlich wie das
cdfs-Modul oben manuell übersetzt werden:
vdr:# apt-get install linux-source-2.6.18 kernel-package libncurses5-dev vdr:# cd /usr/src/ vdr:# tar -xvjf linux-source-2.6.18.tar.bz2 vdr:# cd /usr/src/linux-source-2.6.18/ vdr:# cp /boot/config-2.6.18-4-686 .config vdr:# dpkg --list | grep linux-image-2.6.18 ii linux-image-2.6.18-4-686 2.6.18.dfsg.1-11 Linux 2.6.18 image on PPro/Celeron/PII/PIII/P4 vdr:# make-kpkg --append-to-version=-4-686 --initrd --revision=2.6.18.dfsg.1-11 kernel_imageFür das Kompilieren der LIRC-Module ist es nötig, den Kernel zu kompilieren. Erst danach lassen sich die Module übersetzen:
vdr:# apt-get install lirc-modules-sourceIm nun folgenden Dialog ist der passende Treiber für das IR-Modul auszuwählen. Für das Dign HTPC HV5-Gehäuse kommen, soweit ich bisher herausgefunden habe, die Module
sasem oder imon in Frage./usr/src/linux-source-2.6.18/.
Sollte die automatische Installation der Module nicht funktionieren hier der manuelle Weg:
vdr:# cd /usr/src/ vdr:# tar -xvzf lirc-modules.tar.gzDer Quelltext zu den LIRC-Modulen landet dann unter
/usr/src/modules/lirc/. Die restlichen Schritte sind dann:
vdr:# cd /usr/src/linux-source-2.6.18/ vdr:# dpkg --list | grep linux-image-2.6.18 ii linux-image-2.6.18-4-686 2.6.18.dfsg.1-11 Linux 2.6.18 image on PPro/Celeron/PII/PIII/P4 vdr:# make-kpkg --append-to-version=-4-686 --revision=2.6.18.dfsg.1-11 modules_imageDas Debian-Binärpaket wird installiert mit:
vdr:# dpkg --install /usr/src/lirc-modules-2.6.18-4-686_0.8.0-9.2+2.6.18.dfsg.1-11_i386.deb
/etc/lirc/. Die dortige Datei lircd.conf enthält die Daten der Fernsteuerung. Funktionieren sollte ggf. die Vorlage /usr/share/doc/lirc/remotes/sasem/lircd.conf.sasem.
vdr:# cd /etc/lirc/ vdr:# cp /usr/share/doc/lirc/remotes/sasem/lircd.conf.sasem lircd.conf vdr:# modprobe lirc_sasem vdr:# /etc/init.d/lirc startLeider verweigert LIRC sowohl mit dem Modul
lirc_sasem als auch mit lirc_imon jegliche Mitarbeit. /dev/lircd wird zwar angelegt, /dev/lirc (oder /dev/lirc/0?) existiert nicht. Auch ein mknod /dev/lirc c 61 0 hat nicht geholfen. Ich fürchte, dass es für mein VFD-Modul schlichtweg kein passendes LIRC-Modul gibt.
powertweak, hddtemp, hdparm, blktool. V.a. hdparm sollte mit Vorsicht eingesetzt werden (siehe Manpage).
Temperatur der Festplatte anzeigen:
vdr:# hddtemp /dev/hda /dev/hda: SAMSUNG SP1604N: 29°C
CDROM herunterregeln:
vdr:# hdparm -EFestplatte stoppen (Stromsparmodus):
vdr:# hdparm -y /dev/hdaSiehe auch
-Y (Schlafmodus), -S (Standby Timeout), -M (Automatic Acoustic Management), Status abfragen mit -C.
xvmc oder xxmc, welche XvMC (XVideo Motion Compensation), eine einfache Hardware-Unterstützung für die Decodierung von MPEG-Daten, unterstützen sollen. Der Intel-Chipsatz i810 sollte XvMC bieten.
XvMC (XVideo Motion Compensation) wird in /etc/X11/xorg.conf aktiviert mit (siehe man 4 i810):
Section "Device" Driver "i810" ... Option "XvMCSurfaces" "7" ... EndSectionFalls noch nicht geschehen werden die XvMC-Bibliotheken installiert mit:
vdr:# apt-get install libxvmc1Die Video-Treiber
xxmc und xvmc sind mittlerweile in libxine1 standardmäßig einkompiliert, die Bibliothek muss also nicht zwingend neu übersetzt werden. Einige nützliche Tips zu XvMC mit Xine stehen in der Datei /usr/share/doc/libxine1/README_xxmc.html.
Leider wurden meine Hoffnungen nicht erfüllt: Sowohl xine --video-driver xvmc als auch der Treiber xxmc brachten keine merklichen Leistungsverbesserungen sondern führten vielmehr zu verschiedenen Fehlern (kein Bild, Ruckeln usw.) oder einer nicht aktzeptablen Bildqualität (schlechtes Deinterlacing).
vdr:# apt-get install linux-source-2.6.16 kernel-package libncurses5-dev vdr:# cd /usr/src/ vdr:# tar -xvjf linux-source-2.6.16.tar.bz2 vdr:# cd /usr/src/linux-source-2.6.16/ vdr:# make menuconfig vdr:# make-kpkg clean vdr:# make-kpkg --initrd --revision=linuxvdr0.01 kernel_imageUnter
/usr/src/ liegt der neue Kernel dann als Debian-Paket kernel-image-2.6.16_linuxvdr0.01_i386.deb, welches mit
vdr:# dpkg --install /usr/src/kernel-image-2.6.16_linuxvdr0.01_i386.debinstalliert werden kann.
/boot/grub/menu.lst nötig:
splashimage (hd0,1)/boot/grub/splashimages/linuxinside.xpm.gz
foreground ffffff
background 000000
Das Bild (hier linuxinside.xpm.gz) muss dann nach /boot/grub/splashimages/ kopiert werden. Fertige Bilder und eine genaue Beschreibung gibts unter http://linuxwiki.de/GRUB.
splashy.
apt-get install splashy splashy-themesIn der Datei
/boot/grub/menu.lst müssen dem Kernel dann noch folgende Boot-Optionen mitgegeben werden (in der Zeile beginnend mit kernel):
vga=0x318 quietNach dem nächsten Reboot sollte dann ein hübscher Linux-Pinguin die uncoolen Boot-Meldungen überdecken. Mit der
Escape-Taste verschwindet er bei Bedarf wieder. Splashy gibt seine Grafiken allerdings über Framebuffer aus, was auf meinem VDR-Rechner Probleme macht. Das Kompilieren eines neuen Kernels mit CONFIG_FB_I810=y und der Kernel-Boot-Option video=i810fb hat zwar Splashy zum Leben erweckt, allerdings haben dann X11 und Xine den Dienst versagt.
Durch Integration von Splashy ins Initramfs sollten auch noch die ersten paar Zeilen des Boot-Vorganges verschwinden.
Eine andere, aber aufwändigere Alternative für einen Bootsplash ist ein Kernel Patch.
vdr:# dpkg-reconfigure localesläßt sich der Standard-Zeichensatz des Systems festlegen. Leider unterstützt der VDR noch kein UTF-8, arbeitet allerdings anstandslos mit Dateinamen (z.B. von MP3s) im UTF-8-Format, er zeigt nur die Sonderzeichen nicht korrekt an. Auch andere Programme haben an einigen Stellen noch Probleme mit UTF-8.
rsync ungemein. Der Aufruf
rsync --archive --delete /srcpath/rsyncsrc/ /dstpath/rsyncdst/synchronisiert den Inhalt des Verzeichnisses
/srcpath/rsyncsrc/ (Slash am Ende nicht vergessen!) nach /dstpath/rsyncdst/. Wirkt Wunder bei meiner lahmen USB 1.1-Schnittstelle.
vdr-plugin-xineliboutput hat für die Wiedergabe von MP3s und Bildern noch nicht den Funktionsumfang der entsprechenden Einzel-Plugins erreicht. Leider klappt die Zusammenarbeit mit vdr-plugin-image und insbesondere mit vdr-plugin-mp3 noch nicht so richtig. Daher verwende ich für den alltäglichen Betrieb noch die ältere Installation mit vdr-plugin-xine.
Der Rechner ist noch nicht so leise, wie man es für einen Wohnzimmer-PC gerne hätte. Es scheint, als ob der Netzteil-Lüfter die lautesten Geräusche macht, muss ich mir bei Gelegenheit genauer ansehen.
Das VFD-Display ist noch nicht in Verwendung (es zeigt aktuell nur Datum und Uhrzeit an).