Table des matières

Oscam

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,TVheadend, 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

Installer2) 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 virtuelle3) pour commencer…

  1. Vérifier que l'interrupteur au dos du lecteur est en position “normal”
  2. Connecter le lecteur à un port USB, il sera détecté automatiquement par Windows
  3. Le lancer puis cliquer sur l'onglet > Outils > Module d'installation
  4. Choisir le moduleSmart VPC 6MHz Smartmouse
  5. Cliquer sur activer, et le module est chargé dans le lecteur
  6. Le déconnecter
  7. 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 script4) de lancement automatique :

nano /etc/init.d/oscam

Contenant le code suivant

/etc/init.d/oscam
#!/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 terminal5) 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 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 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€ à cetteadresse.
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

oscam.conf
  [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

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 :

oscam.server
  [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 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

oscam.user
  #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 :

oscam.dvbapi
  #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,TVheadend ou Mythtv

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
2)
Voir la commande aptitude
3)
voir : kvm par exemple