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.
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. 60%. 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 waren alle meine Versuche, XvMC zur Mitarbeit zu bewegen, bisher erfolglos (siehe unten).
USB Keyboard Support oder ähnlich). Bei mir hat der Bootloader GRUB ansonsten die Zusammenarbeit verweigert.
Im Gegensatz zu Freevo und MythTV ließ sich der VDR recht schnell zur Mitarbeit bewegen, die einfache, aber funktionale Oberfläche reagiert auch bei einer langsamen CPU noch genügend schnell. Außerdem läßt sich VDR über Plugins um viele Funktionen erweitern.
Obwohl Xine prinzipiell auch im Framebuffer-Mode läuft, weigerte er sich, auf meiner Hardware über Framebuffer irgendwas auszugeben. Unter X11 läuft er einwandfrei.
jigdo herunterladen (Anleitung, jigdo-Template: debian-31r0a-i386-binary-1.iso).
/etc/apt/sources.list anpassen
apt-get update && apt-get dist-upgrade
apt-get install Paketname nachinstallieren
/dev/hda1 1 GB Swap Virtueller Speicher /dev/hda2 10 GB / Installation 1 /dev/hda3 10 GB / Installation 2 (Test) /dev/hda4 Rest /var/lib/data 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. Alle Video- und Audio-Daten liegen auf /dev/hda4.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 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, Paketen von zap.tartarus.org und Einträgen in /etc/apt/preferences (siehe man apt_preferences) habe ich mich für folgende Quellen-Kombination entschieden:
/etc/apt/sources.list und /etc/apt/apt.conf anzulegen.
Die Kommandos
vdr:# apt-get update vdr:# apt-get dist-upgradebringen Paket-Index und System auf den neuesten Software-Stand von Sarge. Danach werden X11, VDR mit Xine-Plugin, Xine (Xine-Lib und User-Interface) und einige DVB-Tools installiert, gefolgt vom 2.6er-Kernel von Debian Etch:
vdr:# apt-get install x-window-system-core x-window-system xserver-xfree86 vdr-plugin-xine libxine1 xine-ui dvb-utils dvbstream vdr:# apt-get install vim unzip hdparm hddtemp vdr:# apt-get install -t testing linux-image-2.6-686Die 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.
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:# apt-get remove kernel-image-2.4.27-2-386 modutils vdr:# apt-get remove 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/XF86Config-4) sollten die Zeilen
Section "ServerFlags" Option "AllowMouseOpenFail" EndSectionnicht fehlen, ansonsten startet er nicht ohne Maus und Tastatur.
tzap und dvbstream:Das Kommando
vdr:# mkdir -p ~/.tzap/ vdr:# scan /usr/share/doc/dvb-utils/examples/scan/dvb-t/de-Muenchen > ~/.tzap/channels.confgeneriert 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 sollte 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.
channels.conf unter /var/lib/vdr/. Diese kann man einfach von vdr-wiki.de herunterladen (DVB-T) oder z.B. von Kanotix übernehmen.Mit
vdr:# /etc/init.d/vdr startwird VDR dann gestartet. Die Konfigurationsdateien von VDR liegen unter
/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.
libxine1) und dem User-Interface (normalerweise xine-ui). Beide Pakete von e-tobi.net enthalten bereits die für den Zugriff auf VDR benötigten Patches. Die Tastenbelegung für die VDR-Steuerung muss aber noch in der Datei ~/.xine/keymap vorgegeben werden. Am einfachsten übernimmt man dazu die Vorlage von vdr-wiki.de. In jedem Fall sollte man sich die Tastenbelegung noch im Keymap-Editor der Xine-GUI anschauen und sie ggf. nachbearbeiten.
In der Datei ~/.xine/config sollte noch der Eintrag
gui.dropped_frames_warning:0nicht fehlen. Das Kommando
vdr:# xine "vdr:/tmp/vdr-xine/stream#demux:mpeg_pes"sollte nun das VDR-Fernsehbild (unter X11) anzeigen.
xine --help auflistet. Die im Zusammenhang mit dem VDR wichtigsten Optionen sind im Init-Skript weiter unten enthalten.
Die 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 beim Start, dass LIRC gestartet ist und springt ins Menü zum Lernen der Tasten-Codes. Diese werden in die Datei /var/lib/vdr/remote.conf abgelegt und können dort bei Bedarf manuell nachbearbeitet werden.
Hier zeigt sich leider, dass irserver eben doch nicht LIRC ist. Das Skript /usr/lib/vdr/remotes-loader.sh überprüft explizit, ob der LIRC-Daemon lircd läuft, was er natürlich nicht tut. Daher löscht das Skript bei jedem VDR-Start den Inhalt von /var/lib/vdr/remote.conf. Hier hilft es, das Skript /usr/lib/vdr/remotes-loader.sh um folgende Zeilen zu ergänzen:
vdr:# diff -u /usr/lib/vdr/remotes-loader.sh /usr/lib/vdr/remotes-loader.sh.orig
--- /usr/lib/vdr/remotes-loader.sh 2005-11-01 11:40:16.000000000 +0100
+++ /usr/lib/vdr/remotes-loader.sh.orig 2005-06-26 01:28:37.000000000 +0200
@@ -11,11 +11,6 @@
REMOTES="LIRC"
fi
fi
- if [ -e "/var/run/irserver.pid" ]; then
- if ps --no-headers --pid `cat /var/run/irserver.pid` | grep -q "irserver" ; then
- REMOTES="LIRC"
- fi
- fi
if [ "$KEYB_TTY" != "" ]; then
REMOTES="$REMOTES KBD"
fi
Der VDR kann nun bequem über die Fernbedienung gesteuert werden. Leider werden diese Änderungen bei jedem Update des VDR-Paketes überschrieben und müssen dann neu gemacht werden.
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.
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 oder in den Dateien unter /etc/vdr/plugins/.
Mit folgende Plugins habe ich bisher herumgespielt:
vdr-plugin-xinevdr-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.
Da unser Kernel aus Etch/Testing-System stammt, muss auch das neue Kernel-Modul unter Etch kompiliert werden. Für das Kompilieren von Kernel-Modulen werden auf dem Rechner ggf. ein paar zusätzliche Pakete sowie die Kernel-Quellen benötigt:
etch:# apt-get install linux-source kernel-package libncurses5-dev etch:# cd /usr/src/ etch:# tar -xvjf linux-source-2.6.12.tar.bz2 etch:# cd /usr/src/linux-source-2.6.12/ etch:# make menuconfig
make menuconfig erstellt die Kernel-Konfigurationsdatei .config. Da hier keine speziellen Einstellungen benötigt werden, kann das Menü sofort nach dem Start wieder verlassen werden.
Das Modul wird dann übersetzt und installiert mit:
etch:# apt-get install cdfs-src etch:# cd /usr/src/ etch:# tar -xvjf cdfs.tar.bz2 etch:# cd /usr/src/linux-source-2.6.12/ etch:# dpkg --list | grep linux-image-2.6.12 ii linux-image-2.6.12-1-686 2.6.12-10 Linux kernel 2.6.12 image on PPro/Celeron/PII/PI etch:# dpkg --list | grep kernel-package ii kernel-package 9.008.4 A utility for building Linux kernel related Debi etch:# make-kpkg --append-to-version=-1-686 --initrd --revision=9.008.4 kernel_image etch:# make-kpkg --append-to-version=-1-686 --revision=9.008.4 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=-1-686 sorgt dafür, dass die Module später im richtigen Verzeichnis unter /lib/modules/ landen.
Das Debian-Paket /usr/src/cdfs-2.6.12-1-686_2.4.20.a+2.6.12-2+9.008.4_i386.deb kann dann auf dem VDR-Rechner kopiert und dort installiert werden:
vdr:# dpkg --install cdfs-2.6.12-1-686_2.4.20.a+2.6.12-2+9.008.4_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-dvdvdr:# ln -s hdb /dev/dvdnötig.
Leider ist das Plugin zumindest auf meiner Installation fast unbrauchbar: Die DVD wird abgespielt, allerdings läuft es instabil, ein DVD-Menü hat es mir noch nie angezeigt und der schnelle Vor- und Rücklauf arbeitet auch nur bei Gelegenheit.
vdr-plugin-imagevdr-plugin-osdteletextvdr-plugin-teletext installieren, dieses ist aber nicht als Binäpaket im Release vdr-experimental von e-tobi.net enthalten, das Kompilieren aus den Quellen hat bei mir nicht funktioniert.
vdr-plugin-mplayervdr:# apt-get install vdr-plugin-mplayer mplayer-586Ohne
mplayer-586 wird mplayer-386 installiert.
Das Plugin funktioniert normalerweise nur mit einer Full-Featured-Karte, nicht mit Xine. Allerdings gibt es im vdr-plugin-xine ein Programm namens xineplayer, welches als Ersatz für den mplayer funktioniert. Um diesen zu aktivieren muss die Datei /etc/vdr/plugins/vdrmplayer.sh.conf angepaßt werden:
# Where to find mplayer executable ? MPLAYER="/usr/bin/xineplayer"Der
xineplayer arbeitet zur Zeit nur im "traditional mode" des vdr-plugin-mplayer, läß sich also nicht über den VDR steuern. Die Wiedergabe sollte aber über den blauen Knopf der Fernbedienung beendet werden können, was bei mir aber dazu führt, dass Xine keinerlei VDR-Daten mehr anzeigt und neu gestartet werden muss. Während des Abspielens mit xineplayer kann Xine ggf. direkt durch LIRC bzw. den IRTrans Server gesteuert werden, habe ich aber noch nicht getestet.
vdr:# apt-get install alsa-utils vdr:# alsaconf vdr:# alsamixer vdr:# alsactl store
alsaconf richtet ALSA auf dem System ein. Die Dialoge sind weitgehend selbsterklärend, im Zweifel einfach die Standardeinstellungen beibehalten.alsamixer hilft bei der Einstellung der gewünschten Lautstärke. Am wichtigsten ist der erste Regler, Master. 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.
vdr laufen.
Damit nicht nur root den X-Server starten darf, muss erst noch mit
vdr:# dpkg-reconfigure xserver-commondie Konfiguration entsprechend angepaßt werden:
Wählen Sie aus, welcher Benutzertyp den X-Server starten darf.
Jeder
Alternativ kann man manuell den Eintrag allowed_users=anybody in /etc/X11/Xwrapper.config anlegen.
Zu beachten ist außerdem, dass der User vdr auf die Audio- und Video-Devices zugreifen muss, ggf. auch auf andere (CDROM, Floppy usw.). Dazu wird er in die entsprechenden Gruppen (siehe /etc/group) aufgenommen:
vdr:# usermod -G audio,video,cdrom vdrWie oben beschrieben muss noch die Datei
~vdr/.xine/keymap angepaßt werden.
Das Init-Skript /etc/init.d/Xxine liegt hier.
Der X-Server für Xine startet nach /etc/init.d/Xxine start auf VT8 (erreichbar mit Strg-Alt-F8). Beide Prozesse werden vom User vdr gestartet.
Das Kommando
update-rc.d Xxine start 99 2 . stop 01 0 1 6 .legt die Soft Links zum automatischen Starten des Skriptes beim Booten an.
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, muß er beim ersten Mal über den Power-Knopf eingeschalten werden.
| Dienst | Debian-Paketname | Init-Skript unter /etc/init.d/ |
Anmerkungen |
| sysklogd | sysklogd | sysklogd |
|
| klogd | klogd | klogd |
|
| PPP | ppp | ppp |
|
| PPP dns-clean | pppconfig | dns-clean |
|
| portmap | portmap | portmap |
|
| inetd | netkit-inetd | inetd |
|
| lpd | lpr | lpd |
|
| SSH-Daemon | openssh-server | ssh |
|
| Mailserver Exim | exim4-base | exim4 |
|
| NFS | nfs-common | nfs-common |
|
| Netzwerk | netbase | networking |
|
| Einrichten der Netwerk-Interfaces | ifupdown | ifupdown-clean |
|
| Automatische Hardware-Erkennung | discover1 | discover |
Einige Kernel-Module werden beim Booten nicht mehr automatisch geladen und müssen in die /etc/modules eingetragen werden (lsmod zeigt die geladenen Module an). |
| Automatische Erkennung von Hotplug-Geräten im laufenden Betrieb | hotplug | hotplug |
|
| X11 Font Server | xfs | xfs |
Gleichzeitig den Eintrag FontPath "unix/:7100" in /etc/X11/XF86Config-4 entfernen. |
| Xprt | xprint-common | xprint |
|
| X Display Manager | xdm | xdm |
/etc/inittab). Ein nicht benötigter Dienst wird nach rm /etc/rc[S2].d/S[0-9][0-9]Initscript beim Booten (in Runlevel 2) nicht mehr gestartet.xdm den Löwenanteil ausmachen.dpkg-reconfigure --unseen-only Paketname wieder angelegt werden (dpkg-reconfigure --unseen-only --all konfiguriert alle Pakete neu). apt-get remove Paketname löscht das Paket (Paket-Abhängigkeiten beachten!)./etc/init.d/Initscript start kann der Dienst nachträglich manuell gestartet werden.
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).
lirc_sasem läßt sich unter Kernel 2.6 nicht übersetzen, weil die Version aus dem Debian-Paket zu alt ist), daher haben meine Versuche nicht zum Ziel geführt:
Für die Fernsteuerung des VDRs über LIRC wird das LIRC-Paket sowie ein auf den IR-Empfänger passendes Kernel-Modul benötigt. LIRC wird wie gewohnt installiert mit:
vdr:# apt-get install lircIm Konfigurationmenü wird unter
USB devices der Eintrag Dign HV5 HTPC IR/VFD Module ausgewählt.
Die 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. Den Debian-Quelltext (Paket lirc-modules-source) habe ich auf einem reinen Etch/Testing-System kompiliert und das entstandene Installationspaket dann auf dem VDR-Rechner installiert:
etch:# cd /usr/src/ etch:# apt-get install linux-source kernel-package libncurses5-dev etch:# tar -xvjf linux-source-2.6.12.tar.bz2 etch:# cd /usr/src/linux-source-2.6.12/ etch:# make menuconfigDas Paket
lirc-modules-source von Etch/Testing war fehlerhaft, daher habe ich das Paket von Sid/Unstable verwendet. Dazu sind folgende temporäre Einträge in /etc/apt/sources.list zu machen:
## Sid/Unstable deb http://ftp.de.debian.org/debian/ sid main contrib non-free deb-src http://ftp.de.debian.org/debian/ sid main contrib non-freeDann:
etch:# apt-get update etch:# apt-get install lirc-modules-sourceIm nun folgenden Dialog habe ich erst mal alle Module ausgewählt, dann als SIR-Device
Other angegeben. Im nächsten Dialog sollte man die Module besser noch nicht kompilieren, ansonsten werden sie nur lokal installiert, aber kein Debian-Paket daraus gemacht. Außerdem wird das benötigte Modul ohnehin noch nicht richtig übersetzt./etc/apt/sources.list entfernt werden, gefolgt von apt-get update.
etch:# cd /usr/src/ etch:# tar -xzf lirc-modules.tar.gzDer Quelltext zu den LIRC-Modulen landet dann unter
/usr/src/modules/lirc/. Hier gibt es leider ein Problem: lirc_sasem wird von /usr/src/modules/lirc/Makefile nicht kompiliert, da das Modul unter Kernel 2.6 nicht kompilierbar ist (siehe /usr/src/modules/lirc/drivers/lirc_sasem/lirc_sasem.c). Die Software-Version ist zu alt. Nach dem Austauschen der Quellen unter /usr/src/modules/lirc/drivers/lirc_sasem/ mit neuen Versionen von lirc.org und dem Anpassen von /usr/src/modules/lirc/Makefile und /etc/lirc/lirc-modules-source.conf (sasem in der Zeile LIRC_MODULES= dazunehmen), wird das Modul kompiliert und läßt sich laden.
Die restlichen Schritte sind dann:
etch:# cd /usr/src/linux-source-2.6.12/ etch:# dpkg --list | grep linux-image-2.6.12 ii linux-image-2.6.12-1-686 2.6.12-10 Linux kernel 2.6.12 image on PPro/Celeron/PII/PI etch:# dpkg --list | grep kernel-package ii kernel-package 9.008 A utility for building Linux kernel related Debi etch:# make-kpkg --append-to-version=-1-686 --initrd --revision=9.008 kernel_image etch:# make-kpkg --append-to-version=-1-686 --revision=9.008 modules_imageDas Debian-Paket
/usr/src/lirc-modules-2.6.12-1-686_0.7.1pre2-10+9.008_i386.deb kann dann auf dem VDR-Rechner kopiert und dort installiert werden:
vdr:# dpkg --install lirc-modules-2.6.12-1-686_0.7.1pre2-10+9.008_i386.deb vdr:# depmodDie Konfigurationsdateien von LIRC liegen unter
/etc/lirc/. Die dortige Datei lircd.conf enthält die Daten der Fernsteuerung. Funktionieren sollte die Vorlage /usr/share/doc/lirc/remotes/sasem/lircd.conf.dignhv5.
vdr:# cd /etc/lirc/ vdr:# cp /usr/share/doc/lirc/remotes/sasem/lircd.conf.dignhv5 lircd.conf vdr:# /etc/init.d/lirc startDie Module werden korrekt geladen und der LIRC-Daemon startet. Leider bekomme ich kein Lebenszeichen von der Fernsteuerung. Wahrscheinlich hilft nur ein komplettes Update der LIRC-Quellen auf den neuesten Stand.
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.
libxine1 (Multimedia-Bibliotheken) und xine-ui (GUI) werden geladen und das Kompilieren vorbereitet mit:
vdr:# apt-get install devscripts vdr:# cd /usr/src/ vdr:# apt-get source xine-ui libxine1 vdr:# apt-get build-dep xine-ui libxine1
apt-get build-dep installiert alle fürs Kompilieren benötigten Pakete (über 100 Stück!). Da die Abhängigkeiten ggf. nicht 100-prozentig aufgelöst werden, muss man zwei, drei Pakete manuell mit apt-get install Paketname explizit installieren. Sollten sich dennoch nicht alle Abhängigkeiten auflösen lassen: Einfach mit dem Kompilieren beginnen, debuild meldet auch später noch, welches Paket es ggf. noch benötigt.
libxine1 übersetzenlibxine1 wird kompiliert und installiert mit:
vdr:# cd /usr/src/xine-lib-vdr-1.0.2/ vdr:# debuild --set-envvar DEB_BUILD_OPTIONS="optimize" -uc -us -b -tc vdr:# dpkg --install /usr/src/libxine1_1.0.2-0vdr1+net1_i386.deb vdr:# dpkg --install /usr/src/libxine-dev_1.0.2-0vdr1+net1_i386.debDie
debuild-Option DEB_BUILD_OPTIONS="optimize" sollte bewirken, dass die Binaries auf die lokale Hardware optimiert werden. Die restlichen Optionen sind in man dpkg-buildpackage beschrieben.configure-Optionen Sinn, die man dann allerdings manuell in die Datei debian/rules beim Aufruf von ./configure eintragen muss. ./configure --help zeigt alle verfügbaren Optionen an.
Das Paket libxine-dev muss nur installiert werden, wenn auch xine-ui neu übersetzt werden soll.
xine-ui übersetzenxine-ui ist die (hier bereits enthaltene) Option --enable-vdr-keys beim Aufruf von ./configure in der Datei debian/rules zuständig.
Die GUI wird kompiliert und installiert mit:
vdr:# cd /usr/src/xine-ui-0.99.3 vdr:# debuild --set-envvar DEB_BUILD_OPTIONS="optimize" -uc -us -b -tc vdr:# dpkg --install /usr/src/xine-ui_0.99.3-1ctvdr2_i386.debDas reine Kompilieren der Quellen hat bei mir keinen spürbaren Geschwindigkeitsvorteil gebracht, daher benutze ich weiterhin die Debian-Binärpakete.
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.
Meine Versuche sahen ungefähr so aus:
XvMC (XVideo Motion Compensation) in /etc/X11/XF86Config-4 aktivieren (siehe man 4x i810):
Section "Device" Driver "i810" ... Option "XvMCSurfaces" "7" ... EndSectionXvMC-Bibliotheken installieren:
vdr:# apt-get -t testing install libxvmc1 libxvmc-devDann
libxine1 mit den ./configure-Optionen --with-xxmc-lib=I810XvMC --with-xvmc-lib=I810XvMC (in debian/rules) wie oben beschrieben übersetzen.
Leider wurden meine Hoffnungen bisher nicht erfüllt: xine --video-driver xvmc ließ Xine erst gar nicht starten, mit xxmc lief er zwar, das Ruckeln war aber (bei einer CPU-Last von ca. 30%) um einiges heftiger als mit dem standardmäßigen Xv-Output. Auch die Versuche mit dem X-Server von X.org lieferten das selbe Ergebnis.
vdr:# apt-get install linux-source kernel-package libncurses5-dev vdr:# cd /usr/src/ vdr:# tar -xvjf linux-source-2.6.12.tar.bz2 vdr:# cd linux-source-2.6.12/ 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.12_linuxvdr0.01_i386.deb, welches mit
vdr:# dpkg --install /usr/src/kernel-image-2.6.12_linuxvdr0.01_i386.debinstalliert werden kann.
/boot/grub/menu.lst:
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.
gfxmenu in /boot/grub/menu.lst (Suse?).
vdr:# dpkg-reconfigure localesläßt sich der Standard-Zeichensatz des Systems festlegen. Der Versuch, den Zeichensatz auf
de_DE.UTF-8@euro umzustellen, scheitert aber leider daran, dass der VDR UTF8 noch nicht unterstützt. Auch andere Programme haben an einigen Stellen noch Probleme mit UTF8.
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...
Wie oben erwähnt ruckelt das Bild aufgrund der etwas knappen CPU-Leistung bei OSD und kurz nach dem Kanalwechsel.
Gleich nach dem Hochfahren zeigt der VDR kurz (ca. zwei Sekunden) das Menü zum Lernen der Fernbedienungs-Codes an, obwohl diese schon definiert sind.
Der Rechner ist noch nicht ganz so leise, wie man es für einen Wohnzimmer-PC gerne hätte. Es scheint, als ob der Netzteil-Lüfter am meisten Geräusche macht, muss ich mir aber noch genauer ansehen.
Die Xine-Option --post expand verursacht, abhängig von der verwendeten X11-Auflösung, ein blaues Bid bei (echtem) 16:9-Material, zudem "springt" das OSD manchmal zwischen 16:9 und 4:3.
Auf der IR-Fernsteuerung ziert (noch) ein Windows-Icon den Start-Knopf ;-) .