Hi all,
habe ein Problem mit meinem VDR. Sobald VDR abstürzt versucht zwar runvdr diesen wieder zu starten, doch wird die Karte nicht mehr gefunden. "No device found"... Am TV Ausgang der DVB-S Karte wird das OSD eingefrohren (sonst kein Bild und Ton).
An was könnte das liegen?
Habe VDR 1.4.0 im Einsatz (installiert mit install script)
Hier noch mein runvdr:
Bash
#!/bin/bash
#
# runvdr
#
# If VDR exits abnormally, the driver will be reloaded
# and VDR restarted.
#
# Since this script loads the DVB driver, it must be started
# as user 'root'. Add the option "-u username" to run VDR
# under the given user name.
#
# 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.16 2006/02/04 15:20:48 kls Exp $
# VDR needs to run in non-UTF8 locale
export LC_CTYPE=POSIX
export TERM=linux
export HOME=/root
# workaround for problems with NPTL ("Native Posix Thread Library")
#export LD_ASSUME_KERNEL=2.4.1
PATH=/usr/local/bin:/usr/local/sbin:$PATH:/sbin:/bin:/usr/sbin:/usr/bin
# turns the terminal's cursor off
#setterm -cursor off
CFGFILE="/usr/local/etc/vdr/vdr.conf"
test -r $CFGFILE || { echo "'$CFGFILE' not found" ... ; exit 1 ; }
source $CFGFILE
logit(){ if [ ${VDR_LOG:-0} \> 0 ] ; then l="$@" ; logger -t ${1##*/} "${l#* } ..." >/dev/null 2>&1 ; fi ; }
export -f logit
export PATH=$PREFIX/bin:$PREFIX/sbin:$PATH
VDRPRG=$PREFIX/bin/vdr
test -x "$VDRPRG" || { echo "'$VDRPRG'" $"not found" ... ; exit 2 ; }
while read i ; do
eval x="\$$i"
if [ -n "$x" -a -z "${i/#VDR_*/}" ] ; then
VDROPT=$VDROPT" --`echo ${i##*\_} | tr A-Z a-z`=\"$x\""
fi
export $i="$x"
done < <(grep ^[A-Z].*= "$CFGFILE" | cut -d= -f1)
unset START{K,P,R,S}
for i in ${!START_*} ; do
eval x=\$$i
if [ $x -eq 1 ] ; then
x=`echo ${i##*_} | tr A-Z a-z`
STARTK=$(echo $STARTK $(ls $ADMDIR/*/*/K[0-9][0-9].$x) | tr ' ' '\n' | sort)
STARTP=$(echo $STARTP $(ls $ADMDIR/*/*/P[0-9][0-9].$x) | tr ' ' '\n' | sort)
STARTR=$(echo $STARTR $(ls $ADMDIR/*/*/R[0-9][0-9].$x) | tr ' ' '\n' | sort)
STARTS=$(echo $STARTS $(ls $ADMDIR/*/*/S[0-9][0-9].$x) | tr ' ' '\n' | sort)
fi
done 2> /dev/null
export START{K,P,R,S}
case $1 in
start)
if [ -n "$(pidof $VDRPRG)" ] ; then
echo "$VDRPRG" $"already running" ...
else
reset
clear
for i in $STARTS ; do
cd $ADMDIR/*/rc.d
sh $i start
done
echo $"starting" "$VDRPRG" ...
while (true) do
ADDPARS="$*"
PLUGINS=`bash $ADMDIR/admin.sh -plugins -getopt | grep ^[-]`
for i in {commands,reccmds,timercmds}.conf ; do
source $ADMDIR/*/$i > $VDR_CONFIG/$i
done
logit $0 "starting ... $VDRPRG $VDROPT $PLUGINS ${ADDPARS/#start} $USRDEV"
eval $VDRPRG $VDROPT $PLUGINS ${ADDPARS/#start} $USRDEV
status=$?
case $status in
0) echo $"vdr exited normally" ... ;;
2) echo $"configuration error, check log file" ...
if [ -s /var/log/messages ] ; then
tail -n 100 /var/log/messages
fi ;;
esac
sleep 5s
echo $"restarting" "$VDRPRG" ...
echo $"sending TERM signal" ...
killall -q -TERM $VDRPRG
for i in $STARTR ; do
cd $ADMDIR/*/rc.d
sh $i restart
done
done
fi
;;
stop)
PIDS=`pidof $VDRPRG -x $PREFIX/bin/runvdr -o $$`
if [ -n "$PIDS" ] ; then
echo -n $"stopping" "$VDRPRG "
kill $PIDS 2>/dev/null
while ps -p $PIDS >/dev/null 2>&1 ; do
printf .
sleep 1s
done
echo
fi
for i in $STARTK ; do
cd $ADMDIR/*/rc.d
sh $i stop
done
;;
startbg)
screen -dmS vdr $0 start
;;
status)
screen -r vdr
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit $?
Alles anzeigen