Ich bin gerade mit meinem VDR auf Debian Etch umgestiegen und präsentiere hier quasi eine
Kopie der .bash_history der Installation. Da ich den VDR diskless per NFS betreibe, finden sich
auch einige spezielle Hinweise dazu. Wer den VDR mit einer lokalen Festplatte betreibt, kann
diese getrost überlesen.
Ein aktuelles HOWTO unter Debian 5.0 lenny gibt es hier
Weiteres zum NFS Betrieb: [HOWTO] VDR Client via Netz per NFS booten
Alles auf eigene Gefahr und ohne Gewähr.
Nach der Installation hat man folgende Software auf seinem VDR laufen:
Debian Etch (Debian 4.0)
Linux 2.6.23.8
LIRC CVS (0.8.3)
vdr 1.4.7 multipatch von e-tobi (etch)
Stand: 2007.12.22
Here we go:
Inhaltsverzeichnis
1. Booten
2. Grundsystem
3. Kernel
4. NFS Server
5. LIRC
6. Firmware
7. VDR
8. HG DVB Treiber
9. Optionen
10. VLC Wiedergabeliste
1. Booten
Netzwerk- und andere Installations-CDs finden sich unter http://www.debian.org/releases/etch/debian-installer/
-- <NFS> --
## Dateien für das Booten per Netzwerk laden und installieren#server:~# wget http://http.us.debian.org/debian/dists/etch/main/installer-i386/current/images/netboot/netboot.tar.gzserver:~# cd /var/lib/tftpbootserver:/var/lib/tftpboot# tar xvzf netboot.tar.gz ./debian-installer/server:/var/lib/tftpboot# cd pxelinux.cfgserver:/var/lib/tftpboot/pxelinux.cfg# cp ../debian-installer/i386/pxelinux.cfg/default default.etchserver:/var/lib/tftpboot/pxelinux.cfg# ln -s default.etch default
Eine Alternative zu dieser Installationsmethode bietet debootstrap. Damit läßt sich das System
schon von Anfang an auf dem Server aufspielen. Siehe auch
[HOWTO] VDR Client via Netz per NFS booten (debootstrap) -> c. Client per debootstrap installieren
-- </NFS> --
2. Grundsystem
#
# Grundsystem installieren
#
# empfohlene Partitionierung am Beispiel einer Master-Festplatte am ersten IDE Port:
# /dev/hda1 -> swap (256-512MB)
# /dev/hda2 -> / (2-3GB)
# /dev/hda3 -> /video (so groß, wie möglich...)
#
# Wer mehr Partitionen benötigt, sollte auf hda2 eine erweiterte Partition anlegen
# und ab hda5 logische Laufwerke einrichten
# Bei "Softwareauswahl" alles abwählen.
# Grub in den MBR installieren.
# reboot
#
# Sofern nicht anders erwähnt, erfolgen alle Eingaben als root.
#
#vdr:~#
vigr # Den bei der Installation angelegten User in die Gruppe adm eintragen, damit /var/log/syslog gelesen werden kann
grep ^adm /etc/group
adm:x:4:kilroy
Display More
-- <NFS> --
## für NFS Betrieb uid und gid für Nutzer vdr wie auf Server festlegen# Beispiel:# passwd: vdr:x:103:104:VDR user,,,:/var/lib/vdr:/bin/false# group : vdr:x:104:#vipwvigr
-- </NFS> --
#
# Pakete installieren
#
#vdr:~#
aptitude install openssh-server anacron at less vim mc portmap ntp rsync powernowd exim4 mutt bzip2
#
vi /etc/ntp.conf # ggf. eigenen Server eintragen
vi /etc/default/ntp # NTPD_OPTS='-g -x'
/etc/init.d/ntp restart
aptitude install build-essential libncurses5-dev kernel-package
#
dpkg-reconfigure locales # ggf. de_DE.ISO-8859-15@euro einstellen
Display More
Am einfachsten ist es, wenn man die weitere Installation remote (per SSH) durchführt. Dazu
genügt es, wenn man auf dem vdr erstmal nur openssh-server installiert und sich dann per
SSH mir diesem verbindet. Auf Clientseite erstellt man zuerst ein Schlüsselpaar ohne Passphrase
und kopiert den öffentlichen Schlüssel auf den vdr. So kann man sich ohne Passwort per SSH
an dem vdr Rechner anmelden.
user@client:~$ [ -a .ssh/id_dsa.pub ] || ssh-keygen -t dsa
user@client:~$ scp .ssh/id_dsa.pub user@vdr:.
user@client:~$ ssh user@vdr "[ ! -d .ssh ] && mkdir .ssh; cat id_dsa.pub >> .ssh/authorized_keys; chmod 600 .ssh/authorized_keys; rm id_dsa.pub"
Wer möchte, kann natürlich auch direkt auf dem Client weiterarbeiten.
3. Kernel
Damit der Kernel die Module für die DVB Karten nicht selbst lädt, werden diese in die blacklist
eingetragen und man gibt in /etc/modules die Reihenfolge selbst vor.
#
# aktuellen Kernel installieren
#
# Module nicht automatisch laden, damit die Reihenfolge selbst festgelegt werden kann.
# Bitte an die eigene Hardware anpassen! Ggf. kann dieser Schritt auch übersprungen werden (z.B. bei Einkartensystemen).
# dvb_ttpci: driver for the SAA7146 based AV110 PCI DVB cards by Siemens, Technotrend, Hauppauge
# budget_c: driver for the SAA7146 based so-called budget PCI DVB cards w/ CI-module produced by Siemens, Technotrend, Hauppauge
# b2c2_flexcop_pci: Technisat/B2C2 FlexCop II/IIb/III Digital TV PCI Driver
# bttv: bttv - v4l/v4l2 driver module for bt848/878 based cards
# dvb-bt8xx: Bt8xx based DVB adapter driver
# bt878: dito.
for i in dvb_ttpci \
budget_ci \
b2c2_flexcop_pci \
bttv \
dvb-bt8xx \
bt878 \
; do
echo "blacklist $i" >> /etc/modprobe.d/blacklist # diese Einträge für udev
echo $i | grep -v bt878 >> /etc/modules
done
# Treiberoptionen kann man in die Datei /etc/modprobe.conf eintragen.
# Beispiel:
# cat /etc/modprobe.conf
# options dvb_ttpci debug=1
# options ves1820 verbose=1
#vdr:~#
cd /usr/src/
#vdr:/usr/src#
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.8.tar.bz2
wget http://www.on-luebeck.de/kilroy/debian_etch_howto/powernow-k7-manual-2.6.23_enev_kilroy.patch.gz # nur notwendig für AMD Geode NX 1750
tar xjf linux-2.6.23.8.tar.bz2
ln -s linux-2.6.23.8 linux
cd linux
#vdr:/usr/src/linux#
zcat ../powernow-k7-manual-2.6.23_enev_kilroy.patch.gz | patch -b -p0 # nur notwendig für AMD Geode NX 1750
# wget http://www.on-luebeck.de/kilroy/debian_etch_howto/config-2.6.23.zaphod -O .config # ACHTUNG! Diese .config ist speziell für meinen diskless VDR.
make oldconfig
# bei Bedarf den Kernel noch mittels make menuconfig den eigenen Bedürfnissen anpassen
# das reduziert dann auch die Zeit der Kompilation ;)
#
# Wer von Kernel < 2.6.19 umsteigt, sollte unbedingt in
# Device Drivers ---> Serial ATA (prod) and Parallel ATA (experimental) drivers
# nachgucken und ggf. die Treiber aktivieren.
Display More
Nutzer eines Kernels mit initrd, welche die DVB Module per /etc/modules laden und /usr
nicht auf der root Partition haben, laufen Gefahr, daß Treiber, die eine Firmware unter
/usr/lib/hotplug/firmware/ suchen, diese nicht finden, wenn sie sich nicht im initrd Image
befindet und /usr "relativ spät" gemountet wird. Das Fehlerbild in dmesg sieht dann so aus:
Linux video capture interface: v2.00
saa7146: register extension 'dvb'.
ACPI: PCI Interrupt Link [APC2] enabled at IRQ 17
ACPI: PCI Interrupt 0000:01:07.0[A] -> Link [APC2] -> GSI 17 (level, low) -> IRQ 21
saa7146: found saa7146 @ mem f898e000 (revision 1, irq 21) (0x13c2,0x000e).
dvb-ttpci: could not load firmware, file not found: dvb-ttpci-01.fw
dvb-ttpci: usually this should be in /usr/lib/hotplug/firmware or /lib/firmware
dvb-ttpci: and can be downloaded from http://www.linuxtv.org/download/dvb/firmware/
ACPI: PCI interrupt for device 0000:01:07.0 disabled
device-mapper: ioctl: 4.11.0-ioctl (2006-10-12) initialised: dm-devel@redhat.com
kjournald starting. Commit interval 5 seconds
EXT3 FS on sda9, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
EXT3 FS on sda8, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
EXT3 FS on sda5, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting. Commit interval 5 seconds
EXT3 FS on sda6, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
Display More
/usr, und damit auch die Firmware, befinden sich auf sda6. Diese Partition wird erst nach
dem Laden des Treibers dvb-ttpci gemountet, so daß die Firmware nicht gefunden wird.
Mögliche Lösungen finden sich hier.
-- <NFS> --
Für diskless Systeme müssen folgende Funktionen aktiviert werden:
Networking -> Networking options -> IP: kernel level autoconfiguration -> IP: DHCP support
File systems -> Network File Systems -> NFS file system support <*>
File systems -> Network File Systems -> Root file system on NFS
Wer mit VMWare testet, benötigt für die NIC: "AMD PCnet32 PCI support"
TIP: Den Kernel kann man auch auf dem Server übersetzen lassen, was Sinn ergibt, wenn
die Server-CPU performanter als die des VDR Rechners ist. Dazu auf dem Server chroot mit
dem Rootverzeichnis des VDR aufrufen und obige Prozedur (inkl. make-kpkg ...) ausführen.
-- </NFS> --
make-kpkg --initrd --revision=vdr1 kernel_image # alternativ ohne initrd: make-kpkg --revision=vdr1 kernel_image
dpkg -i ../linux-image-2.6.23.8_vdr1_i386.deb
echo "powernow_k7 overwrite_table=1 fsb=100000 multiplier=50,60,70,80,90,105" >> /etc/modules # powernow_k7 Modul für AMD Geode NX 1750 in /etc/modules eintragen
mkdir /video /media/downloads # /video (und ggf. weitere) Verzeichnis(se) des Servers einbinden
echo "server:/video /video nfs auto,rw,nosuid,hard,intr,rsize=65536,wsize=65536 0 0" >> /etc/fstab
echo "server:/media/downloads /media/downloads nfs auto,rw,nosuid,hard,intr,rsize=65536,wsize=65536 0 0" >> /etc/fstab
reboot # Grub bootet nun automatisch den neuen Kernel
uname -a
Linux zaphod 2.6.23.8 #1 Thu Nov 22 11:45:37 CET 2007 i686 GNU/Linux
-- <NFS> --
4. NFS Server
## Server updaten## mount server:/netboot/nfsroot/zaphod_etch /mnt# cat rsync_exclude# /initrd# /media# /mnt# /proc# /sys# rsync -avx --exclude-from=rsync_exclude / /mnt/# cd /mnt/ && mkdir initrd media mnt proc sys## !! auf /dev achten !!## !! /etc/fstab für Netzwerk-Boot anpassen !!# server:/netboot/nfsroot/zaphod_etch / nfs defaults,hard,intr,rsize=65536,wsize=65536 0 0# none /tmp tmpfs defaults 0 0# none /var/run tmpfs defaults 0 0# none /var/lock tmpfs defaults 0 0# none /var/tmp tmpfs defaults 0 0## !! eth0 auf manual umstellen, wenn dhcp genutzt wird - bitte kontrollieren !!# sed 's/dhcp$/manual/' /etc/network/interfaces > /etc/network/interfaces.tmp && mv /etc/network/interfaces.tmp /etc/network/interfaces## nfs Einträge aus /etc/updatedb.conf entfernen#
at hat immernoch ein Problem, wenn es auf diskless Systemen mit NFS läuft.
# at - nfs workaroundvi /etc/rc.local# folgendes vor "exit 0" einfügenmount -t tmpfs none /var/spool/cron/atjobs/echo "0" > /var/spool/cron/atjobs/.SEQchmod 600 /var/spool/cron/atjobs/.SEQchown daemon.daemon /var/spool/cron/atjobs/.SEQ/etc/init.d/atd restart
Swap per NFS:
# swap (per NFS) anlegendd if=/dev/zero of=/var/swap bs=1k count=128Kmkswap /var/swapecho "/dev/loop/0 none swap sw,noauto 0 0" >> /etc/fstablosetup /dev/loop/0 /var/swapswapon /dev/loop/0chmod 755 /etc/rc.localvi /etc/rc.local# folgendes vor "exit 0" einfügenlosetup /dev/loop/0 /var/swapswapon /dev/loop/0
-- </NFS> --
5. LIRC
#
# lirc installieren
#
#vdr:~#
aptitude install lirc
#
/etc/init.d/lirc stop
update-rc.d -f lirc remove
aptitude hold lirc
aptitude install help2man automake1.7 autoconf libtool setserial cvs
#
echo "/dev/ttyS0 uart none" > /etc/serial.conf
setserial /dev/ttyS0 uart none
cd /usr/local/src/
#vdr:/usr/local/src#
cvs -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc login
#
cvs -z8 -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc co lirc
cd lirc
./autogen.sh
#
./setup.sh
make && make install
if ( ! grep "^lirc_serial" /etc/modules >/dev/null); then echo "lirc_serial" >> /etc/modules; fi # "lirc_serial" in /etc/modules eintragen
cd contrib
#vdr:/usr/local/src/lirc/contrib#
cp lirc.debian lirc.debian.bak
wget http://www.on-luebeck.de/kilroy/debian_etch_howto/lirc.debian.patch
patch < lirc.debian.patch # lirc_serial laden, lircmd deaktivieren, device und conf Datei anpassen
cp lirc.debian /etc/init.d/lirc-cvs
update-rc.d lirc-cvs defaults 20
cd ..
#vdr:/usr/local/src/lirc#
cp remotes/logitech/lircd.conf.logitech /etc/lircd-cvs.conf # Beispiel
#wget http://www.on-luebeck.de/kilroy/debian_etch_howto/lircd.conf.harmony-655 -O /etc/lircd-cvs.conf
modprobe lirc_serial
/etc/init.d/lirc-cvs start
Display More
6. Firmware
#
# Firmware für DVB Karte(n) holen
# Beispiel für FF Karten mit AV7110
#
cd /usr/lib/hotplug/firmware/
#vdr:/usr/lib/hotplug/firmware#
wget http://www.linuxtv.org/downloads/firmware/dvb-ttpci-01.fw-2622
ln -s dvb-ttpci-01.fw-2622 dvb-ttpci-01.fw
#
# alternativ die Testversion
#
cd /usr/lib/hotplug/firmware/
#vdr:/usr/lib/hotplug/firmware#
wget http://www.suse.de/~werner/test_av-f12623.tar.bz2
tar xjf test_av-f12623.tar.bz2 test_av/dvb-ttpci-01.fw
mv test_av/dvb-ttpci-01.fw dvb-ttpci-01.fw-f12623
chown root.root dvb-ttpci-01.fw-f12623
ln -s dvb-ttpci-01.fw-f12623 dvb-ttpci-01.fw
rm -rf test_av
Display More
7. VDR
#
# Tobis Experimental VDR Repository
#
cat >> /etc/apt/sources.list << EOF
#
# Tobis Experimental VDR Repository (multipatch)
#
deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch
EOF
aptitude update
#gpg --keyserver hkp://wwwkeys.eu.pgp.net --recv-keys DB90D8FC306B6783
#gpg --armor --export DB90D8FC306B6783 | apt-key add -
aptitude install e-tobi-keyring
cat >> /etc/apt/preferences << EOF
Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 600
Package: *
Pin: release o=e-tobi.net
Pin-Priority: 1001
EOF
#
# Marillats repository
#
cat >> /etc/apt/sources.list << EOF
#
# Marillats repository
#
deb http://www.debian-multimedia.org etch main
EOF
gpg --keyserver hkp://wwwkeys.eu.pgp.net --recv-keys 1F41B907
gpg --armor --export 1F41B907 | apt-key add -
#
# Einige VDR Plugins benötigen Software, die Debian im non-free Bereich anbietet.
# Daher kann man die sources.list ggf. anpassen. Beispiel:
#
# deb http://ftp.de.debian.org/debian/ etch main non-free
# deb-src http://ftp.de.debian.org/debian/ etch main non-free
# deb http://security.debian.org/ etch/updates main non-free
# deb-src http://security.debian.org/ etch/updates main non-free
#
aptitude update
#
# VDR installieren
#
aptitude install vdr vdr-plugin-burn
#
/etc/init.d/vdr stop
echo "172.17.42.0/24" >> /etc/vdr/svdrphosts.conf # eigenes Netz freigeben
wget http://www.on-luebeck.de/kilroy/debian_etch_howto/remote.conf.harmony-655 -O /var/lib/vdr/remote.conf
chown vdr.vdr /var/lib/vdr/remote.conf
vi /etc/default/vdr
# ggf. OPTIONS="-w 60 --no-kbd"
# KEYB_TTY=""
# VIDEO_DIR="/video"
# Die Rechte für $VIDEO_DIR müssen ggf. angepaßt werden.
# Beispiel für einen vdr, der als user vdr läuft
# chown vdr.vdr /video
# /var/lib/vdr/channels.conf ggf. anpassen
wget http://www.on-luebeck.de/kilroy/debian_etch_howto/channels.conf-dvb-c-t -O /var/lib/vdr/channels.conf
vi /etc/vdr/plugins/plugin.burn.conf
# --datadir=/media/downloads/tmp
# --iso=/video/isos
# Damit das iso Verzeichnis nicht von vdr gelöscht wird, sollten folgende Befehle ausgeführt werden:
# touch /video/isos/dont_delete && chown vdr.vdr /video/isos/dont_delete && chmod 400 /video/isos/dont_delete
# Damit kann vdr das Verzeichnis nicht mehr löschen.
vi /etc/vdr/keymacros.conf # ggf. anpassen
ln -s /usr/lib/vdr/svdrpsend.pl /usr/local/bin/svdrpsend.pl
/etc/init.d/vdr start
aptitude install vdradmin-am vdr-plugin-epgsearch vdr-plugin-streamdev-server
#
sed 's/^ENABLED="0"/ENABLED="1"/' /etc/default/vdradmin-am >> /etc/default/vdradmin-am.tmp && mv /etc/default/vdradmin-am.tmp /etc/default/vdradmin-am # ENABLED="1"
echo "172.17.42.0/24" >> /etc/vdr/plugins/streamdevhosts.conf # eigenes Netz freigeben
/etc/init.d/vdr restart
/etc/init.d/vdradmin-am start
# eventuell alte VDRAdmin timer konvertieren
/usr/share/vdradmin-am/autotimer2searchtimer.pl -i vdradmind.at.old -s -m 1
aptitude install vdr-plugin-dvd vdr-plugin-dvdswitch vdr-plugin-extrecmenu vdr-plugin-femon vdr-plugin-mp3 vdr-plugin-premiereepg vdr-plugin-screenshot vdr-plugin-sudoku vdr-plugin-text2skin vdr-plugin-vbox vdr-plugin-weather
#
aptitude install vdr-burnbackgrounds vdr-skins vdr-skins-speciallogos
#
# Workaround: Links für Enigma Skin setzen
cd /var/lib/vdr/plugins/text2skin/Enigma/
ln -s fonts/EnigmaFont EnigmaFont
ln -s fonts/FontBold.ttf FontBold.ttf
ln -s fonts/Font.ttf Font.ttf
ln -s fonts/VeraMono.ttf VeraMono.ttf
ln -s fonts/VeraMono.ttf FontMonoSpaced.ttf
cd /var/lib/vdr/plugins/text2skin/
ln -s Enigma/fonts fonts
cd /var/lib/vdr/plugins/text2skin/fonts/
ln -s VeraMono.ttf FontMonoSpaced.ttf
# für Nutzer des mp3 Plugins
vi /etc/vdr/plugins/mp3sources.conf
#/home/kilroy/vdr/network-streams;Network-Streams;0;*.pls
#/home/kilroy;Festplatte;0;*.mp3
# für Nutzer des dvdswitch Plugins
vi /etc/vdr/plugins/plugin.dvdswitch.conf
# --imagedir=/video/isos
# für Nutzer des vbox Plugins
vi /etc/vdr/plugins/vboxuser.conf
# vbox:20012:kilroy:geheim:pin1
/etc/init.d/vdr restart
Display More
8. HG DVB Treiber
Wer statt der Kerneltreiber lieber die aktuellen Entwicklungsversionen der Treiber nutzen möchte,
geht nach folgender Anleitung vor:
#
# DVB hg Treiber
# http://www.linuxtv.org/repo/
#
aptitude install --without-recommends mercurial
#
# ohne --without-recommends werden sehr viele Empfehlungen installiert
#
cd /usr/local/src/
#vdr:/usr/local/src#
hg clone http://linuxtv.org/hg/v4l-dvb
cd v4l-dvb/
#vdr:/usr/local/src/v4l-dvb#
# alternativ UFOs v4l-dvb-av7110-refactoring: http://www.vdr-portal.de/board/thread.php?threadid=51207
# hg clone http://linuxtv.org/hg/~endriss/v4l-dvb-av7110-refactoring
# cd v4l-dvb-av7110-refactoring
make # baut alle Module
#
# alternativ
# make menuconfig
#
make menuconfig
make # baut nur die ausgewählten Module
# Kerneltreiber sichern
if [ -d /lib/modules/$(uname -r)/kernel/drivers/media ]; then mv /lib/modules/$(uname -r)/kernel/drivers/media /lib/modules/media-$(uname -r) ; fi
# hg Treiber installieren
make install
# Kerneltreiber wiederherstellen
rm -rf /lib/modules/$(uname -r)/kernel/drivers/media/*
cp -a /lib/modules/media-$(uname -r)/* /lib/modules/$(uname -r)/kernel/drivers/media/
depmod -a
Display More
9. Optionen
# lm-sensors installieren (PC-Chips M811)
aptitude install lm-sensors
#
wget http://www.on-luebeck.de/kilroy/debian_etch_howto/sensors.conf.m811 -O /etc/sensors.conf
/etc/init.d/lm-sensors start
# irexec für zusätzliche Befehle einrichten
wget http://www.on-luebeck.de/kilroy/debian_etch_howto/lircrc -O /etc/lircrc
wget http://www.on-luebeck.de/kilroy/debian_etch_howto/irexec -O /etc/init.d/irexec
update-rc.d irexec defaults 42
#
# aufräumen
#
aptitude clean
aptitude purge linux-image-2.6-k7 linux-image-2.6.18-3-k7
update-grub
rm /usr/src/linux-2.6.23.8.tar.gz
Hinweis: Prinzipiell kann man den Code markieren und pasten. Nur "aptitude install ..." sollte
man separat eingeben, da es oftmals eine Eingabe erwartet.
Da sich etch noch in der Entwicklung befindet, sollte man vielleicht etwas öfter als normal ein
Update durchführen:
lirc und die HG DVB Treiber müssen nach einem Kernelupdate neu übersetzt werden!
10. VLC Wiedergabeliste
Wer VLC als Streamingclient nutzt, kann mit diesem Skript eine passende Wiedergabeliste
(playlist) generieren. Bitte beachten: Das Skript ist nicht narrensicher.
kilroy:~$ cat bin/build_vlc_playlist.sh
#!/bin/bash
NULL=/dev/null
SCRIPTNAME=$(basename $0)
if ! [ $(which svdrpsend.pl) ]; then
echo
echo "svdrpsend.pl befindet sich nicht um Suchpfad. Ende."
echo
exit 1
fi
if [ "$#" -gt "2" ] || [ "$#" -lt "1" ] || [ $1 = "-h" ]; then
echo
echo "Das Skript liest die Kanalliste eines VDR per SVDRP ein"
echo "und generiert daraus eine playlist für VLC."
echo "Der Streamingserver wird per hostname:3000 angesprochen."
echo
echo "Usage: $SCRIPTNAME [-h] hostname [file]"
echo " file default = vdr.m3u"
echo
echo "Das Skript erwartet mindestens 1 und maximal 2 Argumente."
echo
exit 1
fi
HOSTNAME=$1
PLAYLIST=$2
if [ ! $PLAYLIST ]; then PLAYLIST=vdr.m3u; fi
if [ -a $PLAYLIST ]; then
echo -n "Playlist $PLAYLIST existiert bereits. Überschreiben? <j/n>"
read -n 1 TASTE
echo ""
if [ $TASTE != "j" ]; then
echo "Abbruch."
exit
fi
fi
#
# Start der playlist
#
[ -a $PLAYLIST ] && mv $PLAYLIST $PLAYLIST.old
echo "#EXTM3U" > $PLAYLIST
#
# Kanalliste vom VDR holen
#
svdrpsend.pl -d $HOSTNAME LSTC 2>&1 | while read line; do \
if ( echo $line | grep "^250[- ]" >$NULL ); then
echo "#EXTINF:0,,$(echo $line | sed 's/250[- ][0-9]* //' | cut -f1 -d":" | cut -f1 -d";")" >> $PLAYLIST
echo "http://$HOSTNAME:3000/"$(echo $line | sed 's/250[- ]//' | cut -f1 -d" ") >> $PLAYLIST
# Fortschrittsbalken
echo -n "#"
else
if ( echo $line | grep "^22[01]" >$NULL ); then
echo -e "\nServer meldet: $line"
else
echo -e "\nFehler: $line"
fi
fi
done
Display More
Beispielaufruf:
kilroy:~$ build_vlc_playlist.sh vdr playlist.m3u
Playlist playlist.m3u existiert bereits. Überschreiben? <j/n>j
Server meldet: 220 zaphod SVDRP VideoDiskRecorder 1.4.7; Mon Jun 11 15:49:10 2007
############################################################################################################################################################################################################################################################################################################################################################################
Server meldet: 221 zaphod closing connection
kilroy:~$ vlc playlist.m3u