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