ragazzi, ora che ho la vdrbox in produzione, mi sorge un dilemma.....
come lanciare vdr ? ho uato un bellissimo runvdr.sh, che mi carica tutti i plugin e se vdr crasha me lo rilancia, ma attualmente lo eseguo come root da / etc / init.d / rcS
lo passo su .rclocal ?
che script usate per lanciare xine, e con che impostazioni ?
attualmente uso uno scriptino preso da yavdr , start-xine , con queste opzioni
XINEOPTS="-f -A alsa --post vdr --post vdr_video --post vdr_audio --verbose=2 --no-logo --no-splash --deinterlace -pq"
ma se malauguratamente vdr va' in crash, debbo lanciare lo scriptino a manina....
anche se lo script continene
while [ ! -e /tmp/vdr-xine/stream ] ; do sleep 1 ; done
/usr/bin/xine $XINEOPTS vdr:/tmp/vdr-xine/stream#demux:mpeg_pes
purtroppo con lo scripting bash sono a zero......
come lanciare automaticamente vdr e xine
Moderatori: ragno, tapino, alez, zulu, davidea
Re: come lanciare automaticamente vdr e xine
@davidea: cambiare la "posizione di lancio" non cambia nulla, a parte il fatto che da local hai il vantaggio (o svantaggio) che se sicuro che lo script viene avviato per ultimo...
Per funzionare bene, runvdr.sh deve effettuare un loop
:start
+ testa caricamento driver
+--> carica driver dvb se sono giu
+ testa caricamento xine
+--> carica xine se e' giu
- caricamento vdr
- killa xine
- unload driver
goto start
Questo e' il minestrone che posso passarti...
test caricamento driver, load ed unload...okkio che il test e' per la FF (dvb_ttpci)
loop principale vdr, kill e restart...
In pratica ti manca di gestire xine e adattarlo ai tuoi path...
N.B. etc => ect
ciao
Per funzionare bene, runvdr.sh deve effettuare un loop
:start
+ testa caricamento driver
+--> carica driver dvb se sono giu
+ testa caricamento xine
+--> carica xine se e' giu
- caricamento vdr
- killa xine
- unload driver
goto start
Questo e' il minestrone che posso passarti...
test caricamento driver, load ed unload...okkio che il test e' per la FF (dvb_ttpci)
loop principale vdr, kill e restart...
In pratica ti manca di gestire xine e adattarlo ai tuoi path...
N.B. etc => ect
Codice: Seleziona tutto
#!/bin/sh
# runvdr
#
#export LD_ASSUME_KERNEL=2.4.19
#export LANG=it_IT
#export LC_COLLATE=it_IT
function DriverLoaded()
{
ISLOAD="`lsmod | grep -c 'dvb_ttpci'`"
if [ $ISLOAD -eq 0 ] ; then
echo "Driver da caricare"
return 1
else
echo "driver caricati"
return 0
fi
}
# Load all DVB driver modules needed for your hardware:
function LoadDriver()
{
# dvb-s
modprobe dvb-core dvb_shutdown_timeout=0
modprobe dvb-ttpci hw_sections=0
# modprobe b2c2-flexcop-pci
# modprobe budget-ci
# dvb-t
modprobe saa7134 card=12 tuner=63 i2c_scan=1
sleep 2
}
# Unload all DVB driver modules loaded in LoadDriver():
function UnloadDriver()
{
# modprobe -r dvb-ttpci b2c2-flexcop-pci
# modprobe -r dvb-ttpci budget-ci
modprobe -rf saa7134_dvb saa7134 tuner dvb_pll
modprobe -rf dvb-ttpci ves1x93 stv0299
## modprobe -r dvb-ttpci ves1x93 stv0299
## modprobe -r saa7134_dvb saa7134
# modprobe -r budget-ci tda1004x
# rmmod -f budget-ci
# modprobe -r budget-ci tda1004x
# modprobe -r budget tda1004x
# modprobe -r dvb-ttpci ves1x93 stv0299
# rmmod dvb-ttpci saa7146_vv saa7146 videodev video_buf \
# evdev video_buf l64781 nxt2002 bcm3510 ves1820 stv0299 tda8083 stv0297 mt312 mt352\
# firmware_class ttpci_eeprom ves1x93 dvb_core >/dev/null 2>&1
}
KILL="/usr/bin/killall -q -TERM vdr"
VIDEODIR="/video"
CFGDIR="config"
VDRCFG="/ect/vdr"
VDRDIR="/usr/local/src/VDR"
VDRPRG="./vdr"
#contiene i parametri di vdr
VDRPAR="--terminal=/dev/tty12 \
--lirc \
--log=1 \
--watchdog=30 \
--epgfile=$VDRCFG \
--config=$VDRCFG/$CFGDIR \
--video=$VIDEODIR \
--shutdown=$VDRCFG/vdroff.sh \
--timeset=$VDRCFG/timeset.sh \
"
# ogni $P_ contiene il comando per caricare il plugin con i suoi parametri
P_MPLAYER="-P'mplayer --mplayer=$VDRCFG/$CFGDIR/mplayer.sh --mount=$VDRCFG/$CFGDIR/mount.sh'"
# altri plugghi
P_ROTOR="-Protor"
# il resto e' segretissimo... :)
# assembla comando per lanciare vdr
VDRCMD="$VDRPRG $VDRPAR \
$P_MPLAYER \
$P_ROTOR '$*'"
# testa se deve caricare i driver
if ! DriverLoaded; then
LoadDriver
fi
# main loop, mai fuori da questo... :)
while (true) do
cd $VDRDIR
# esegue vdr e tutto il suo ambaradan...
eval "$VDRCMD"
# quando esce killa comunque vdr
$KILL
sleep 1
echo "Unload DVB driver..."
UnloadDriver
sleep 5
LoadDriver
echo "`date` restarting VDR"
done
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Re: come lanciare automaticamente vdr e xine
ho modificato la parte finale del mio runvdr cosi:
in modo che una volta uscito dall' esecuzione di vdr per qualsiasi motivo, fa' nell' ordine
kill di vdr se casomai ci fosse un' altra istanza attiva
kill di xine
kill di xine , non so perche' ma mi viene rilanciato subito dopo
unoad/load sono vuote
riavvio del processo di vdr
cio' succede sia che io riavvi vdr da telecomando che sia che esca per errore, in ogni caso, per la partenza all' avvio per ora lo lancio tramite scriptino / etc / init.d / vdr start/stop, ancora non mi fa' il restart
invece siccome come frontend uso xine, ho adottato questo scriptino , che come modificato ora va' che e' una bellezza
esso attende 10 secondi (in modo da stabilizzare vdr), comunque attende che venga creato il file dello stream, quindi fa' partire xine
la riga if test, non mi chiedete cosa faccia, non lo so!!!!
eventualmente killa xine se ancora attivo /altra istanza
aspetta altri 5 secondi e reinizia
tale scriptino viene lanciato in automatico da gnome all' avvio.
finalmente mi funziona il riavvio e non devo sempre andare a spegnere e riaccendere la vdrbox
Codice: Seleziona tutto
while (true) do
eval "$VDRCMD 2>>/var/log/vdr2.log"
if test $? -eq 0 -o $? -eq 2; then exit; fi
echo "`date` reloading DVB driver">>/var/log/vdr2.log
$KILL $VDRPRG
echo "`date` killato vdr">>/var/log/vdr2.log
sleep 3
killall -9 xine
echo "`date` killato xine 1">>/var/log/vdr2.log
sleep 2
killall -9 xine
echo "`date` killato xine 2">>/var/log/vdr2.log
UnloadDriver
LoadDriver
echo "`date` riavviato vdr">>/var/log/vdr2.log
echo "`date` restarting VDR"
done
kill di vdr se casomai ci fosse un' altra istanza attiva
kill di xine
kill di xine , non so perche' ma mi viene rilanciato subito dopo
unoad/load sono vuote
riavvio del processo di vdr
cio' succede sia che io riavvi vdr da telecomando che sia che esca per errore, in ogni caso, per la partenza all' avvio per ora lo lancio tramite scriptino / etc / init.d / vdr start/stop, ancora non mi fa' il restart
invece siccome come frontend uso xine, ho adottato questo scriptino , che come modificato ora va' che e' una bellezza
Codice: Seleziona tutto
XINEPRG="/usr/bin/xine"
XINEOPT="-D -V xv -f -r anamorphic --post vdr_video --post vdr_audio --post upmix_mono --post vdr --verbose=2 \"vdr:/tmp/vdr-xine/stream#demux:mpeg_pes\""
XINECMD="$XINEPRG $XINEOPT"
while (true) do
sleep 10
while [ ! -e /tmp/vdr-xine/stream ] ; do sleep 1 ; done
eval "$XINECMD"
if test $? -eq 0 -o $? -eq 2; then exit; fi
$KILL $XINECMD
sleep 5
echo "`date` restarting xine"
done
la riga if test, non mi chiedete cosa faccia, non lo so!!!!
eventualmente killa xine se ancora attivo /altra istanza
aspetta altri 5 secondi e reinizia
tale scriptino viene lanciato in automatico da gnome all' avvio.
finalmente mi funziona il riavvio e non devo sempre andare a spegnere e riaccendere la vdrbox