Diese Seite beschreibt den Aufbau meiner Linux-Multimedia-Box. Das Gerät dient in erster Linie als DVB-T-Empfänger und Multimedia-Zentrale 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/hda
X 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
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.
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" fiDer 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-xine
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.
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-dvd
vdr:# 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-image
vdr-plugin-osdteletext
vdr-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-mplayer
vdr:# 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. JederAlternativ 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 übersetzen
xine-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 000000Das 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 ;-)
.