0. Présentation du serveur

Le serveur Reychnam est le serveur qui gère les services de télévision par satellite. Il contient trois cartes qui aboutissent à 12 duplex.

1. Manipulations fréquentes

1.1. Utilisation de Monit

Sur une installation typique, Monit est la façon la plus sûre et rapide pour vérifier et gérer les serveurs MuMuDVB.

Action Commande
Vérifier l'état sudo monit status
Vérifier l'état (abrégé) sudo monit summary
Démarrer SERVICE sudo monit start SERVICE
Arrêter SERVICE sudo monit stop SERVICE
Recharger SERVICE sudo monit restart SERVICE
Appliquer sur tout les services sudo monit X all

2.Installation & configuration du serveur

L'objectif de ce guide est d'installer à zéro la machine Reychnam, et éventuellement de lister en plus de détail les mapping des câbles/satellites/cartes.

Objectifs du guide:

  • Installation des drivers
  • Installation de MuMuDVB
  • Configuration de MuMuDVB
  • Installation & Configuration de Monit
Remarque

Si vous avez eu comme moi des problèmes avec les "locales", exécutez ces commandes, et sélectionnez les "locales" qui manquent:

sudo locale-gen "en_US.UTF-8"
sudo dpkg-reconfigure locales

2.1. Installation des drivers

Le serveur dispose de 3 cartes, dont l'empreinte avec lspci est le suivant:

02:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 02)
        Subsystem: Device 6985:0002
        Flags: bus master, fast devsel, latency 0, IRQ 17
        Memory at f7d00000 (64-bit, non-prefetchable) [size=1M]
        Capabilities: <access denied>
        Kernel driver in use: SAA716x TBS

Le constructeur des cartes est TBS Technologies, la référence des cartes utilisées est TBS6984, on peut télécharger les drivers les plus récents depuis la ce lien.

Les drivers utilisés pour ce guide sont tbs-linux-drivers_v161031.zip, sur Debian Jessie.

Tout d'abord, si vous avez suivi le guide de mise en place d'un serveur, vous n'aurez pas besoin de cette étape, mais pour être sur, installez les packets suivants:

sudo apt-get install build-essential automake unzip

Puis installez les headers linux de votre version respective. Une façon de faire ceci est d’exécuter:

sudo apt-get install linux-headers-$(uname -r)

La compilation des drivers au moment de l'écriture a donné une erreur, et en cherchant sur Internet, la solution était de supprimer une partie des headers linux qu'on vient de télécharger, à l'aide de la commande suivante:

sudo rm -Rf /lib/modules/3.16.0-4-amd64/kernel/drivers/media

Ou 3.16.0-4-amd64 remplace votre version de noyau installée en headers.

N'oubliez pas de désinstaller linux-headers et de les réinstaller après la fin de l'installation pour laisser une version propre pour les personnes qui viennent après !

Une fois ceci fait, téléchargez sur Pegase(la passerelle vers le VLAN admin à l'heure d'écriture de ce guide) votre version de drivers avec par exemple:

wget http://www.tbsiptv.com/download/common/tbs-linux-drivers_v161031.zip

Puis transférez sur Reychnam le fichier zip. Déplacez vous sur le dossier contenant le fichier zip et exécutez les commandes suivantes:

unzip tbs-linux-drivers_v161031.zip -d ./tbs-drivers/
cd ./tbs-drivers/
bzcat linux-tbs-drivers.tar.bz2 | tar xv
sudo find -type d -exec chmod 755 \{\} \;
sudo find -type f | xargs chmod 644
sudo find -name '*.sh' | xargs chmod 755
sudo find -name '*.pl' | xargs chmod 755
./v4l/tbs-x86_64.sh
make -j5
sudo make install

La ligne 1 on extrait les fichiers de l'archive zip, puis on extrait l'archive bzip à la ligne 2. Les lignes 4 à 7, on répare les permissions des fichiers, car après l'extraction, les permissions ne sont pas écrites pour des utilisateurs de l'installation. Les lignes 8 à la fin sont pour compiler et installer les drivers.

Remarque

ProTip: Le -j5 du make est pour paralléliser la compilation/linking sur plusieurs cores.

Normalement, vous ne devriez avoir aucune erreur. Si vous avez des erreurs, débrouillez vous, c'est ça le ResEl XD. Au pire, contactez moi.

Essayez avec lspci, vous devriez avoir des entrées drivers, et si vous voulez être encore plus sur, exécutez dmesg | grep frontend et vous devriez avoir quelque chose comme ça:

[    8.556179] DVB: registering adapter 0 frontend 0 (TurboSight TBS 6985 DVBS/S2 frontend)...
[    9.107713] DVB: registering adapter 1 frontend 0 (TurboSight TBS 6985 DVBS/S2 frontend)...
[    9.660162] DVB: registering adapter 2 frontend 0 (TurboSight TBS 6985 DVBS/S2 frontend)...
[   10.212633] DVB: registering adapter 3 frontend 0 (TurboSight TBS 6985 DVBS/S2 frontend)...
[   10.785065] DVB: registering adapter 4 frontend 0 (TurboSight TBS 6985 DVBS/S2 frontend)...
[   11.337509] DVB: registering adapter 5 frontend 0 (TurboSight TBS 6985 DVBS/S2 frontend)...
[   11.889982] DVB: registering adapter 6 frontend 0 (TurboSight TBS 6985 DVBS/S2 frontend)...
[   12.442426] DVB: registering adapter 7 frontend 0 (TurboSight TBS 6985 DVBS/S2 frontend)...
[   13.018868] DVB: registering adapter 8 frontend 0 (TurboSight TBS 6985 DVBS/S2 frontend)...
[   13.571328] DVB: registering adapter 9 frontend 0 (TurboSight TBS 6985 DVBS/S2 frontend)...
[   14.123759] DVB: registering adapter 10 frontend 0 (TurboSight TBS 6985 DVBS/S2 frontend)...
[   14.676222] DVB: registering adapter 11 frontend 0 (TurboSight TBS 6985 DVBS/S2 frontend)...

Redémarrez la machine avec sudo shutdown -r now

2.2. Installation de MuMuDVB

MuMuDVB est le logiciel qui permet de lire sur les cartes le flux TV, de le décoder, et de le diffuser soit en Unicast sur HTTP, soit en Multicast. Pour conserver la bande passante, on utilise l'Unicast.

On va tout d'abord installer les packets dvb-utils et dvb-apps pour que la compilation de MuMuDVB se fasse avec les paramètres optimaux. Pour ce faire, exécutez:

sudo apt-get install dvb-utils dvb-apps

Ensuite, téléchargez la tarball des sources de MuMuDVB, à priori depuis la page Github du projet sur Pegase, et copiez là sur Reychnam à l'aide de SCP: wget https://github.com/braice/MuMuDVB/archive/mumudvb2.zip

De la même façon unzip-pez le fichier et naviguez vers MuMuDVB-mumudvb2, puis executez les commandes suivantes:

autoreconf -i -f
./configure
make -j5
sudo make install

Normalement, tout devrait marcher puisque toutes les dépendances sont installées, et pour tester, vous pouvez tout simplement exécuter un mumudvb -l pour vérifier que l'installation est bonne.

2.3. Configuration de MuMuDVB:

Vous pouvez copier la configuration depuis Gitlab avec:

git clone https://git.resel.fr/confs/television.git

On essaiera de conserver la structure qui a été établie par les anciens du ResEl, vous pouvez très bien la changer.

Créez un dossier /srv/sat/, puis copiez les fichiers contenus dans mumudvb/sat dans le dossier que vous venez de créer.

2.4. Installation & Configuration de Monit:

Monit est un système de monitoring, qui permet de relancer les services au cas ou ces derniers tombent, mais évite aussi d'écrire des commandes ou on peut foirer parfois. Ça n'arrive jamais au ResEl, mais bon.

L'installation se fait à l'aide d'APT avec:

sudo apt-get install monit

On doit à présent créer un utilisateur pour lancer MuMuDVB avec cet utilisateur. Typiquement, dans cette configuration, on le nommera tv.

sudo adduser tv

Créez un dossier /home/tv si il n'existe pas encore.

Remarque

Bon, en vrai, on n'a pas vraiment besoin de ce compte, mais choisissez un mot de passe fort, et gardez le au secret, notamment, le KeePass du président.

Retournez à présent au dossier dans lequel vous avez clonez le repo git des configurations, et copiez le fichier monit/mumudvb dans /etc/monit/conf.d/.

La configuration est à présent chargée, et vous devriez faire un reload pour que les changements soient pris en compte à l'aide d'un sudo monit reload

Remarque

Monit s'exécute uniquement en sudo.

Finalement, mettre en marche les services MuMuDVB reviens à faire:

sudo monit start all

3. Liste TODO

  • Mise en place et configuration du Transcodage.
  • Explications sur la configuration de MuMuDVB.
  • Installation et configuration du Watchdog/RemoteMan. (Will do when the software is finished).
  • (Optionnel) Installation et utilisation de w_scan.
  • (Optionnel) Établir une base de données des fréquences avec les chaînes captées dessus.
  • Mapping des différents câbles avec les satellites et les cartes.