Hi!
Hab mir jetz vdr auf debian installed und dazu verwende ich ein von mir angepasstes Startskript:
Bash
#!/bin/bash
#export PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
#export NAME="vdr"
#export DESC="Digital Videorecorder"
#export LANG="C"
#export HOME="/root"
VDRDIR="/usr/local/VDR-136"
CONFDIR="/usr/local/VDR-136/conf"
#PLUGINDIR="/usr/lib/vdr/plugins"
export VDRTTY="10"
#input
#MODULES="
#evdev
#videodev
#v4l1-compat
#v4l2-common
#video-buf
#dvb-core
#ves1x93
#alps_tdlb7
#alps_tdmb7
#stv0299
#ves1820
#tda1004x
#grundig_29504-401
#grundig_29504-491
#cx24110
#mt312
#saa7146
#saa7146_vv
#ttpci-eeprom
#dvb-ttpci
#budget-core
#budget
#budget-ci
#budget-av
#"
MODULES="
dvb-ttpci
ves1820
"
#for PLUGIN in `unique.pl $PLUGINLIST`;
#do
# PLUGINS="$PLUGINS -P$PLUGIN"
#done
loadmodule() {
modprobe $*
#insmod /lib/modules/`uname -r`/misc/$*
}
#loaddriver() {
# loadmodule dvb-ttpci
# loadmodule ves1820
#}
unloaddriver() {
modprobe -r dvb-ttpci
modprobe -r ves1820
}
loaddriver() {
OLDIFS=$IFS
IFS=$'\t'$'\n'
for module in $MODULES; do
IFS=$OLDIFS
loadmodule $module
IFS=$'\t'$'\n'
done
IFS=$OLDIFS
}
#unloaddriver() {
# OLDIFS=$IFS
# IFS=""
# MODULES="`echo $MODULES | tac`"
# IFS=$OLDIFS
# OLDIFS=$IFS
# IFS=$'\t'$'\n'
# for module in $MODULES; do
# #module=`echo $module | sed -e s/\\\.o.*//`
# modprobe -r $module
# done
# IFS=$OLDIFS
#}
case "$1" in
start)
/bin/bash -c '\
/bin/echo $$ > /var/run/vdr.pid; \
while /bin/true; do \
start=`date +%s`; \
/etc/init.d/runvdr up 2>&1 >/dev/null; \
stop=`date +%s`; \
if [ $(($stop - $start)) -lt 30 ] ; then \
echo "Something went wrong. VDR respawning to fast, sleep 2 minutes" > /dev/tty$VDRTTY; \
sleep 120; \
fi; \
sleep 1; \
/etc/init.d/runvdr down; \
sleep 5; \
done >/dev/null 2>/dev/null' &
;;
stop)
if [ -e /var/run/vdr.pid ]; then
PID=`cat /var/run/vdr.pid`
if [ x"$PID" != "x" ]; then
kill -9 $PID
fi
rm -f /var/run/vdr.pid
fi
/etc/init.d/runvdr down 2>&1 >/dev/null
;;
up)
loaddriver
#if [ $USE_INTERNAL_IR != "yes" ]; then
#setserial /dev/ttyS0 uart none
#loadmodule lirc_serial
#$BINDIR/lircd
#else
#if [ $INVERT_SIGNAL = "yes" ]; then
# LOADKEYS_PARAM="-i"
#fi
#/usr/bin/av7110_loadkeys $LOADKEYS_PARAM /etc/vdr/loadkeys/default.rc5 > /proc/av7110_ir
# add -Premote to $PLUGINS?
#PLUGINS="$PLUGINS -Premote"
#fi
#if [ x$START_FBTV == x"yes" ]; then
#fbtv -t 10 2>/dev/null >/dev/null &
# doesnt work, why?
#bash -c 'while true; do fbtv -t 12 2>/dev/null >/dev/null; wait; sleep 5; done' &
#else
#chvt $VDRTTY
echo "Here reads VDR from the keyboard as remote control replacement." > /dev/tty$VDRTTY
echo "For a login console switch to console 1 to 4 with [ALT][F1] to [ALT][F4]" > /dev/tty$VDRTTY
echo "To get back here, please press [ALT][F10]" > /dev/tty$VDRTTY
#fi
#sleep 5 #&& nice -n 19 vdradmind.pl &
umask 0002
$VDRDIR/vdr -v /video -c $CONFDIR -w 900 -E $CONFDIR/epg.data -s halt < /dev/tty$VDRTTY
#echo "$VDRDIR/vdr -v /video0 -c $CONFDIR -w 900 -E $CONFDIR/epg.data -s halt" > /dev/tty2
;;
down)
#vdradmind.pl -k
PID=`ps auxw | grep "vdr -v" | grep -v grep | awk '{ print $2 }'`
if [ x"$PID" != "x" ]; then
echo $pid
kill $PID
fi
sleep 2
#if [ x$START_FBTV == x"yes" ]; then
# PID=`ps auxw | grep "fbtv" | grep -v grep | awk '{ print $2 }'`
# if [ x"$PID" != "x" ]; then
# kill $PID
# fi
# fi
unloaddriver
# killall lircd 2>/dev/null >/dev/null
# rmmod lirc_serial
;;
# loaddriver)
# loaddriver
# ;;
# unloaddriver)
# unloaddriver
# ;;
*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $N {start|stop|up|down}" >&2
exit 1
;;
esac
exit 0
Alles anzeigen
wenn ich jetz aber das skript mit "/etc/init.d/runvdr start" starte, funzt zwar alles, aber die Shell bleibt nach den Ausgaben von modprobe hängen und ich bekomme keinen prompt, erst wenn ich STRG+C mache, kommt der Prompt wieder und alles läuft ganz normal weiter. Kann man das nicht irgendwie ohne STRG+C machen? (Bei LinVDR funzts ja auch...)
Habe Debian Woody mit Kernel 2.6.4 (also quasi LinVDR) und ne WINTV DVB-C 2.1
Cya
Fidelio