DEBIAN/SARGE VDR HOW TO
Hallo Liebe VDR Gemeinde, ich benutze seit ein paar Wochen den VDR und muss sagen, ICH BIN SEHR BEGEISTERT.
Und um die Community an meiner Begeisterung teilhaben zu lassen, hab ich mich entschlossen,
ein HOW TO, ausgehend von einem frischen DEBIAN/Sarge, zu erstellen. Motivation hierfuer
ist die teilweise sehr schlechte Dokumentation vom VDR selber und von einigen PLUGINS.
Verwendete Hardware: Hauppauge Nexus-S Rev. 2.1 mit Hauppauge Remotecontrol
eine fertige remote.conf liegt mit im Paket. wer die belegung nicht
mag, kann die remote.conf aus dem /usr/local/vdr-1.2.6/conf verzeichnis loeschen
Ich gehe davon aus, dass die Installation von DEBIAN/Sarge keine groesseren Probleme macht.
Update: ein update des How To´s mit Unterstuetzung fuer den
2.6.6er Kernel folgt die Woche, bei mir laeufts schon, muss es nur noch testen
So und nun ans eingemachte :).
Bevor wir richtig anfangen, muessen einige Pakete und mein 2.4.27er und 2.6.8er Kernel installiert werden.
Ihr muesst nicht meinen 2.4.27er oder meinen 2.6.8er Kernel installieren, aber ihr verschwendet keine Zeit beim
Aufsetzen eures VDR´s
Was wir am Ende haben werden.
Kernel 2.4.27 mit
DVB Treiber vom 08.11.2003 oder
DVB Treiber vom 24.06.2004
Kernel 2.6.8 mit
aktuellen CVS Treibern
VDR 1.2.6 (vdr-1.2.6-fichte-0.4b-wosc)
erstmal moechte ich einen Dank aussprechen fuer die genial modifizierten Patches von e-tobi.net,
die passen wie angegossen.
Patches:
ElchiAIO 4d
AC3overDVB
AutoPID
IconPatch
usw....
Plugins:
sleeptimer 0.4
calendar 0.1.4
dvd 0.3.4-rc10
mp3 0.9.6
osdteletext 0.4
remote 0.3.1a
streamdev 0.3.1
vcd 0.0.6c
+ startscript, shutdownscript
was ihr braucht:
http://demenz.ath.cx/fichte/vdrinstall.tar.bz2
-------------------------------------------------------------
DEBIAN
ich gehe davon aus, dass ihr eine netzwerkverbindung habt und eure /etc/apt/sources.list richtig konfiguriert habt.
folgendes fuegen wir noch zur sources.list hinzu
deb ftp://ftp.nerim.net/debian-marillat/ testing main
apt-get update
ganz am anfang installieren wir den midnight commander, damit machen wir uns das leben nicht so schwer
apt-get install mc
jetzt noch ssh, damit wir die maschine von einem remotecomputer aus administrieren koennen
apt-get install ssh
und noch ein hilfreiches tool zum verwalten der runlevels
apt-get install rcconf
nun rufen wir rcconf auf und deaktivieren (exim4 und ppp)
erstmal deaktivieren wir hotplug und discover, wir wollen unsere module von hand laden
cd /etc/rcS.d/
rm S36discover S40hotplug
cd ../rc0.d/
rm K89hotplug
cd ../rc6.d/
rm K89hotplug
jetzt werden wir die noetigen libraries, die wir fuers SYSTEM fuer den VDR und die PLUGINS benoetigen, installieren.
das meiste geht mit apt-get, aber einiges muss von hand kompiliert werden.
apt-get install dpkg-dev gcc g++ libc6-dev make patch debhelper bzip2 kernel-package libncurses-dev kernel-source-2.4.27 sudo
wir entpacken nun die kernelsources
cd /usr/src
tar xfj kernel-source-2.4.27.tar.bz2
ln -s kernel-source-2.4.27 linux
und weiter:
apt-get install libdvdread3-dev libdvdcss2-dev libdvdnav-dev liba52-0.7.4-dev libmad0-dev libsndfile1-dev libogg-dev libvorbis-dev liblzo-dev libxml2-dev libssl-dev libfaad2-dev libfame-dev liblame-dev libmpeg-dev libmpeg3-dev libmpeg2-4-dev libjpeg62-dev libjpeg-mmx-dev libimlib2-dev giblib-dev libfam-dev libid3-3.8.3-dev libid3tag0-dev libvlc0-dev libavcodec1-dev libavifile-0.7-dev libmjpegtools-dev libmagick++-dev libsdl1.2-dev libxvidcore4-dev
apt-get install libdvdcss2 ffmpeg liblogfile-rotate-perl libconfhelper-perl libcompress-zlib-perl mjpegtools libsdl1.2debian-all libdivxdecore0 libdivxencore0 dvd+rw-tools dvdrtools gozer lame vcdimager cdrdao recode mpg123 netpbm nasm alsa-utils mplayer-586 mencoder-586 dvdauthor transcode
Erklaerung: viele werden sich fragen, was sollen die ganzen libraries?
die meisten werden von den einzelnen Plugins benutzt, installiert man die
libraries nicht, laessen sich der VDR und die PLUGINS nicht kompilieren
die libraries, die man fuer VDRCONVERT benoetigt sind auch schon drin
nun holen wir uns das fichtevdr package:
cd /root
wget http://demenz.ath.cx/fichte/vdrinstall.tar.bz2
tar xfj vdrinstall.tar.bz2
das verzeichnis /root/vdrinstall darf nie geloescht werden
debvdr 2.4.27 kernel:
cd /root/vdrinstall/kernel
dpkg -i kernel-image-2.4.27-debvdr_debvdr.1.0_i386.deb
reboot
cd /usr/src/linux
cp /boot/config-2.4.27-debvdr .config
make oldconfig
make dep
debvdr 2.6.8 kernel:
cd /root/vdrinstall/kernel
dpkg -i kernel-image-2.6.8-debvdr_debvdr.1.0_i386.deb
-------------------------------------------------------------
DVB Treiber
DVB Treiber fuer den 2.6er Kernel sind bereits im installierten Kernel vorhanden
DVB Treiber fuer den 2.4er Kernel:
Treiber vom 08-11-03:
cd /root/vdrinstall/treiber
tar xfj linux-dvb.2003-11-08.tar.bz2
mv linux-dvb.2003-11-08 /usr/local/src/DVB
cp alles.rc5 /usr/local/src/DVB/apps/av7110_loadkeys/
cd /usr/local/src/DVB/driver/av7110/
cat /root/vdrinstall/treiber/av7110_ir-permission-666.diff | patch
cd /usr/local/src/DVB/driver
make
./makedev.napi
make insmod
make rmmod
cd /usr/local/src/DVB/
make
Treiber vom 24-06-04:
cd /root/vdrinstall/treiber
tar xfj tar xfj dvb-20040621.tar.bz2
mv DVB /usr/local/src/DVB
cp alles.rc5 /usr/local/src/DVB/apps/av7110_loadkeys/
cd /usr/local/src/DVB/driver/av7110/
cat /root/vdrinstall/treiber/av7110_ir-permission-666.diff | patch
cd /usr/local/src/DVB/driver
make
./makedev.napi
make insmod
make rmmod
cd /usr/local/src/DVB/
make
devices fuer spaetere vdradmin installation anlegen:
cd /dev
mknod video0 c 81 0
mknod video1 c 81 1
mknod video2 c 81 2
mknod video3 c 81 3
ln -s video0 video
-------------------------------------------------------------
VDR Installation
cd /root/vdrinstall/vdr
tar xfj vdr-1.2.6.tar.bz2
mv vdr-1.2.6 /usr/local/src/VDR-1.2.6
cd /usr/local/src/VDR-1.2.6
zcat /root/vdrinstall/vdr/vdr-1.2.6-fichte-patch-0.4b-wosc.diff.gz | patch -p1
mkdir /usr/local/vdr-1.2.6
mkdir /usr/local/vdr-1.2.6/man
mkdir /usr/local/vdr-1.2.6/man/man1
mkdir /usr/local/vdr-1.2.6/man/man5
mkdir /usr/local/vdr-1.2.6/conf
mkdir /usr/local/vdr-1.2.6/plugins
Makefile MANDIR anpassen (/usr/local/vdr-1.2.6/man)
Makefile BINDIR anpassen (/usr/local/vdr-1.2.6)
cd /root/vdrinstall/plugins/
tar xfz vdr-sleeptimer/sleeptimer-0.4.tar.gz
tar xfz vdr-calendar/vdr-calendar-0.1.4.tgz
tar xfj vdr-dvd/vdr-dvd-0.3.4-rc10.tar.bz2
tar xfz vdr-mp3/vdr-mp3-0.9.6.tar.gz
tar xfz vdr-osdteletext/vdr-osdteletext-0.3.2.tgz
tar xfz vdr-remote/vdr-remote-0.3.1.tgz
tar xfz vdr-streamdev/vdr-streamdev-0.3.1.tgz
tar xfz vdr-vcd/vdr-vcd-0.0.6c.tgz
tar xfz vdr-femon/vdr-femon-0.0.3a.tar.gz
mv sleeptimer-0.4 /usr/local/src/VDR-1.2.6/PLUGINS/src/sleeptimer
mv calendar-0.1.4/ /usr/local/src/VDR-1.2.6/PLUGINS/src/calendar
mv dvd-0.3.4-rc10/ /usr/local/src/VDR-1.2.6/PLUGINS/src/dvd
mv mp3-0.9.6/ /usr/local/src/VDR-1.2.6/PLUGINS/src/mp3
mv osdteletext-0.3.2/ /usr/local/src/VDR-1.2.6/PLUGINS/src/osdteletext
mv remote-0.3.1/ /usr/local/src/VDR-1.2.6/PLUGINS/src/remote
mv streamdev-0.3.1/ /usr/local/src/VDR-1.2.6/PLUGINS/src/streamdev
mv vcd-0.0.6c/ /usr/local/src/VDR-1.2.6/PLUGINS/src/vcd
mv femon-0.0.3a/ /usr/local/src/VDR-1.2.6/PLUGINS/src/femon
cd /usr/local/src/VDR-1.2.6/PLUGINS/src/remote
cat /root/vdrinstall/plugins/vdr-remote/vdr-remote-0.3.1-0.3.1a.diff | patch
cd /usr/local/src/VDR-1.2.6
make VFAT=1
make plugins NEWSTRUCT=1
make install
cp PLUGINS/lib/libvdr-* /usr/local/vdr-1.2.6/plugins/
mv /video/*.conf /usr/local/vdr-1.2.6/conf/
cp -R /root/vdrinstall/conf /usr/local/vdr-1.2.6/
cp /root/vdrinstall/runscript/* /usr/local/vdr-1.2.6/
mkdir /vtx
cd /usr/local/vdr-1.2.6/conf
mkdir icons
cd icons
tar xfjv /root/vdrinstall/vdr/icons/icons.tar.bz2
VDR Admin
cd /root/vdrinstall/vdr/
tar xfz vdradmin-0.96.tar.gz
cp -R vdradmin-0.96 /usr/local/vdr/admin
cd /usr/local/vdr/admin/
./vdradmin.pl --configure
Abschluss der VDR Installation
ueberpruefen der datei runvdr auf richtigkeit, speziell beim dvd plugin muss das device angepasst werden.
Startscript fuer Kernel 2.4.27:
mcedit /usr/local/vdr-1.2.6/runvdr-1.2.6-kernel-2.4
#!/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.11 2003/08/26 16:15:41 kls Exp $
DVBDIR="/usr/local/src/DVB/driver"
DVBREM="$DVBDIR/../apps/av7110_loadkeys"
VDRPRG="/usr/local/vdr-1.2.6/vdr"
VDRADM="/usr/local/vdr-1.2.6/admin/vdradmind.pl"
VDRCMD="$VDRPRG -w 60 -d -t /dev/tty8 -c /usr/local/vdr-1.2.6/conf -L /usr/local/vdr-1.2.6/plugins \
-Premote \
-P'dvd -C /dev/hdb' \
-Pvcd \
-P'mp3 -m /usr/local/vdr-1.2.6/conf/mount.sh' \
-P'mplayer -m /usr/local/vdr-1.2.6/conf/mount.sh -M /usr/local/vdr-1.2.6/conf/mplayer.sh' \
-P'osdteletext -r' \
-Pcalendar \
-Psleeptimer \
-Psc \
-Pstreamdev-server \
-Pfemon \
-s /usr/local/vdr-1.2.6/vdrshutdown $*"
VDRUSR=root
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 -c "$VDRCMD" $VDRUSR
# su -c "$VDRADM" $VDRUSR
# 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
#
case "$1" in
start)
if [ $LSMOD -eq 0 ] ; then
(cd $DVBDIR; make insmod)
($DVBREM/av7110_loadkeys $DVBREM/alles.rc5 > /proc/av7110_ir)
fi
su -c "$VDRCMD" $VDRUSR
su -c "$VDRADM" $VDRUSR
;;
stop)
$KILL $VDRPRG
$KILL vdradmind.pl
(cd $DVBDIR; make rmmod)
;;
*)
echo "Usage: runvdr-1.2.6-kernel-2.4 {start|stop}"
exit 1
esac
exit 0
Startscript fuer Kernel 2.6.8:
mcedit /usr/local/vdr-1.2.6/runvdr-1.2.6-kernel-2.6
#!/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.11 2003/08/26 16:15:41 kls Exp $
DVBDIR="/usr/local/src/DVB/driver"
DVBREM="$DVBDIR/../apps/av7110_loadkeys"
VDRPRG="/usr/local/vdr-1.2.6/vdr"
VDRADM="/usr/local/vdr-1.2.6/admin/vdradmind.pl"
VDRCMD="$VDRPRG -w 60 -d -t /dev/tty8 -c /usr/local/vdr-1.2.6/conf -L /usr/local/vdr-1.2.6/plugins \
-Premote \
-P'dvd -C /dev/hdb' \
-Pvcd \
-P'mp3 -m /usr/local/vdr-1.2.6/conf/mount.sh' \
-P'mplayer -m /usr/local/vdr-1.2.6/conf/mount.sh -M /usr/local/vdr-1.2.6/conf/mplayer.sh' \
-P'osdteletext -r' \
-Pcalendar \
-Psleeptimer \
-Psc \
-Pstreamdev-server \
-Pfemon \
-s /usr/local/vdr-1.2.6/vdrshutdown $*"
VDRUSR=root
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 -c "$VDRCMD" $VDRUSR
# su -c "$VDRADM" $VDRUSR
# 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
#
case "$1" in
start)
#if [ $LSMOD -eq 0 ] ; then
# (cd $DVBDIR; make insmod)
($DVBREM/av7110_loadkeys $DVBREM/alles.rc5 > /proc/av7110_ir)
# fi
su -c "$VDRCMD" $VDRUSR
su -c "$VDRADM" $VDRUSR
;;
stop)
$KILL $VDRPRG
$KILL vdradmind.pl
#(cd $DVBDIR; make rmmod)
;;
*)
echo "Usage: runvdr-1.2.6-kernel-2.6 {start|stop}"
exit 1
esac
exit 0
-------------------------------------------------------------
Jetzt binden wir das runvdr script noch in die runlevels ein, damit der VDR nach dem Systemstart von
alleine startet.
cd /etc/init.d
ln -s /usr/local/vdr-1.2.6/runvdr-1.2.6-kernel-2.4 runvdr-1.2.6-kernel-2.4 fuer den 2.4er Kernel oder
ln -s /usr/local/vdr-1.2.6/runvdr-1.2.6-kernel-2.6 runvdr-1.2.6-kernel-2.6 fuer den 2.6er Kernel
Jetzt rufen wir rcconf auf und aktivieren das runvdr script.
So ich hoffe ich konnte einigen ein wenig helfen und bin mir sicher, dass ihr genau soviel Spass
mit dem VDR haben werdet, wie ich ihn habe
MFG
fichte
Besonderen Dank gilt folgenden Websites und Personen:
Klaus Schmiedinger fuer dieses geniale Tool
e-tobi.net fuer die Patches, die reibungslos funktionieren.
http://eclipsedvd.christophefantoni.com/nuxvdr.php <---- sehr gute Anleitung (Franzoesisch)
http://www.klier.net/text/vdr/mplayer.html <---- gute Mplayer anleitung
http://linvdr.org/download/vdradmin/ <---- vdradmin Homepage
http://www.vdrportal.de/ <---- gute Community Seite
Wer Fragen hat, kann sich per Mail bei mir melden.