====== Oscam ======
* Objet : logiciel Oscam
* Niveau requis :{{tag>Avisé}}
* Commentaires : // Lire les cartes d'abonnement aux bouquets satellite. //
* Suivi : {{tag>à-tester}}
* Création par [[user>davy]] le 19/04/2012
* Testé par .... le ....
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=5730|C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
===== Préambule =====
Oscam est un logiciel permettant de lire les cartes d'abonnement aux bouquets satellite afin que vos serveurs de réception satellite (VDR,[[:doc:media:tvheadend|TVheadend]], [[https://wiki.debian-facile.org/doc:media:mythtv | Mythtv]]) puissent décrypter les chaînes auxquelles vous avez souscrit.
===== Installation =====
La lecture de la carte d'abonnement peut être effectuée via un lecteur **Infinity USB Smart** ou **Smargo**. \\
Nous verrons ici comment configurer le lecteur Infinity USB Smart.
Il vous est également possible d'utiliser des lecteurs de carte intégrés à la carte DVB-S2, se référer alors à leurs procédures d'installation.
La communication avec le lecteur de carte est effectuée par l'intermédiaire de la librairie **libusb**. On va donc s'assurer de son bon fonctionnement afin qu'elle puisse être prise en charge par oscam.
==== Lecteur de carte à puce ====
Installer((Voir la commande [[:doc:systeme:apt:aptitude | aptitude]])) les paquets suivants :
apt-get install libusb-1.0-0 libusb-1.0-0-dev
Le lecteur doit alors être monté automatiquement au démarrage. \\
Pour s'en assurer vérifier si le fichier /dev/ttyUSB0 existe. \\
Si ce n'est pas le cas, c'est probablement dû à un conflit avec le paquet **brltty** qu'il faut alors désinstaller ainsi :
apt-get remove brltty
==== Chargement du module dans le lecteur ====
Point faible de ce tuto, il va nous falloir un PC équipé de Windows ou une machine virtuelle((voir : [[:doc:systeme:kvm]] par exemple)) pour commencer...
- Vérifier que l'interrupteur au dos du lecteur est en position **"normal"**
- Connecter le lecteur à un port USB, il sera détecté automatiquement par Windows
- Installer le [[http://www.wbe.dk/default.asp?show=download&DownloadID=40|logiciel de configuration fourni par le constructeur]]
- Le lancer puis cliquer sur l'onglet **> Outils > Module d'installation**
- Choisir le **moduleSmart VPC 6MHz Smartmouse**
- Cliquer sur **activer**, et le module est chargé dans le lecteur
- Le déconnecter
- Passer l'interrupteur au dos en mode **"module"**
Le tour est joué ! Votre lecteur sera désormais reconnu par linux et monté sur **/dev/ttyUSB0**. \\
Afin d'améliorer les performances, on a forcé la lecture à 6MHz d'une carte initialement prévue pour être lue à 3,57MHz (overclock).
==== Le serveur Oscam ====
Installer l'ensemble de paquets qui seront nécessaires pour la compilation :
apt-get install subversion openssl build-essential libssl-dev gcc g++ pcscd pcsc-tools libpcsclite1 libpcsclite-dev
cmake make libpthread-stubs0 libpthread-stubs0-dev libncurses5 libncurses5-dev wget bzip2 git-core patchutils libproc-processtable-perl libtool mercurial
=== Version "stable" 1.1 ===
On installe la dernière version de **Oscam** stable (en ce moment 1.10) avec l'option d'interface web WEBIF et la méthode de décryptage DVBAPI. \\
Par ailleurs, si on souhaite utiliser VDR, il nous faut patcher Oscam pour qu'il puisse utiliser le DVBAPI.
svn co http://streamboard.de.vu/svn/oscam/tags/1.10/ oscam-1.10
cd oscam-1.10
wget https://raw.github.com/manio/vdr-plugin-dvbapi/22733ee/patches/oscam-vdr.diff
patch < oscam-vdr.diff
mkdir build
cmake -DWEBIF=1 -DHAVE_DVBAPI=1 ..
make
make install
cd ..
cd ..
rm -R oscam-1.10
=== Version courante "trunk" 1.2 ===
Nul besoin de patcher la version courante qui intègre déjà les modifications du DVBAPI.
svn co http://streamboard.de.vu/svn/oscam/trunk/ oscam-1.20
cd oscam-1.20
mkdir build
cmake -DWEBIF=1 -DHAVE_DVBAPI=1 ..
make
make install
cd ..
cd ..
rm -R oscam-1.20
Notre serveur de cartes d'abonnement maintenant installé, il nous faut le configurer pour la carte que nous souhaitons utiliser.
===== Lancement du serveur Oscam =====
Le lancement du serveur se fait par la commande suivante.
/usr/local/bin/oscam
Si le lecteur de carte est bien connecté sur la carte TNTSAT, oscam devrait alors se lancer. \\
Il lui est même possible d'activer la carte si c'est sa première utilisation ! \\
Il est possible de s'en assurer en lisant le fichier **log** dont nous avons défini l'adresse dans oscam.conf.
Créer un script((Voir : [[:doc:systeme:script | script en détail]] et [[:doc:editeurs:nano | nano]])) de lancement automatique :
nano /etc/init.d/oscam
Contenant le code suivant
#!/bin/sh
DAEMON=/usr/local/bin/oscam
DEAMON_OPTS="-b"
PIDFILE=/var/run/oscam.pid
test -x ${DAEMON} || exit 0
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Starting OScam"
start-stop-daemon --start --quiet --background --pidfile ${PIDFILE} --make-pidfile --exec ${DAEMON} -- ${DAEMON_OPTS}
log_end_msg $?
;;
stop)
log_daemon_msg "Stopping OScam"
start-stop-daemon --stop --exec ${DAEMON}
log_end_msg $?
;;
force-reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: /etc/init.d/oscam {start|stop|restart|force-reload}"
exit 1
;;
esac
exit 0
Lui attribuer les permissions
chmod 755 /etc/init.d/oscam
On peut alors lancer et arrêter oscam dans un terminal(([[:doc:systeme:terminal]])) root de la manière suivante :
/etc/init.d/oscam start
/etc/init.d/oscam stop
/etc/init.d/oscam restart
Enfin, toujours dans un terminal administrateur, demander à debian de lancer automatiquement oscam au démarrage ainsi :
update-rc.d oscam defaults
Vérifier que l'opération a fonctionné en vérifiant que oscam se trouve bien dans la liste suivante :
ls -l /etc/rc2.d/
Pour plus d'informations sur le chargement de script au démarrage, se référer à ce [[http://www.generation-linux.fr/index.php?post/2009/01/22/Cours-Linux-%3A-les-runlevels|cours]].
===== Configuration =====
L'ensemble des fichiers de configuration doivent être placés dans le répertoire : **/usr/local/etc/** \\
Une description détaillée des différents fichiers de configuration se trouve sur [[http://streamboard.de.vu/wiki/OSCam/fr|le wiki officiel de l'équipe de développement]] \\
En particulier, nous allons devoir configurer le fichier **oscam.conf**, **oscam.server** et **oscam.user**.
==== Exemple avec TNTSAT ====
La carte TNTSAT a été choisie pour ce tuto car elle permet de décoder l'ensemble des chaines proposée en TNT (y compris HD) sans avoir à payer d'abonnement. \\
La carte peut-être commandée pour 15€ à cette[[http://www.tntsat.tv/Renouvellement.htm|adresse]]. \\
Toutefois, elle utilise des ECM longs (technologie de cryptage) et nous obligera à utiliser VDR comme serveur TV.
=== Configuration globale : oscam.conf ===
Créer en terminal root le fichier oscam.conf
nano /usr/local/etc/oscam.conf
Copier les paramètres suivants
[global]
Nice = -1
# web interface
[webif]
httpport = 8888
httpuser = user
httppwd = pass
httpallowed = 127.0.0.1
#pour vdr
[dvbapi]
ennabled = 1
au = 1
user = vdr
boxtype = pc
pmt_mode = 1
#pour TVheadend
[newcamd]
Key = 012345679.... <== mettre la clé que vous voulez
Port = PORT@CAID:IDENT <== mettre le PORT (libre) que vous voulez
* **WEBIF** définit le port 8888 de connection à l'interface d'administration ainsi que loggin, mot de passe et IP des utilisateurs autorisées à se connecter à l'interface de contrôle web. 127.0.0.1 est l'adresse locale de notre ordinateur.
* **CAID:IDENT** est à adapter en fonction de la carte que vous possédez.
=== Configuration du lecteur de carte : oscam.server ===
Editer en root le fichier de configuration du lecteur :
nano /usr/local/etc/oscam.server
Copier les paramètres suivants :
[reader]
# nom attribué à notre lecteur de carte
Label = phoenixUSBsmart
# Adresse sur lequel est monté le lecteur
Device = /dev/ttyUSB0
# Type de protocole utilisé
Protocol = mouse
Detect = CD
# On utilise le module overclocké à 6MHz avec une carte de 3,57MHz
mhz = 600
cardmhz = 357
# Protocole de décryptage de la carte : viaccess = 500
CAID = 0500
Group = 1
# Clé AES spécifique à TNTSAT
aeskeys = 0500@30B000:43XXXXXXXXXXXXXXXXXXXXXX43,A7XXXXXXXXXXXXXXXXXXXXX26,EFXXXXXXXXXXXXXXXXXXXXXXE3
En raison de [[http://fr.wikipedia.org/wiki/Vente_li%C3%A9e|flous juridiques concernant le principe d'interopérabilité]], je préfère ne pas vous fournir la clé AES dans son intégralité... \\
Toutefois, une requête avec votre moteur de recherche préféré devrait vous permettre de l'obtenir rapidement.
=== Configuration du compte d'accès au serveur : oscam.user ===
Editer en root le fichier
nano /usr/local/etc/oscam.user
Copier le code suivant
#Pour l'utilisation de VDR
[account]
User = vdr
Pwd =
Group = 1
# Permettre l'activation et la mise à jour de la carte
AU = phoenixUSBsmart
#pour l'utilisation de TVheadend
[account]
User = MonLogin # à modifier à votre convenance
Pwd = MonMotdepasse # à modifier à votre convenance
Group = 1
# Permettre l'activation et la mise à jour de la carte
AU = phoenixUSBsmart
=== Configuration des chaines à décrypter : oscam.dvbapi ===
Editer en root le fichier
nano /usr/local/etc/oscam.dvbapi
Et y copier :
#Chaines de canal + à ignorer:
I: 0500:030B00:2261 #Canal+ HD
I: 0500:030B00:2262 #Canal+ Decale HD
I: 0500:030B00:2263 #Canal+ Cinema HD
I: 0500:030B00:2264 #Canal+ Sport HD
I: 0500:030B00:2265 #Canal+ Family HD
I: 0500:030B00:2009 #Canal+
I: 0500:030B00:200A #Canal+ Decale
I: 0500:030B00:200B #Canal+ Cinema
I: 0500:030B00:200D #Canal+ Family
I: 0500:030B00:2010 #Canal+ Sport
I: 0500:030B00:4284:1788 # NT1 bad ECMPID
I: 0500:030B00:4290:1788 # NT1 bad ECMPID
#On décode toutes les autres chaines que permet la carte
P:0500:030B00
===== Utilisation =====
Se référer aux configuration des serveurs de réception/diffusion des flux TV : VDR,[[:doc:media:tvheadend|TVheadend]] ou [[https://wiki.debian-facile.org/doc:media:mythtv | Mythtv]]