L'objectif de ce tuto est de fournir une méthode détaillée pour installer une carte DVB-S Hauppauge NOVA-S-PLUS avec un lecteur de carte « USB INFINITY Unlimited » pour recevoir les flux satellite de CANALSAT et CANALPLUS. (fonctionne aussi avec un lecteur Tevii usb)
Cette installation a été réalisée sur Mandriva 2008-1 avec le noyau 2.6.24, 2.6.25, 2.6.30 et 2.6.31
« Avec la NOVA-S-Plus dans votre PC, vous pouvez recevoir la télévision et la radio par satellite avec une qualité d'image parfaite et une excellente qualité sonore » nous annonce la plaquette commerciale.
La carte WinTV-NOVA-S-Plus est connectée sur bus PCI, elle intègre un tuner DVB-S, compatible DiSEqC1.0., une entrée vidéo S-Vidéo et composite & audio mini-jack, et est fourni avec une télécommande et un récepteur infrarouge. Elle comprend un circuit de compression MPJEG2 donc les fichiers vidéo fournis seront dans ce format.
http://www.hauppauge.fr/pages/products/data_nova-s-plus.html
http://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-NOVA-S-Plus
La carte NOVA-S-PLUS est reconnu automatiquement par le noyau comme une carte cx88 http://www.linuxtv.org/wiki/index.php/Cx88_devices_(cx2388x)
installez votre carte et vérifiez en taper les séquences suivantes
lspci | grep video 05:02.0 Multimedia video controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)
dmesg | grep cx88 cx88[0]: subsystem: 0070:9202, board: Hauppauge Nova-S-Plus DVB-S [card=37,autodetected] cx88[0]: TV tuner type 4, Radio tuner type -1 cx88[0]: hauppauge eeprom: model=92001 input: cx88 IR (Hauppauge Nova-S-Plus as /class/input/input6 cx88[0]/1: CX88x/0: ALSA support for cx2388x boards cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.6 loaded cx88[0]/2: cx2388x 8802 Driver Manager cx88[0]/2: found at 0000:05:02.2, rev: 5, irq: 23, latency: 64, mmio: 0xfc000000 cx88/2: cx2388x dvb driver version 0.0.6 loaded cx88/2: registering cx8802 driver, type: dvb access: shared cx88[0]/2: subsystem: 0070:9202, board: Hauppauge Nova-S-Plus DVB-S [card=37] cx88[0]/2: cx2388x based DVB/ATSC card DVB: registering new adapter (cx88[0]) cx88[0]: irq mpeg [0x100000] ts_err?* cx88[0]/2-mpeg: general errors: 0x00100000 cx8802_start_dma() Failed. Unsupported value in .mpeg (0x00000001) cx8802_start_dma() Failed. Unsupported value in .mpeg (0x00000001)
Votre carte est installée et prête à fonctionné. Nous allons pouvoir la tester.
Pour tester la carte, nous allons l'intégrer dans Mythtv pour recevoir les chaines non cryptées. Arrêtez le backend et démarrez le myth-setup
Ajouter une carte vidéo, choisissez le type de carte carte d'acquisition DVB
,
puis sélectionnez le numéro du périphérique DVB
qui correspond à votre carte,
son nom doit apparaître sur la ligne du dessous,
puis cliquez dans l'option DISEqC
, tapez sur enter et choisir tête de satellite LNB
. (Esc pour sortir)
dans options d'enregistrement
, mettre le nombre max. d'enregistrements
à 1 (le multirec ne fonctionne pas avec le décryptage).
valider cette configuration
ajoutez une source vidéo par exemple canalsat
si vous obtenez un message d'erreur, il faut lancer dans une console mythfilldatabase –manual
et répondre aux questions qui vous sont posées
dans la page “connexions”, sélectionnez l'entrée qui correspond à votre carte,
donnez un nom à cette entrée,
sélectionnez la source vidéo “canalsat”
sélectionnez “recherche automatique des chaines”
puis dans la page qui s'ouvre, selectionnez dans l'option “type de balayage:” recherche complète de canaux “scanner un transport” Scanner la fréquence 11509 V 22000 qui contient entre autre Al Jazeera en clair
Si le scan se passe correctement, vous devriez avoir la liste des chaines qui contient la chaine “Al Jazeera” sur le canal 7012
Réglez le canal initial sur “7012” et validez vos choix. Voilà votre carte est programmée et prête pour le test.
relancer le backend
/etc/init.d/mythbackend restart
puis ouvrez le frontend et regardez la télé.
Après quelques secondes, la chaine Al Jazeera apparaît.
Bravo votre carte est opérationnelle pour la réception satellite des chaînes en clair.
Pour pouvoir décrypter les chaines, il va vous falloir: une carte DVB-S correctement configurée (si vous êtes arrivé jusqu'ici, c'est chose faite), un lecteur de carte externe (puisque la carte NOVA-S-PLUS ne possède pas de connecteur pour raccorder un CAM), une carte d'abonnement valide.
Le lecteur de carte ne fournit aucune information, il faut utiliser un logiciel de lecture de carte (newcs dans notre cas), puis un logiciel de décryptage (open-sasc-ng) qui va utiliser les informations fournies par le logiciel lecteur de carte. Au cours de ce processus, un tuner virtuel sera créé et c'est celui que Mythtv utilisera pour visualiser les chaines decryptées.
J'utilise le lecteur de carte INFINITY USB Unlimited
qui est compatible avec linux et est capable de lire toutes les cartes d'abonnement.
Si vous disposez d'un noyau récent 2.6.27, le lecteur est directement reconnu et le driver est installé. Le driver pour le lecteur de carte Infinity USB Unlimited est intégré dans le noyau 2.6.27 et plus
Le module iuu_phoenix
peut être configuré pour accélérer la lecture de la carte. Voir dans la documentation du module disponible avec le noyau.
> dmesg | grep iuu iuu_phoenix 6-2:1.0: IUU Phoenix converter detected usbcore: registered new interface driver iuu_phoenix /~/iuu_phoenix-0.8/iuu_phoenix.c: Infinity USB Unlimited Phoenix driver v0.8
Si ce n'est pas le cas, vous allez devoir télécharger le driver et le compiler Il est disponible sur ce site. et dans ce ce forum, vous trouverez une explication en français pour installer le driver.
J'ai utilisé newcs
qui a été développé par les DreamBoxiens (qui fonctionne sous linux), il est fourni sous forme de binaire. Il suffit de télécharger le binaire qui vous intéresse et le mettre dans /usr/bin ou /usr/local/bin.
Il existe plusieurs fichiers binaires pour chaque configuration de machine (i686, x86-64, …..), ceux qui nous intéressent, sont newcs.i686.usb et newcs.x86_64.usb
Vous pouvez télécharger newcs sur ce site.
cp /newcs-1..../bin/newcs...... /usr/bin # choisir le binaire qui vous convient chmod 755 /usr/bin/newcs......
Newcs nécessite un fichier de configuration newcs.xml à mettre dans /etc/
/etc/newcs.xml
<?xml version="1.0"?> <!-- For setup-issues, look in readme.txt! If there are other troubles, try different forums or irc channels around :o) The configfile are NOT case-sensitive, and shouldnt care about dos/unix cr/lf. ** This is the example file for Phoenix Interface. --> <newCSconfig> <readers name="Card Readers"> <device> <name>Phoenix Interface</name> <type>phoenix</type> <mhz>368</mhz> <node>/dev/infinity</node> <parity>even</parity> <reset>normal</reset> <export>Yes</export> <enabled>Yes</enabled> <blocksa>No</blocksa> <blockua>No</blockua> <blockga>No</blockga> <crypto-special>No</crypto-special> <ipk>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</ipk> <ucpk>0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</ucpk> <PTShandshake>No</PTShandshake> <carddetect>yes</carddetect> <newcamd_port>12000</newcamd_port> <autosid>yes</autosid> <Seca-PPV>no</Seca-PPV> <pincode>0000</pincode> <priority>round</priority> </device> </readers> <cache> <emm>20</emm> <ecm>-1</ecm> </cache> <debug> <password>NewCSpwd</password> <level>normal</level> <type>init</type> <output>file</output> <logfile>/var/log/newcs.log</logfile> </debug> <newcamdserver> <enabled>Yes</enabled> <name>VDR-SC</name> <deskey>0102030405060708091011121314</deskey> <user> <name>dummy</name> <password>dummy</password> <hostname>localhost</hostname> <port>12000</port> <au>off</au> <sidoverride>on</sidoverride> <spider>No</spider> <readers>phoenix</readers> #<rate>2</rate> </user> </newcamdserver> </newCSconfig>
Pour de plus amples renseignements, consultez ce tuto détaillé sur newcs.
créer le fichier de log
touch /var/log/newcs.log chmod 777 /var/log/newcs.log
J'ai utilisé open-sasc-ng. C'est le logiciel qu'il faut pour décrypter les chaînes du satellite. Il faut télécharger open-sasc-ng puis le compiler pour le noyau que vous utilisez. Installez le module dvbloopback, le fichier de configuration et enfin lancer sasc-ng. Voir installer sasc-ng
</code> Arrêtez le mythbackend, puis lancer sasc
/etc/init.d/mythbackend stop cd /usr/local/open-sasc-ng ./sasc-ng -j 0:1
Si tout c'est bien passé, vous pouvez vérifier que vous avez 2 adapter
dans le répertoire /dev/dvb.
Rien de bien compliquer à ce niveau là, il faut juste modifier la carte d'acquisition DVB pour la faire pointer sur le tuner virtuel 1
dans notre cas. Et c'est fini.
Vous retournez dans connexions, dvbinput⇒canalsat et vous faites une recherche auto des chaînes sur la fréquence 11856 V 27500 3/4 pour avoir les premières chaînes cryptées de Canalsat. Vous pouvez vérifier que les chaînes scannées ont été ajoutées à la liste des chaînes. Notez le numéros des nouvelles chaînes.
Vous devez relancer le backend pour que les modifications soient prises en compte
/etc/init.d/mythbackend restart
Puis dans le frontend, regardez la télé et vérifiez que vous visualisez les chaînes en clair , puis choisissez une chaîne cryptée (qui soit dans votre abonnement); il faut attendre parfois 5 minutes pour avoir le premier décodage, soyez patient, cette attente est nécessaire pour chaque chaîne la première fois.
ATTENTION il faut bien respecter l'ordre de montage, en premier newcs, puis dvbloopback, puis sasc et enfin le backend. Si vous n'êtes pas sûr de cet ordre, arrêter le backend, et refaites la séquence de montage en manuel
Si tout c'est bien déroulé, il vous reste à scanner toutes les fréquences (environ 500 chaînes vont être créées) ou uniquement les fréquences qui vous intéressent en vous reportant sur le site http://www.lyngsat.com/astra19.html.
Il vous faut à présent lancer mythfilldatabase –manual pour récupération les identifiants xmltv des chaines qui serviront à télécharger les programmes des chaînes.
Pour que tout ce petit monde fonctionne correctement au démarrage, il faut respecter les règles suivantes: newcs doit fonctionner et la carte initialiser avant le démarrage de sasc-ng dvbloop doit fonctionner avant que sasc-ng soit lancé sasc-ng doit fonctionner avant que le mythbackend soit lancé mythfrontend ou mythwelcome sera lancé en dernier. Vous devez également vous assurer que les drivers du lecteur infinity et de la carte DVB sont montée toujours au même endroit. Pour cela, je vous recommande de créer 2 rules dans udev créer un fichier de rules pour mythtv [code]cd /etc/udev/rules.d mk 10-mythtv.rules[/code] Editer le fichier créé et ajouter deux lignes du type
# monter le lecteur sous le nom de /dev/infinity KERNELS=="6-2", DRIVERS=="usb", ATTRS{product}=="Infinity USB Unlimited", SYMLINK+="infinity" # montage nova-s-plus sur adapter 100 SUBSYSTEM=="dvb", ATTRS{subsystem_vendor}=="0x0070", ATTRS{subsystem_device}=="0x9202", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter100/%%s $${K#*.}'", SYMLINK+="%c"
Nous allons créer 2 scripts sascd et newcs qui permettront d'automatiser les taches.
Créer 2 liens pour lancer les scripts
cd /etc/rc5.d ln -s /etc/init.d/sascd mv sascd S50sascd ln -s /etc/init.d/newcs mv newcs S19newcs
Le script sascd est particulièrement puissant et complet, puisqu'il peut installer le module dvbloopback et sasc-ng. Mais il peut aussi monter dans l'ordre désiré les modules des cartes DVB et autres, ou arrêter/lancer le backend.
/etc/init.d/sascd
#! /bin/bash # # sasc-ng and driver management script by opacus # thanks to xjosh for MapCards routine # Updated 03-10-08 - version 17.0 # # IMPORTANT: Copy dvbloopback.ko (or link it) to /lib/modules/2.6.XX/misc # after that run "depmod -a" so the modprobe works without being in the current directory. # Two distribution packages must be priorly installed: "screen" and "dvbsnoop" # # Depending on your configuration, the script could load, reload or kill sasc-ng, mythtv, vdr and all the associate drivers. # Link this script as part of your startup default level. Procedure may vary as per your distro. # # These are the available commands on the console (please test the script manually before linking it to startup): # sascd start >> Normal boot start. Starts sasc-ng and optionally mythtv or vdr. Assumes all driver modules preloaded # sascd restart >> Restarts sasc-ng and optionally mythtv or vdr. Assumes all driver modules preloaded # sascd stop >> Stops sasc-ng and optionally mythtv or vdr. Unloads all driver modules # sascd reload >> Restarts sasc-ng and optionally mythtv or vdr. Unloads and reloads all driver modules. # sascd reload-drivers >> Unloads and reload all driver modules. ## ************* Configuration Section *************** ## ENABLED=1 # Change to 1 to enable sasc-ng's script. Change to 0 to disable it. SCREEN="no" # Change to "yes" to enable starting sasc-ng, myth or vdr thru "screen" command. # With screen you could get dynamic output using command: # "screen -r sasc-ng-scr" for sasc-ng or "screen -r addl-scr" for myth or vdr # Screen is recommended mostly for debugging only. # You MUST add a daemon option to sasc-ng, vdr and mythtv if SCREEN="no" # otherwise remove the daemon option if SCREEN="yes" NAME="sascd" # name of this script. LOOPDRIVER=" dvbloopback" # name of dvbloopback module SASCLIB="LD_LIBRARY_PATH=/usr/local/share/open-sasc-ng/sc/PLUGINS/lib/ " SASCDIR="/usr/local/share/open-sasc-ng/" # sasc-ng directory SASCPRG="sasc-ng" # name of sasc-ng program to be started by this script. KILLPRGS=" mythbackend " # programs to be killed when sascd exits # Add here the startup Options passed to SASC-NG. Adjust according to your devices. # DO NOT USE ANY JOIN PARAMETER. This is appended automatically. # SASCOPTION=" --daemon --sid-allpid --cam-dir=/video/plugins -o --log /var/log/sasc-ng/sasc-ng.log" # example for nexus #SASCOPTION=" --daemon --sid-allpid --cam-dir /etc/camfiles --cam-budget -o --log /var/log/sasc-ng.log" # example for genpix + budget card + nexus SASCOPTION=" --daemon --cam-dir=/usr/local/share/open-sasc-ng/sc_files --log /var/log/sasc-ng.log" # Add here the of name of mythtv or vdr which may be loaded automatically after sasc-ng: # ADDLPRG="xxxxxxxx" # Use xxxxxxxx if no additional program is to be started ADDLPRG="" # additional program will be started (choose mythbackend or vdr, but not both) ADDLDIR="/etc/init.d/" # additional program directory ADDREAL="" # Add here the startup Options passed to ADDLPRG: #ADDLOPTIONS=" " # If no options, leave at least an empty string. # ADDLOPTIONS=" -d -Premote -Pprefermenu -Pyaepg -D 1 -v /video " # additional options for vdr ADDLOPTIONS=" start" # additional options for mythtv. # Add here your dvb card or remote control drivers which may be loaded and unloaded with this script (in addition of LOOPDRIVER). # CAUTION: The order of drivers is critical. Drivers with dependants must be at the end of the list # THE WRONG ORDER OF DRIVERS MAY CRASH YOUR SYSTEM # Do you have a genpix usb adapter (yes/no) ? GPADAPTER="no" GPDRIVERS="dvb_usb_gp8psk" # This is the driver to be loaded. GPDRIVERSKILL=" dvb-usb-gp8psk dvb-usb dvb-pll dvb-core " # These are the v4l modules to be unloaded # Do you have a Twinhan 1020a budget card (yes/no) ? BUDGET="no" BUDGETDRIVERS1="bttv" # This is the driver1 to be loaded BUDGETDRIVERS1OPTION="i2c_hw=1 card=0x71" # This driver1 needs special options BUDGETDRIVERS2="dvb_bt8xx" # This is the driver2 to be loaded BUDGETDRIVERSKILL=" dvb_bt8xx tuner dst bt878 bttv ir_common compat_ioctl32 btcx_risc tveeprom videodev v4l2_common v4l1_compat video_buf dvb_core " # These are the v4l modules to be unloaded # Do you have a digistar 103g budget card (yes/no) ? DIGIBUDGET="no" DIGIBUDGETDRIVERS="cx88_dvb" # This is the driver1 to be loaded DIGIBUDGETDRIVERSKILL=" cx88_dvb cx24123 cx88_vp3054_i2c videobuf_dvb cx8800 cx8802 cx88xx videodev v4l1_compat ir_common compat_ioctl32 v4l2_common videobuf_dma_sg videobuf_core btcx_risc tveeprom" # These are the v4l modules to be unloaded # Do you have a Nexus-S card (yes/no) ? NEXUS="no" NEXUSDRIVERS="dvb_ttpci" # This is the driver to be loaded. NEXUSDRIVERSKILL=" ves1x93 dvb_ttpci stv0299 video_buf saa7146 v4l2_common v4l1_compat ttpci_eeprom saa7146_vv videodev dvb_core " # These are the v4l modules to be unloaded # NEXUSDRIVERSKILL=" dvb_ttpci lnbp21 l64781 saa7146_vv video_buf saa7146 ves1820 tda8083 sp8870 stv0297 ves1x93 ttpci_eeprom stv0299 dvb_core " # These are the kernel modules to be unloaded # Number of times runsasc will attempt to restart SASC-NG MAXTRIES=3 # Do you want sascd to monitor sasc-ng continuously (yes/no)? MONITOR="no" # <<<< say "yes" only if sascd is started MANUALLY from the console. # When monitor is "yes", how often sascd will check the status of sasc-ng (in seconds) ? INTERVAL=20 # Set STARTFLAG to 1 if you want the drivers NOT to be unloaded and reloaded on command "sascd start" or "sascd restart" # In this case, the script expects the drivers to be priorly loaded on boot-up by udev of by other module loading routines. # When STARTFLAG=0 all driver modules are unloaded and force reloaded on: "sascd start" and "sascd restart" commands. # On command "sascd reload" drivers get unloaded and reloaded regardless of STARTFLAG settings. STARTFLAG=1 # Input your preferred virtual card map order here. If needed add more adapters as dvb[2], dvb[3]... # This is the virtual adapter order known to mythtv database, regardless of real adapter order. # As an example if you have two adapters: dvb[0] will always be known to Mythtv as virtual adapter 2, dvb[1] as 3, etc.. # The real adapter order could change but the virtual order stays the same. . # Initially write any card name here and run the script. After you'll see the correct names printed out, please insert them. # dvb[0]="ST STV0299 DVB-S" # this is a nexus-s card # dvb[1]="Conexant CX24123/CX24109" # this is a digistar budget card # dvb[2]="DST DVB-S" # this is a twinhan budget card # dvb[3]="Genpix 8psk-to-USB2 DVB-S" # this is genpix-usb adapter ## ******************* End Configuration Section ***************** ## #Global variables (do not change) FILENAME="" RUNFLAG=1 MODULE="" MODULEOPTION="" LOOPCOUNT=0 JOINPARM="" DVBSIZE=2 # Calculate the real-virtual join parameters MapCards() { JOINPARM="" JOINPARM=`echo -n "$JOINPARM -j 100:3 -j 0:4"` return 1 } # Test modules for existence TestModule() { grep -qse $MODULE [-_]core /proc/modules } # Insert generic modules LoadModule() { local LOOP=0 while (true); do if ! TestModule; then if [ $STARTFLAG -eq 0 ]; then if [ $((LOOP+=1)) -le $MAXTRIES ]; then insmod /usr/local/share/open-sasc-ng/dvbloopback.ko num_adapters=2 >> /var/log/sascd.log sleep 2 if TestModule; then return 1 fi else echo "ERROR: Module $MODULE failed insertion after $MAXTRIES tries. Exiting..." | tee -a /var/log/sascd.log exit 1 fi else echo "WARNING: Module $MODULE supposed to be loaded before running $NAME. Ignoring adapter..." | tee -a /var/log/sascd.log return 0 fi else return 1 fi done } # Load all DVBLoopback driver modules needed for your hardware: LoadDrivers() { if [ $STARTFLAG -eq 0 ]; then echo -e " `date` Loading all drivers" | tee -a /var/log/sascd.log fi if (test $BUDGET = "yes"); then MODULE=$BUDGETDRIVERS1; MODULEOPTION=$BUDGETDRIVERS1OPTION; LoadModule MODULE=$BUDGETDRIVERS2; MODULEOPTION=""; LoadModule fi if (test $DIGIBUDGET = "yes"); then MODULE=$DIGIBUDGETDRIVERS; MODULEOPTION=""; LoadModule fi if (test $NEXUS = "yes"); then MODULE=$NEXUSDRIVERS; MODULEOPTION=""; LoadModule fi if (test $GPADAPTER = "yes"); then MODULE=$GPDRIVERS; MODULEOPTION=""; LoadModule fi sleep 1 MapCards # Mapping is done after adapter driver insertion, but before dvbloopback sleep 1 STARTFLAG=0 MODULE=$LOOPDRIVER; MODULEOPTION=" num_adapters=$DVBSIZE"; LoadModule return 1 } # Unload all DVBLoopback driver modules loaded in LoadDrivers UnloadDrivers() { if [ $STARTFLAG -eq 0 ]; then echo -e " `date` Unloading all drivers" | tee -a /var/log/sascd.log screen -wipe > /dev/null 2>&1 killall -q $SASCPRG $KILLPRGS > /dev/null 2>&1 sleep 1 rmmod -f $LOOPDRIVER > /dev/null 2>&1 sleep 1 if (test $GPADAPTER = "yes"); then rmmod -f $GPDRIVERSKILL > /dev/null 2>&1 sleep 1 fi if (test $NEXUS = "yes"); then rmmod -f $NEXUSDRIVERSKILL > /dev/null 2>&1 sleep 1 rmmod -f $NEXUSDRIVERSKILL > /dev/null 2>&1 sleep 1 fi if (test $BUDGET = "yes"); then rmmod -f $BUDGETDRIVERSKILL > /dev/null 2>&1 sleep 1 fi if (test $DIGIBUDGET = "yes"); then rmmod -f $DIGIBUDGETDRIVERSKILL > /dev/null 2>&1 sleep 1 fi fi return 1 } # Retry and exit after MAXTRIES ReloadDrivers() { if [ $((LOOPCOUNT+=1)) -le $MAXTRIES ]; then echo " `date` $NAME trying $LOOPCOUNT time(s). Max retries $MAXTRIES" | tee -a /var/log/sascd.log UnloadDrivers sleep 5 LoadDrivers sleep 5 else echo "ERROR: Something is wrong! $SASCPRG could not be started. Exiting...." | tee -a /var/log/sascd.log UnloadDrivers sleep 5 # killall $NAME exit 1 fi return 1 } # Grep thru ps results and eliminate zombie processes. CheckStatus() { RUNFLAG=0 if (ps -A ax | grep -v "ps ax" | grep -v grep | grep $FILENAME | grep -v "<defunct>") > /dev/null 2>&1; then RUNFLAG=1 fi return 1 } # Print file status EchoF() { local YESNO="" if [ $RUNFLAG -eq 0 ]; then YESNO="NOT" fi if !(test $MONITOR = "yes"); then echo " `date` <<<<<< $FILENAME is $YESNO running >>>>>" | tee -a /var/log/sascd.log fi return 1 } # Retry loop RunLoop() { local RUNFLAGs=0 local RUNFLAGa=0 local LOOP=0 while (true); do sleep 1 if (test -f $SASCDIR$SASCPRG); then # check sasc-ng existence FILENAME=$SASCPRG; CheckStatus if [ $RUNFLAG -eq 1 ]; then RUNFLAGs=1 EchoF fi # if (test -e $ADDLDIR$ADDLPRG); then # check addl-prg existence # FILENAME=$ADDLPRG; CheckStatus # if [ $RUNFLAG -eq 1 ]; then # RUNFLAGa=1 # if [ $RUNFLAGs -eq 1 ]; then # EchoF # fi # fi # else # RUNFLAGa=1 # fi if (pidof mythbackend); then FILENAME=$ADDLPRG; echo "pid found" RUNFLAGa=1 if [ $RUNFLAGs -eq 1 ]; then EchoF fi else RUNFLAGa=1 echo "no pid found" fi echo "RUNFLAGs>> $RUNFLAGs RUNLGAGa>> $RUNFLAGa" if [ $RUNFLAGs -eq 0 ] || [ $RUNFLAGa -eq 0 ]; then ReloadDrivers sleep 5 echo "Starting $SASCLIB $SASCDIR$SASCPRG $SASCOPTION $JOINPARM " | tee -a /var/log/sascd.log if (test $SCREEN = "yes"); then # start sasc-ng with screen. Daemon option must not be set eval "screen -D -m -S sasc-ng-scr $SASCLIB $SASCDIR$SASCPRG $SASCOPTION $JOINPARM &" else # start sasc-ng without screen. Daemon option must be set eval "$SASCLIB $SASCDIR$SASCPRG $SASCOPTION $JOINPARM" fi # if (test -f $ADDLDIR$ADDLPRG) ; then # sleep 1 # cd $ADDLDIR # echo "Starting $ADDLDIR$ADDLPRG $ADDLOPTIONS " | tee -a /var/log/sascd.log # sleep 5 # if (test $SCREEN = "yes"); then # # start myth or vdr with screen. Daemon option must not be set # eval "screen -D -m -S addl-scr $ADDLDIR$ADDLPRG $ADDLOPTIONS &" # else # # start myth or vdr without screen. Daemon option must be set # eval "$ADDLDIR$ADDLPRG $ADDLOPTIONS" # start myth or vdr. # fi # else # echo "not starting program ($ADDLDIR$ADDLPRG)" # fi fi else echo "ERROR: file $SASCPRG not found. Exiting..." | tee -a /var/log/sascd.log exit 1; fi if (test $MONITOR = "yes"); then # echo -e "monitoring in progress... checking status again in $INTERVAL sec n" sleep $INTERVAL else if [ $RUNFLAGs -eq 1 ] && [ $RUNFLAGa -eq 1 ]; then exit 0; fi fi done } # Main script test "$ENABLED" != "0" || exit 0 #if (test $ADDLPRG = "mythbackend"); then # export MYTHCONFDIR=/var/lib/mythtv #fi case "$1" in start) RunLoop ;; stop) STARTFLAG=0 UnloadDrivers ;; restart) killall -q $SASCPRG $ADDLPRG $KILLPRG > /dev/null 2>&1 sleep 5 RunLoop ;; reload) STARTFLAG=0 killall -q $SASCPRG $ADDLPRG $KILLPRG >> /dev/null 2>&1 sleep 5 RunLoop ;; reload-drivers) STARTFLAG=0 killall -q $SASCPRG $ADDLPRG $KILLPRG > /dev/null 2>&1 sleep 5 UnloadDrivers sleep 5 LoadDrivers ;; *) echo "Use: $N {start|stop|restart|reload|reload-drivers}" >&2 ;; esac # killall $NAME exit 0
/etc/init.d/newcs
# !/bin/sh ### BEGIN INIT INFO # Provides: newcs # Required-Start: # Required-Stop: # Default-Start: 50 # Default-Stop: S # Short-Description: Start/Stop the NewCS server. ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/local/bin/newcs.x86_64.usb NAME="newcs.x86_64.usb" DESC="Newcs Daemon" echo "NewCS Script for: $NAME" | tee -a /var/log/newcsd.log test -x $DAEMON || exit 0 set -e # Set program options #OPTIONS="-c /etc/newcsd.xml" OPTIONS="" ##start## case "$1" in start) echo "Starting : $NAME" | tee -a /var/log/newcsd.log $DAEMON echo "...done" | tee -a /var/log/newcsd.log ;; ##stop## stop) echo "Stopping : $NAME " | tee -a /var/log/newcsd.log killall $NAME echo "...done" | tee -a /var/log/newcsd.log ;; ##restart## restart|force-reload) echo -n "restarting : $NAME " | tee -a /var/log/newcsd.log $0 stop && $0 start ;; *) N=/etc/init.d/$NAME # echo "Usage: $N {start|stop|restart}" >&2 echo "Usage: $N {start|stop|restart}" >&2 | tee -a /var/log/newcsd.log exit 1 ;; esac
Voila, si tout c'est bien passé, vous pouvez redémarrer votre machine et vérifier que Mythtv accède à vos cartes et affiche les chaines décryptées. Vous pouvez vérifier les ordres de montage ainsi que les informations de lancement dans les fichiers de log.
http://www.christhonie.co.za/node/9
https://opensvn.csie.org/traccgi/opensascng/wiki/mythbuntudvbcguide
rédigé par gilles74 en janvier 2009, mis à jour en janv 2010