vamos a entender el script para ver los fallos:
Código:
#!/bin/sh
CAMNAME="|CCcam| mbox Sbox"
remove_tmp () {
rm -rf /tmp/*.info* /tmp/*.tmp*
}
case "$1" in
start)
echo "[SCRIPT] $1: $CAMNAME"
remove_tmp
/usr/bin/ntpdate -v -b hora.rediris.es >> /tmp/ntpdate.log
sleep 2
/usr/bin/sbox &
sleep 5
sh /usr/script/sboxtest.sh &
sleep 1
/bin/mkdir -p /dev/dvb/adapter1
sleep 3
if ! grep '^A:.*' /usr/keys/mbox.cfg > /dev/null
then
echo "A: { 1 }" >> /usr/keys/mbox.cfg
fi
sed -i '/^P:/d' /usr/keys/mbox.cfg
/usr/bin/mbox > /dev/null &
sleep 10
sed -i '/DVB API/d' /etc/CCcam.cfg
/usr/bin/CCcam &
;;
stop)
echo "[SCRIPT] $1: $CAMNAME"
killall sbox 2>/dev/null
killall CCcam 2>/dev/null
touch /tmp/mbox.kill
killall socat 2>/dev/null
sleep 10
killall -9 sbox >/dev/null
killall -9 CCcam 2>/dev/null
killall -9 mbox 2>/dev/null
killall -9 socat 2>/dev/null
remove_tmp
;;
*)
$0 stop
exit 0
;;
esac
exit 0
Primera parte:
sleep 2
/usr/bin/sbox &
No tiene mas ciencia se arranca sbox
segunda parte
sleep 5
sh /usr/script/sboxtest.sh &
No tiene mas ciencia se arranca un script test sbox..
tercera parte:
sleep 1
/bin/mkdir -p /dev/dvb/adapter1
Se crea una carpeta llamada adapter1 en el deco en la direccion /dev/dvb/
cuarta parte
sleep 3
if ! grep '^A:.*' /usr/keys/mbox.cfg > /dev/null
then
echo "A: { 1 }" >> /usr/keys/mbox.cfg
fi
sed -i '/^P:/d' /usr/keys/mbox.cfg
esta parte te edita el archivo mbox.cfg, por defecto mbox viene como A 0 esto quiere decir que busca el demux0 y ca en la carpeta /dev/dvb/adapter0, pues bien despues de esta parte este script ha puesto A 1 es decir ahora mbox buscara el demux0 y ca en la carpeta /dev/dvb/adapter1
parte quinta
/usr/bin/mbox > /dev/null &
no tiene ciencia se arranca mbox
parte sexta
sed -i '/DVB API/d' /etc/CCcam.cfg
con esto lo que hacemos es borrar dvbapi = -1 en caso que este en el cccam.cfg es decir hacemos que cccam actue como visor...
FALLOS O COSAS NO DICHAS DE LO QUE LLEVAMOS HASTA EL MOMENTO
A) /bin/mkdir -p /dev/dvb/adapter1
Si creamos esta carpeta es por que dentro vamos a tener ca y demux0 para que mbox pueda arrancar (que no visionar) es decir para compartir...ya que visionaremos con otra emu.... en el script no se crea el ca y demux 0 dentro de adapter1, por lo tanto no sirve de nada crear la carpeta si luego no vamos a crear dentro los dos archivos que necesita mbox para arrancar...
B) if ! grep '^A:.*' /usr/keys/mbox.cfg > /dev/null
then
echo "A: { 1 }" >> /usr/keys/mbox.cfg
fi
sed -i '/^P:/d' /usr/keys/mbox.cfg
Con esto se crea en el archivo mbox.cfg en la parte ultima este texto:
A: { 1 }
Pero para que esos comandos funcionen hay que decir que en el archivo mbox.cfg originario debe estar:
//A: { 0 }
y ademas el archivo mbox.cfg debe tener dos lineas en blanco en la parte ultima....
si dejamos el archivo mbox.cfg tal como esta por defecto...no te creara el A1 y por lo tanto por defecto seguira utilizando A 0 y no arrancar ya que buscara el ca y demux0 en el adapter0, el cual no lo podra utilizar ya que esta siendo utilizado por sbox, en el caso que estuviramos utilizando el sbox como visor es decir con el only server =0, en caso que estuvieramos utilizando el sbox con only server =1 o sea como lector de tarjeta pero no como visor, entonces en el momento de arrancar mbox el ca y demux0 del adapter 0 estaria libre y si arrancaria mbox como visor y como compartir, pero claro entonces para que queremos crear la carpeta adapter 1 y para que queremos meterle al script esta parte de codigo dicha.
ademas en el script se pone killall socat dos veces cuando ese proceso no lo hemos arrancado por lo tanto seria codigo innecesario..
Por lo tanto si lo que queremos es arrancar mbox solo para compartir, y visionar con cccam-sbox que imagino que seria la intencion de jbc por que si no para que le mete al script lo de adapter 1 y para que intenta crear el A 1 en mbox.cfg pues seria de la siguiente manera:
Ahora bien si la intencion de jbc era visionar con mbox pues este script que ha puesto funcionar funcionaria.... pero habria que decir que sbox deberia estar en only server = 1 para que no ocupe el dvbapi y luego pueda arrancar mbox, y si esta era su intencion entonces sobraria en el script lo de crear la carpeta adapter 1 y lo de intentar crear A 1 en el mbox.cfg.
y si lo que se quiere es visionar y compartir con sbox-cccam y compartir con mbox, pues entonces si es necesario el adapter 1 el ca y demux 0 dentro de adapter 1 y crear A 1 en el mbox.cfg.... entonces el script correcto seria:
TENIENDO EN CUENTA QUE ANTES NUESTRO ARCHIVO MBOX.CFG debera tener //delante del A0 y dos espacios al final del archivo para que se cree el A1
Código:
#!/bin/sh
CAMNAME="|CCcam| mbox Sbox"
remove_tmp () {
rm -rf /tmp/*.info* /tmp/*.tmp*
}
case "$1" in
start)
echo "[SCRIPT] $1: $CAMNAME"
remove_tmp
/usr/bin/ntpdate -v -b hora.rediris.es >> /tmp/ntpdate.log
sleep 2
/usr/bin/sbox &
sleep 5
sh /usr/script/sboxtest.sh &
sleep 1
/bin/mkdir -p /dev/dvb/adapter1
/usr/bin/mkfifo -m 777 /dev/dvb/adapter1/ca0
/usr/bin/mkfifo -m 777 /dev/dvb/adapter1/demux0
sleep 5
sed -i '/^P:/d' /usr/keys/mbox.cfg
if ! grep '^A:.*' /usr/keys/mbox.cfg > /dev/null
then
echo "A: { 1 }" >> /usr/keys/mbox.cfg
fi
/usr/bin/mbox > /dev/null &
sleep 10
sed -i '/DVB API/d' /etc/CCcam.cfg
/usr/bin/CCcam &
;;
stop)
echo "[SCRIPT] $1: $CAMNAME"
killall sbox 2>/dev/null
killall CCcam 2>/dev/null
touch /tmp/mbox.kill
sleep 10
killall -9 sbox >/dev/null
killall -9 CCcam 2>/dev/null
killall -9 mbox 2>/dev/null
remove_tmp
;;
*)
$0 stop
exit 0
;;
esac
exit 0
Si teneis dudas decirlas..... asi ya no es meter un script y listo, es saber que estamos haciendo y que errores podemos estar cometiendo...
La primera pregunta despues de todo el rollo seria:
¿jbc con el script CAMNAME="|CCcam| mbox Sbox" que quieres hacer?
visionar con mbox----> ¿¿en este caso si quieres visionar con mbox por que lleva el script la creacion de adapter 1 y el intento de poner A 1 en el mbox.cfg??
y si era compartir con mbox y visionar con las otras emus---> pues leyendo el post ya ves lo que falta