Debian - mit 2.4er Kernel für VDR aufsetzen
Inhaltsverzeichnis |
Beschreibung
Ich schmeiss hier mal mein Debian-HowTo hinein.
Benutze es seit langem, um mein VDR-System neu aufzusetzen, denke es ist ziemlich ohne Schnörkel, für Leute die erstmal einen nackten VDR aufsetzen wollen.
Bei Fragen gerne Mail/PN über www.vdr-portal.de.
User: eisenbert
Grundsystem
Voraussetzung für dieses HowTo ist ein "blankes" Debian-System. Mein System ist von einer Sarge-netinstall-CD mit 2.4.26er Kernel. Zur Installation wählte ich die Bootoption "linux". Als Benutzer (neben root natürlich) legen wir einen Sambabenutzer für später an. Nennen wir ihn hier mal smbuser.
Hardwarevoraussetzung
Hier ist nicht viel zu beachten. Es sollten vielleicht nicht gerade die neusten Techniken verwendet werden (wie SATA, Blauzahn, etc.), da diese evtl. nicht unterstützt werden. Ich benutze hier ein "stinknormales" x86-System.
Vorbereitungen
Zu aller Erst benötigen wir den ssh-Server um per Remote auf der Kiste arbeiten zu können und eine neuere vi-Version (Standardtexteditor unter linux). Weiter installieren wir gcc und g++ die wir zum Kompilieren benötigen.
apt-get install ssh vim gcc g++
Nächster Schritt ist die Installation eines Samba-Servers um Verzeichnisse freizugeben.
apt-get install samba smbfs bzip2
Das folgende Konfigurations-Menü einfach mit Enter durchklicken. Die Datei /etc/samba/smb.conf löschen wir und ersetzen sie durch die "schlanke" Version:
debian:/etc/samba# rm smb.conf debian:/etc/samba# nano smb.conf [global] workgroup = TUX-NET os level = 2 time server = Yes unix extensions = Yes encrypt passwords = Yes log level = 1 syslog = 0 printing = CUPS printcap name = CUPS socket options = SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY wins support = No veto files = /*.eml/*.nws/riched20.dll/*.{*}/ [vdrpakete] path = /vdrpakete comment = Vdrpakete-Verzeichnis guest ok = no writeable = yes browseable = yes available = yes valid users = smbuser public = no
Verzeichnis und Sambauser anlegen, ihm das /vdrpakete-Verzeichnis gefügig machen und den Sambadiesnt neu starten.
debian:~# mkdir /vdrpakete debian:~# smbpasswd -a smbuser New SMB password: Retype new SMB password: debian:~# chown smbuser /vdrpakete/ debian:~# smbd restart && nmbd restart
Nun kann man per smb://IP/vdrpakete von meinem PC auf das Verzeichnis zugreifen und Dateien auf die Karre bringen...
Abschliessend noch ein paar allgemeine Pakete:
apt-get install nasm dialog libncurses5-dev libncurses4 automake autoconf libglib1.2-dev
Probleme
Die Rechte auf des gemounteten Servers muss man sich noch mal zu Gemüte führen, da es sich bei mir um ein unkritisches Daten-Verzeichnis handelt habe ich mit chmod 777 -R /video jedem User Schreibrechte zugestanden, um Dateien/Verzeichnise vom Client erstellen zu lassen.
VDR-Installation
Vorbereitungen
Vorerst benötigen wir ein paar Pakete:
apt-get install libjpeg62-dev libcompress-zlib-perl
Kernel
Danach müssen Kernel-Sources installiert werden und ein neuer Kernel mit i2c, video4linux, input-core, event-interface.
Die Kernel-Sourcen gibt es bei kernel.org
apt-get install kernel-source-2.4.28 cd /usr/src/ tar xfvj kernel-source-2.4.28.tar.bz2 ln -s kernel-source-2.4.28 linux cd linux make menuconfig
Einstellungen wie oben beschrieben...
make dep && make modules && make bzImage && make modules_install cp ./arch/i386/boot/bzImage /boot/vmlinuz-2.4.28-2 cd /lib/modules/linux-2.4.28/ ln -s /usr/src/linux-2.4.28 build
(Sollten Probleme beim Backen des Kernels auftreten, liegt es wahrscheinlich am aktuellen gcc-4.0)
Danach muss der frische Kernel noch als Bootkernel eingetragen werden. Dafür ändern wir das Config-File des Bootloaders (bei mir grub):
/boot/grub/menu.lst
title Debian GNU/Linux, kernel 2.4.27-3 root (hd0,0) kernel /boot/vmlinuz-2.4.27-3 root=/dev/hda1 ro initrd /boot/initrd.img-2.4.27-1-386 savedefault boot title Debian GNU/Linux, kernel 2.4.27-2 (alte Vers.) root (hd0,0) kernel /boot/vmlinuz-2.4.27-2 root=/dev/hda1 ro initrd /boot/initrd.img-2.4.27-1-386 savedefault boot
Nach einem Neustart wird nun der neue Kernel geladen...
LIRC (optional)
cd /usr/local/src/ tar xfvz /vdrpakete/lirc-0.7.0.tar.gz -C . cd lirc-0.7.0 ./setup.sh (homebrew auswählen und danach save & run config) make && make install
Zum Anlernen der Fernbedienung:
setserial /dev/ttyS0 uart none modprobe lirc_serial irrecord /etc/lircd.conf
Nun benötigen wir noch ein Startskript: /etc/lircd.sh
#!/bin/sh setserial /dev/ttyS0 uart none modprobe lirc_serial /usr/local/sbin/lircd
Und zum Starten in /etc/rc3.d:
ln -s /etc/lircd.sh /etc/rc3.d/S80lircd
DVB-Treiber
cd /usr/local/src/ tar xfvj /vdrpakete/linux-dvb.2003-11-08.tar.bz2 -C . ln -s linux.... DVB cd DVB/driver ./makedev.napi make && make insmod
VDR
cd /usr/local/src/ tar xfvj /vdrpakete/vdr-1.3.12.tar.bz2 -C . ln -s vdr-1.3.12 VDR cd VDR cp /vdrpakete/vdr-1.3.12-timer-delete-fix.diff . mkdir /usr/local/man/man1 mkdir /usr/local/man/man5 make VFAT=1 (REMOTE=LIRC) make && make install mkdir /usr/local/vdr-1.3.12 mkdir /usr/local/vdr-1.3.12/conf cp *.conf /usr/local/vdr-1.3.12/conf/
Nun noch die Startdatei runvdr anpassen:
#!/bin/sh # runvdr: Loads the DVB driver and runs VDR # # If VDR exits abnormally, the driver will be reloaded # and VDR restarted. # # Set the environment variable VDRUSR to the user id you # want VDR to run with. If VDRUSR is not set, VDR will run # as 'root', which is not necessarily advisable. # # Since this script loads the DVB driver, it must be started # as user 'root'. # # Any command line parameters will be passed on to the # actual 'vdr' program. # # See the main source file 'vdr.c' for copyright information and # how to reach the author. # # $Id: runvdr 1.14 2004/11/21 11:30:00 kls Exp $ DVBDIR="/usr/local/src/DVB/driver" VDRPRG="/usr/local/src/VDR/vdr" VDRCMD="$VDRPRG -c /usr/local/vdr-1.3.12/conf -t /dev/tty8 $*" LSMOD="`/sbin/lsmod | grep -w '^dvb' | wc -l`" KILL="/usr/bin/killall -q -TERM" # Load driver if it hasn't been loaded already: if [ $LSMOD -eq 0 ] ; then (cd $DVBDIR; make insmod) fi while (true) do su $VDRUSR -c "$VDRCMD" & if test $? -eq 0 -o $? -eq 2; then exit; fi date echo "restarting VDR" $KILL $VDRPRG sleep 10 (cd $DVBDIR; make rmmod; make insmod) date done
Zum Starten geben wir nun ./runvdr ein.
VDRAdmin
Um die Kiste nun über das Web steuern zu können benötigt man den VDRAdmin.
cd /opt tar xfvz tar xfvz /vdrpakete/vdradmin-0.96.tar.gz -C . ln -s vdradmin-0.96/ vdradmin cd vdradmin ./vdradmind.pl --config ./vdradmind.pl
Falls vdradmin bei dem "Fernseh"-Fenster kein /dev/video0 findet:
mknod /dev/video0 c 81 0 mknod /dev/video1 c 81 1 mknod /dev/video2 c 81 2 mknod /dev/video3 c 81 3
Probleme
Der Treiber der DVB-Karte (habe es nur mit einer Budget-Karte installiert) wurde komischerweise nicht geladen.
Habe zur Behebung den Treiber mit zusätzlichen Zeilen in der runvdr geladen(nach den Auskommentierungen):
cd /usr/local/src/DVB/driver make insmod