===== Les serveurs télé =====
==== L'infrastructure ====
Nous avons actuellement un serveur de production pour la tnt :
* anakin (3 cartes DVB-t dual)
Nous avons aussi un serveur de test pour le satellite :
* obiwan (1 carte DVB-S quattro + 1 DVB-S duo pour des tests [tuner 4 & 5])
Inventaire :
* 5 cartes PCI DVB-t nova t500
* 2 cartes PCI DVB-t nova td500 (deux prises coaxiales, une seule est nécessaire) pour tests/remplacement
* 1 carte PCIE DVB-S TBS
* 3 tuners USB (sticks) Avertv volar (a éviter d'utiliser: l'un des sticks ne renvoie plus rien, les autres ne sont pas fiables niveau qualité)
* 1 amplificateur/distributeur DVB-T (dans le TGBT du rez-de-chaussée du U1)
* des prises et des T de distribution, des rallonges coaxiales et USB etc.
Tout le matériel non utilisé est entreposé dans un carton dans le placard ou en salle serveur
==== Côté Maisel ====
Pour le satellite, nous utilisons l'antenne de la Maisel sur le toit du U1. Si le signal n'est plus détecté (Erreur caractérisé par un nombre de processus mumudvb très bas et un débit en sortie d'obiwan très faible), il faut monter sur le toit du U1 en prévenant toujours quelqu'un qui ne montera pas (sans demander l'avis de la MAISEL, non en vrai c'est bien de prévenir les techniciens histoire que s'il y a un problème ils soient au courant) et réorienter l'antenne dans la bonne direction (satellite ASTRA 28.2E). L'inclinaison par rapport au sol doit être à 29°
==== Utiliser Mumudvb ====
Nous utilisons mumudvb, mais on doit faire la gestion des chaines à la main : faire des scan et générer les fichiers de confs et le fichier de playlist pour vlc, il pourrait etre intéressant de tester : https://tvheadend.org
Toute la doc est sur http://mumudvb.braice.net. Pour les fichiers de configuration de la version 1.7 : http://mumudvb.braice.net/mumudvb/doc/mumudvb-1.7.1/README_CONF.html
Il y a deux façons d'utiliser la ligne de commande pour lancer mumudvb. Dans tous les cas, il faut un processus de mumudvb par tuner.
=== Lancer le démon ===
Cela lance toutes les chaînes paramétrées pour être lancée automatiquement
service mumudvb stop | start | restart
Le paramétrage se fait dans /etc/default/mumudvb par défaut après installation, mais il faut modifier le fichier /etc/init.d/mumudvb pour que le fichier default soit /etc/mumudvb/default/[machine] du git des fichiers de configuration.
=== Informations sur la carte et ce qu'elle fait ===
On peut vérifier que les cartes sont bien détéctés/utilisés par mumudvb:
mumudvb -l
Lorsque la carte est utilisé:
ERRO: DVB: FRONTEND DEVICE: /dev/dvb/adapter0/frontend0 : Device or resource busy
Lorsqu'elle est libre:
Quand elle est libre:
Info: DVB: =========== Card 1 - Tuner 0 ===========
Info: DVB: Frontend : Montage Technology DS3000
Info: DVB: Satellite (DVB-S) card
Info: DVB: Frequency: 950000 kHz to 2150000 kHz
Info: DVB: Symbol rate: 1000 k symbols/s to 45000 k symbols/s
Pour savoir ce que diffuse un tuner (ex: tuner 1), il faut ouvrir /var/run/mumudvb/mumudvb_streamed_adaptater1_tuner0
=== Lancer un processus avec fichier de configuration ===
Cela permet de lancer un processus unique de mumudvb. ''Attention : il faut avoir les droits du groupe vidéo donc lancer en root ou avec un utilisateur du groupe video.'' Dans ce cas, le processus est lancé par l'utilisateur et non par _mumudvb, l'utilisateur qui fait partie du groupe video
/usr/bin/mumudvb -c path/to/config/file
Les options :
* -d : debug, ne lance pas en daemon, reste en console
* -v : verbose, pour avoir des retours
* --card X : choix de la carte (version > 1.7)
* -c : config file, fichier de configuration
L'option --card n'est valable que dans les versions supérieures à 1.7 et elle annule l'option card=X du fichier de configuration. Pour les versions précédentes, cette option n'est pas implémentée, il est donc nécessaire d'ajouter le card=X dans le fichier de configuration.
=== Lancer en autoconfiguration ===
Créez un fichier pour l'autoconfiguration, suivant les cas (satellite ou tnt) puis lancez mumudvb avec (mumudvb -dvc pth/to/file --card X). Si il n'y a pas de problèmes de droits, un fichier de configuration aura été créé dans ''/var/run/mumudvb''. Il peut être repris et adapté comme fichier de configuration.
Si le répertoire /var/run/mumudvb n'existe pas, vous pouvez le créer avec les bons droits ou lancer une fois à vide le script d'init qui le créera pour vous.
Reportez-vous à la documentation de mumudvb pour avoir des informations sur les niveaux d'autoconfiguration et les options possibles.
==Pour la TNT :==
Il faut créer un fichier avec les lignes suivantes :
freq=XXXXXX
autoconfiguration=2
==Pour le satellite :==
Il faut créer un fichier avec les lignes suivantes :
freq=XXXXXX
pol=X
srate=XXXXX
autoconfiguration=2
=== Obtenir les fréquences ===
==Pour la TNT :==
Vous pouvez utiliser le paquet w-scan pour trouver l'ensemble des fréquences sur lesquelles on peut recevoir quelque chose :
w_scan -c FR
Vous pouvez alors voir l'ensemble des fréquences. Il est possible de faire une recherche détaillée. Reportez-vous au site de mumudvb, l'utilisation de w_scan y est détaillée.
==Pour le satellite :==
Dans l'annuaire des satellites du site kingofsat.net, vous pouvez trouver la position sur laquelle l'antenne est pointée (28.2E actuellement). Sur la page correspondant à la position orbitale, vous avez la liste des ensembles de chaînes incluant fréquence, polarisation et débit.
http://fr.kingofsat.net/freqs.php?&pos=28.2E&standard=All&ordre=freq&filtre=Clear
On peut également scanner les chaînes disponibles avec w_scan sur le satellite 28.2°E:
w_scan -fs -s S28E2 -c FR
=== Obtenir un fichier de configuration à partir de la fréquence ===
Il faut lancer un processus avec un fichier de configuration avec autoconfiguration et la fréquence voulue. Un fichier de configuration sera généré dans /var/run/mumudvb si le répertoire a bien été créé. (pour cela, il suffit de lancer le démon)
=== Générer automatiquement un fichier de configuration pour le pool BBC One===
mumudvb -d -c confBBC
avec confBBC:
delivery_system=DVBS2
freq=10773.00
pol=h
srate=22000
multicast_ipv4=1
autoconfiguration=full
==== Mettre en place un serveur télé ====
=== La distribution ===
Mumudvb a été créé pour Debian ou Ubuntu. Nos cartes PCI dvb-t nova t500 sont supportées sur Debian et sur Ubuntu. Par contre les sticks USB Avertv ont besoin d'un firmware spécial sous Debian, qui est inclus dans le paquet firmware-linux-nonfree de Ubuntu.
Du coup, il est plus facile de mettre en place un serveur télé sous Ubuntu. Actuellement, Anakin est sous Ubuntu server 14.04 LTS et Obiwan sous debian Jessie.
Avec les nouvelles cartes tv remplaçant les sticks, on n'est plus limité à Ubuntu.
=== Installer les drivers de la carte satellite tbs6985 ===
Il faut d'abord télécharger les drivers sur http://www.tbsdtv.com/download/ . Téléchargez celui pour linux de la TBS6985. L'installation se fait facilement sous ubuntu.
Vous pouvez lire le README qui correspond à la carte (plus ou moins, c'est celui de la 6981).
Il faut donc procéder :
* Dézipper les drivers
* copier le dvb-fe-cx24116.fw ou équivalent dans /lib/firmware
* décompresser le dossier linux-tbs-drivers
* se placer dedans
* il faut paramétrer pour la compilation :
./v4l/..._r3.sh #si votre noyau est 3.x
./v4l/...x86.sh #si votre noyau est 2.6.x en 32 bits
./v4l/...x86_64.sh #si votre noyau est en 64 bits.
* make
* make install
* reboot
Ce qui équivaut à :
mkdir driver_tbs
mv tbs-linux-drivers_v130506.zip driver_tbs/
cd driver_tbs/
unzip tbs-linux-drivers_v130506.zip
cp dvb-fe-cx24116.fw /lib/firmware/
tar -xvjf linux-tbs-drivers.tar.bz2
cd linux-tbs-drivers
./v4l/tbs-x86_64.sh #si vous êtes sur un 64 bits
./v4l/tbs-x86.sh #si vous êtes sur un 32 bits
./v4l/tbs-x86_r3.sh # si vous êtes sur un noyau 3.x
make
make install
''Pour Debian, il faut avoir installé de quoi compiler comme build-essential et le paquet linux-headers correspondant à la version retournée par "uname -a".''
=== Installation ===
Après avoir installé la distribution de base, il faut installer les paquets suivants :
* pour ce qui est de l'admin sys
apt-get install zabbix-agent nmap htop dstat
* et pour la télé :
apt-get install firmware-linux-nonfree v4l-utils w-scan mumudvb
''Pour gérer les vlans (diffusion et administration), il faut activer le module 8021q soit ajouter la chaîne "8021q" au fichier /etc/modules puis installer le paquet vlan.''
=== Le réseau ===
==Le serveur==
Configuration du réseau (pour ubuntu):
auto ethX
iface ethX inet static
address 192.168.27.Y
netmask 255.255.255.0
gateway 192.168.27.1
iface ethX inet6 static
address 2001:660:3203:427::YY
netmask 64
gateway 2001:660:3203:427::1
auto ethX.102
iface ethX.102 inet static
address 192.168.102.YY
netmask 255.255.255.0
dns-nameservers 192.168.102.55 192.168.102.54
à adapter pour l'ipv6
==Les flux partent où?==
Par défaut, les flux de multicast sont envoyés vers la gateway (et oui, on applique le masque aussi pour les ips de multicast). Mais il est possible de changer ça. Vous avez plusieurs options :
* mettez la gateway dans le vlan où vous voulez que les flux partent (pas élégant)
* Ajoutez une route! : en ajoutant la ligne : up ip route add 239.0.0.0/24 dev eth0.27
dans /etc/network/interfaces
dans la configuration de l'interface eth0.27
* Ajoutez l'option multicast_iface4 dans les fichiers de configuration (j'ai jamais réussi à la faire marcher :-/ shame on me!)
Ainsi vous pourrez choisir l'interface vers laquelle vous diffusez les flux
==Le switch==
Du coup, configuration du switch :
enable
configuration terminal
default interface ...
interface ...
switchport mode trunk
switchport trunk native vlan 27
switchport allowed vlan 27.102
exit
exit
write mem
=== Quelle version pour mumudvb ===
Il y a deux versions possibles principalement : la 1.6 et la 1.7.1
La version des paquets est la 1.6. Pour installer la 1.7.1, il faut désinstaller la 1.6 ou satisfaire les dépendances si la 1.6 n'était pas installée.
Quelles avantages :
la 1.7.1 supporte l'ipv6, a plus d'options disponibles et gère mieux pas mal de chose mais la 1.6 a un mode verbose plus développé, plus clair ^^ Donc si il y a un bug, il est plus facile de le gérer avec la 1.6.
=== Installer la version 1.7 ===
''Attention : si vous n'avez pas d'accès direct à internet (normalement c'est le cas), n'oubliez pas :''
export http_proxy="http://192.168.102.61:82/"
echo 'Acquire::http::Proxy="http://192.168.102.61:82/";' > /etc/apt/apt.conf
Paquets requis pour la compilation :
apt-get install git devscripts pgpgpg debhelper git-buildpackage
Compilation :
git clone http://git.debian.org/git/pkg-vdr-dvb/dvb/mumudvb.git
cd mumudvb
git-buildpackage -us -uc
cd ..
dpkg -i *.deb # après avoir désinstallé toute version de mumudvb
=== Après avoir installé ===
Certaines actions sont nécessaires pour pouvoir lancer en mode daemon :
* ajouter l'utilisateur de mumudvb (_mumudvb généralement) au groupe video : usermod -aG video _mumudvb
* vérifier le script d'init, ex :pour la version 1.7, le stop ne marche, il faut ajouter un ''killall mumudvb'' au bout du code du do_stop
==== Les fichiers de configuration ====
Les fichiers de configuration sont centralisés sur un dépôt git : conf_mumudvb
=== Mettre en place les fichiers de configuration===
Assurez-vous d'avoir un accès à internet (enfin gitlab est suffisant ^^). Du coup :
export http_proxy="http://192.168.102.61:82/"
Si l'ip du proxy n'a pas changé. Assurez-vous d'avoir aussi les dns.
Placez-vous dans /etc et
git clone http://gitlab.minet.net:3000/mael/conf_mumudvb.git
mv conf_mumudvb mumudvb
Les fichiers de configuration ont été copiés. Il faut maintenant adapter la conf de mumudvb :
Dans /etc/init.d/mumudvb, modifier la ligne de default file pour /etc/mumudvb/default/...
=== Le fichier default ===
C'est le fichier qui liste les fichiers de configurations à lancer par le /etc/init.d/mumudvb. Il doit être adapté à la configuration physique du serveur (les numéros de tuners doivent correspondre).
Attention à la variable DONTSTARTMUMU, si elle est à true, mumudvb ne démarre pas. Il faut donc la mettre à false.
==== Débugguer ====
=== Limitation du nombre de tuners ===
Dans une installation de base de v4l, il y a une limitation à 8 tuners. (A partir du neuvième, ils n'apparaissent plus dans /dev/dvb)
=== Une des chaînes n'émet plus / problème de son ===
Si une chaîne n'est plus émise en multicast ou si il n'y a plus de son sur une chaîne, c'est certainement parce que les pids ont changé. Pour résoudre le problème, il faut relancer la configuration automatique par mumudvb et récupérer la liste des pids pour la mettre à jour.
C'est notamment le cas avec les chaines HD qui ne fonctionnent plus lorsque les serveurs n'ont pas été redémarrés depuis plusieurs mois. Si vous ne voulez pas vous embêter, n'hésitez pas à les redémarrer physiquement et tout devrait rentrer dans l'ordre.
=== Les chaînes cryptées s'arrêtent après la fin de l'émission en clair ===
Si la chaîne cryptée diffuse en clair, s'arrête au retour du cryptage et ne redémarre pas quand la chaîne repasse en clair, c'est parce que mumudvb considère que le signal crypté n'existe pas et donc qu'il ne reçoit rien, il arrête donc d'essayer de streamer. Il faut ajouter dans le fichier de configuration incriminé les deux lignes :
tuning_timeout=0 #ou 9999999999999 pour la 1.6 (erreur avec 0)
timeout_no_diff=0