Bonjour à toutes et tous,
Je vous propose ce tuto sur l'installation d'un Linux Debian qui utilisera une carte Digital Device Cine S2 V6.5 avec Tvheadend, oscam et Kodi 16 RC1.
Me restera a rajouter l'intégration d'un lecteur de carte.
Et plus tard l'ajout d'un 2eme carte DD Cine S2 (certainement une v7).
Le but étant d'utiliser ce PC comme demo sat connecté à la TV,
puis de streamer via le réseau local sur les ordi, tabletes etc
Coté optimisation video, sachez que ce tuto est orienté GPU Intel supportant le qsv.
Il est adaptable pour de GPU nvidia sans trop de soucis, mais a savoir qu'un GPU nvidia grand public, ne permet pas de transcoder plus de 2 flux en paralleles.
Quand on a 3 enfants succeptibles de vouloir utiliser le stream de leur PC, tablette ou autre, ça devient limité avec nvidia.
Coté AMD, je n'en sais pas plus (pas eu le temps de creuser l'affaire.
Ici je commence petit, avec une carte sat double tuner (bien que je ne vais en utiliser qu'un dans un premier temps, puis activer le second quand j'aurais changé ma lnb par une lnb unicable, 4 scr, 1 legacy (type inverto)
***Ma config matérielle actuelle est la suivante :
Carte mère : Asrock h81 pro btc (oui c'est mon ancienne qui tournait avec 6 cartes graphiques pour faire joujou avec les bitcoins)
Processeur : Intel® Pentium® CPU G3220 @ 3.00GHz (qui suporte les optimisations tel que qsv, supporté par le noyau linux 4.4, certainement avec avec patches mais j'ai pas retenu les infos)
8G RAM, disque Sandisk SSD,
Carte DVB S2 : Digital Device Cine S2 v6.5 (supportée aussi nativement avec le kernel 4.4)
Un clavier usb, et pour l'ecran : la tv connectée en HDMI au PC
*** Installation de Debian Jessie 8.2.0
A partir d'un PC sous windows,
Download de l'image Debian net install :
http://cdimage.debian.org/debian-cd/8.2.0/amd64/iso-cd/debian-8.2.0-amd64-netinst.iso
Placer l'image sur un clé usb (attention vous y perdrez toutes vos données actuelles, donc pensez a les sauvergarder avant)
Pour mettre l'image Debian sur la clé, j'utilise ISO to USB (www.isotousb.com)
(Chercher votre Debian fraichement downloadée, via 'Browse', puis choisir la clé usb avec 'refresh' et enfin 'Burn')
Une fois terminé, débranchez la clé usb, et connectez là sur votre PC qui va etre installé sous Debian.
Bootez sur la clé
Un bref résumé de l'installation :
.Install (pas de mode graphique)
.Choose the language to be used : French
.Pays : France
.Clavier : Francais
- microcode rtl_nic/rt18168g-2.fw (on s'en occupe plus tard)
.nom de machine : debian
.nom de domaine :
.mot de passe root puis confirmer
.compte d'utilisateur : votre_user (ici faites le votre)
.identifiant pour ce compte : votre_user (idem, faite le votre)
.mot de passe pour ce compte : puis confirmer le mot de passe
install UEFI forcee : oui
.partitions : assistee disque dur entier
.choisir le disque:sandisk
.tout dans une seule partition (mode noob)
.Terminer le partitionement et appliquer les changements
.faut il appliquer : oui
.config de l'outil de gestion des paquets debian : France
.mirroir de l'archive : choisissez celui que vous voulez
.mandataire http (proxy) : laisser vide ou configurez a votre guise
(pause café)
Là le système telecharge les paquets de base
.participer a l'etude statistique : non
* important pour ne prendre que le necessaire *
Choix des services a installer :
retirer : environnement de bureau debian et serveur d'impression
activer : serveur ssh et utilitaires usuels du système (en fait il n'y a que ça a prendre, le reste viendra après)
continuer
L'installation est terminee
Continuer
ça reboot
ok, votre machine est installée :)
*** Adresse IP fixe
par défaut, votre IP est attribuée en dhcp par votre box/routeur internet ou autre.
l'idéal est de rendre cette IP statique, (on peut aussi faire une réservation dhcp coté box)
ou la rendre statique sur votre réseau
au login, se connecter en root (si ssh, passez par votre utilisateur puis on verra plus tard comment autoriser le login root en ssh)
puis éditer le fichier (avec vi ou nano) : /etc/network/interfaces
vi /etc/network/interfaces
remplacer la ligne :
iface eth0 inet dhcp
par les suivantes :
iface eth0 inet static
address 192.168.1.200 (c'est un exemple)
netmask 255.255.255.0
gateway 192.168.1.1 (adresse IP de votre routeur internet)
*** rajout du firmware de la carte réseau (microcode rtl_nic/rt18168g-2.fw)
vi /etc/apt/sources.list
rajouter une ligne en fin de fichier :
deb http://ftp.de.debian.org/debian/ jessie main contrib non-free
puis
apt-get update
puis
apt-get install firmware-linux-nonfree firmware-realtek
*** autoriser root a se connecter en ssh (sans devoir passer par votre_user)
vi /etc/ssh/sshd_config
remplacer ou commenter la ligne :
#PermitRootLogin without-password
par celle ci :
PermitRootLogin yes
reboot, pour la prise en compte du firmware realtek et ssh root
la suite, est faite via réseau, en ssh avec putty
*** installation du noyau linux 4.4 (officiel depuis le 11 Janvier 2016)
on commence par installer les outils necessaires :
apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc
apt-get install kernel-package
On vous demandera si vous gardez ou pas la version actuelle de kernel-img.conf
--> On garde la version actuellement installée
puis :
cd /usr/src/
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz
tar xvf linux-4.4.tar.xz
cd linux-4.4
cp /boot/config-$(uname -r) .config
on check si on a bien les modules voulus :
make menuconfig
--> Device Drivers --> Graphics support --> Multimiedia support --> Media PCI Adapters --> Digital Devices bridge support
Par defaut en Module, parfait (dans l'aide il n'est pas précisé que cela supporte les Cine S2 v6.5, uniquement les V6 mais il les supporte) <-- a verifier
--> Device Drivers --> Graphics support --> Multimiedia support --> DVB platform devices (NEW) n'est pas selectionné : a surveiller par la suite, aujourd'hui c'est vide
Donc au final, j'ai laissé la config tel quel.
sauvegarde du .config et exit
make-kpkg clean
make-kpkg --initrd --revision=1.0.DebianVmlinuzHTPC kernel_image kernel_headers -j2
-> pause café
cd ..
dpkg -i linux-headers-4.4.0_1.0.DebianVmlinuzHTPC_amd64.deb
dpkg -i linux-image-4.4.0_1.0.DebianVmlinuzHTPC_amd64.deb
reboot
on se reconnecte en root,
on verifie etre bien passé en kernel 4.4 :
uname -a
on verifie les erreurs ou non :
dmesg | egrep -i --color 'error|critical|failed'
là c'est tout bon :)
***install du ffmpeg 2.8.5
apt-get install build-essential libssl-dev libpcsclite-dev mercurial cvs subversion libncurses-dev cmake
apt-get install autoconf
installer yasm 1.3.0 (utile pour la compil de ffmpeg) :
cd /usr/src
wget https://github.com/yasm/yasm/archive/v1.3.0.tar.gz
tar -xvzf v1.3.0.tar.gz
cd yasm-1.3.0/
autoreconf -fiv
./configure
make
make install
passons a ffmpeg :
apt-get install pkg-config
cd /usr/src
wget https://www.ffmpeg.org/releases/ffmpeg-2.8.5.tar.xz
tar xvf ffmpeg-2.8.5.tar.xz
cd ffmpeg-2.8.5/
./configure --enable-nonfree --enable-vaapi
(le vaapi pour les accel intel)
make
make install
(quelques warning lors de la compil, mais a priori rien de grave)
***install de oscam
Récuperer la derniere version et Compiler Oscam
ref : http://www.streamboard.tv/oscam/wiki/BuildingOscam
cd /usr/src
svn checkout http://www.streamboard.tv/svn/oscam/trunk oscam-svn
cd oscam-svn
mkdir build
cd build
cmake -DWEBIF=1 -DHAVE_DVBAPI=1 -DMODULE_NEWCAMD=1 ..
(ci dessus les 2 points sont important !! et je n'ai pas mis pour le moment l'option pour le lecteur de carte)
make
make install
on rend executable le bin oscam (755) :
chmod +x /usr/local/bin/oscam
et config sera a placer dans /usr/local/etc/
lancer oscam a chaque reboot :
vi /etc/rc.local
et ajouter (juste avant exit 0;) la ligne :
/usr/local/bin/oscam -b -r2
*** on reboot
et on check le lancement d'oscam avec un 'ps aux' qui vous permettra de le voir lancé
***preparer l'install de Kodi (une grosse étape - oui grosse car il manque toujours un truc)
apt-get install git
apt-get install libgcrypt20-dev libtag-extras-dev
apt-get install automake autopoint bison build-essential ccache cmake curl cvs default-jre fp-compiler gawk gdc gettext git-core gperf libasound2-dev libass-dev libbluetooth-dev libbluray-dev libbluray1 libboost-dev libboost-thread-dev libbz2-dev libcap-dev libcdio-dev libcec-dev libcec2 libcrystalhd-dev libcrystalhd3 libcurl3 libcurl4-gnutls-dev libcwiid-dev libcwiid1 libdbus-1-dev libenca-dev libflac-dev libfontconfig-dev libfreetype6-dev libfribidi-dev libglew-dev libiso9660-dev libjasper-dev libjpeg-dev libltdl-dev liblzo2-dev libmad0-dev libmicrohttpd-dev libmodplug-dev libmp3lame-dev libmpeg2-4-dev libmpeg3-dev libmysqlclient-dev libnfs-dev libogg-dev libpcre3-dev libplist-dev libpng-dev libpostproc-dev libpulse-dev libsamplerate-dev libsdl-dev libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libshairport-dev libsmbclient-dev libsqlite3-dev libssh-dev libssl-dev libtiff-dev libtinyxml-dev libtool libudev-dev libusb-dev libva-dev libva-egl1 libva-tpi1 libvdpau-dev libvorbisenc2 libxml2-dev libxmu-dev libxrandr-dev libxrender-dev libxslt1-dev libxt-dev libyajl-dev mesa-utils nasm pmount python-dev python-imaging python-sqlite swig unzip yasm zip zlib1g-dev
apt-get install uuid-dev
apt-get install gnutls-bin
apt-get install libgnutls28-dev
*recup des sources de Kodi:
ref : https://github.com/xbmc/xbmc/releases
cd /usr/src/
wget https://github.com/xbmc/xbmc/archive/16.0rc1-Jarvis.tar.gz
tar -xvzf 16.0rc1-Jarvis.tar.gz
*P8-platform : utilisé par kodi-platform qui est utilisé par l'addon tvheadend de kodi
cd /usr/src/
git clone https://github.com/Pulse-Eight/platform.git
cd platform/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local
make -j2
make install
*kodi-platform
cd /usr/src/
git clone https://github.com/xbmc/kodi-platform.git
cd kodi-platform
cmake -DCMAKE_INSTALL_PREFIX=/usr/local
make -j2
make install
*kodi - tvheadend addon
cd /usr/src/
git clone https://github.com/kodi-pvr/pvr.hts.git
cd pvr.hts
mkdir build
cd build
cmake -DADDONS_TO_BUILD=pvr.hts -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local/share/xbmc/addons/ -DPACKAGE_ZIP=1 ../../xbmc-16.0rc1-Jarvis/project/cmake/addons
make
*kodi
cd /usr/src/xbmc-16.0rc1-Jarvis/
make -C tools/depends/target/libdcadec PREFIX=/usr/local
make -C tools/depends/target/crossguid PREFIX=/usr/local
./bootstrap
./configure --enable-vaapi --disable-vdpau --disable-libcec --enable-optimizations --disable-pulse --with-ffmpeg=auto
------------------------
Kodi Configuration:
------------------------
Kodi Version: 16.0-RC1
git Rev.: Unknown
Debugging: Yes
Profiling: No
Optimization: Yes
SWIG Available: Yes
JRE Available: Yes
Doxygen Available: No
Crosscomp.: No
target ARCH:
target CPU:
OpenGL: Yes
ALSA: Yes
DBUS: Yes
VDPAU: No
VAAPI: Yes
VTBDecoder: No
OpenMax: No
Joystick: No
Touch skin: No
X11: Yes
Wayland: No
Bluray: No
TexturePacker:No
MID Support: No
ccache: Yes
ALSA Support: Yes
PulseAudio: No
DVDCSS: Yes
Google Test Framework Configured: Yes
Google Breakpad Configured: No
Avahi: Yes
mDNSEmbedded: No
Non-free: Yes
ASAP Codec: No
MySQL: Yes
Webserver: Yes
libssh support: Yes
libRTMP support: No
libsmbclient support: Yes
libnfs client support:Yes
libgif support: No
AirPlay support: Yes
AirTunes support: No
UPnP support: Yes
Optical drive: Yes
libudev support: Yes
libusb support: No
libcec support: No
libcap support: Yes
additional players: No
additional codecs: No
prefix: /usr/local
------------------------
make -j2
-----------------------
Kodi built successfully
-----------------------
make install
Copying kodi binary to /usr/local/lib/kodi/
You can run kodi with the command 'kodi'
Copying support and legal files...
Done!
Copying system files to /usr/local/share/kodi
Copying bindings to /usr/local/include/kodi
*postinstall de Kodi (Xorg, user kodi,
on a besoin d'un server X pour lancer kodi :
apt-get install xorg
puis :
startx
(en root) et 'exit' dans l'ecran terminal
on verifie le lancement de kodi avec :
xinit kodi-standalone
*user kodi :
adduser --disabled-password --disabled-login --gecos "" kodi
usermod -a -G audio kodi
usermod -a -G video kodi
usermod -a -G input kodi
usermod -a -G dialout kodi
usermod -a -G plugdev kodi
usermod -a -G tty kodi
*lancement de kodi en automatique après un reboot:
cd /etc/init.d/
vi kodi
puis coller :
----------------
#!/bin/sh
### BEGIN INIT INFO
# Provides: kodi
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts instance of KODI
# Description: starts instance of KODI using start-stop-daemon and xinit
### END INIT INFO
############### EDIT ME ##################
# path to xinit exec
DAEMON=/usr/bin/xinit
# startup args
DAEMON_OPTS=" /usr/local/bin/kodi-standalone -- :)
# script name
NAME=kodi
# app name
DESC=KODI
# user
RUN_AS=kodi
# Path of the PID file
PID_FILE=/var/run/kodi.pid
############### END EDIT ME ##################
test -x $DAEMON || exit 0
set -e
case "$1" in
start)
echo "Starting $DESC"
start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE --make-pidfile --exec $DAEMON -- $DAEMON_OPTS
;;
stop)
echo "Stopping $DESC"
start-stop-daemon --stop --pidfile $PID_FILE
;;
restart|force-reload)
echo "Restarting $DESC"
start-stop-daemon --stop --pidfile $PID_FILE
sleep 5
start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE --make-pidfile --exec $DAEMON -- $DAEMON_OPTS
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
----------------
puis
chmod +x /etc/init.d/kodi
*pour eviter l'erreur kodi user ERROR: Unable to create GUI. Exiting
editer le fichier : /etc/X11/Xwrapper.config
remplacer 'allowed_users=console' par 'allowed_users=anybody'
*test du script
/etc/init.d/kodi start
/etc/init.d/kodi stop
*mise a jour pour le demarrage auto
update-rc.d kodi defaults
*pour permettre l'arrêt et redemarrage du PC via kodi
apt-get install policykit-1 upower acpi-support consolekit
puis creer le fichier '/var/lib/polkit-1/localauthority/50-local.d/kodi-actions.pkla'
vi /var/lib/polkit-1/localauthority/50-local.d/kodi-actions.pkla
et y coller :
[Xbmc Actions]
Identity=unix-user:kodi
Action=org.freedesktop.upower.*;org.freedesktop.consolekit.system.*;org.freedesktop.udisks.*
ResultAny=yes
ResultInactive=no
ResultActive=yes
Maintenant vous pouvez arreter et redemarrer votre PC l'interface de kodi
***** là on peut aussi rebooter et être content que kodi se lance tout seul au démarrage :)
***install de tvheadend:
ref: https://tvheadend.org/projects/tvheadend/wiki/Building
cd /usr/src/
git clone https://github.com/tvheadend/tvheadend.git
cd tvheadend
./configure --enable-libx265
Installation paths:
Prefix: /usr/local
Binaries: ${prefix}/bin
Libraries: ${prefix}/lib
Data files: ${prefix}/share
Man pages: ${datadir}/man
Final Binary:
/usr/src/tvheadend/build.linux/tvheadend
Tvheadend Data Directory:
/usr/local/share/tvheadend
make -j2
puis avant d'installer (recommandé) lancez :
./build.linux/tvheadend
ctrl^C pour en sortir
vi /root/.hts/tvheadend/superuser
et y coller :
{
"username": "admin",
"password": "admin"
}
puis:
***script de demarrage de tvheadhend
cd /etc/init.d/
vi tvh
puis coller :
----------------
#!/bin/sh
### BEGIN INIT INFO
# Provides: tvh
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts instance of Tvheadend
# Description: starts instance of Tvheadend using start-stop-daemon
### END INIT INFO
############### EDIT ME ##################
# path to xinit exec
DAEMON=/usr/src/tvheadend/build.linux/tvheadend
# script name
NAME=tvh
# app name
DESC=Tvheadend
# user
RUN_AS=root
# Path of the PID file
PID_FILE=/var/run/tvh.pid
############### END EDIT ME ##################
test -x $DAEMON || exit 0
set -e
case "$1" in
start)
echo "Starting $DESC"
start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE --make-pidfile --exec $DAEMON
;;
stop)
echo "Stopping $DESC"
start-stop-daemon --stop --pidfile $PID_FILE
;;
restart|force-reload)
echo "Restarting $DESC"
start-stop-daemon --stop --pidfile $PID_FILE
sleep 5
start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE --make-pidfile --exec $DAEMON
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
----------------
puis
chmod +x /etc/init.d/tvh
*test du script
/etc/init.d/tvh start
/etc/init.d/tvh stop
*mise a jour pour le demarrage auto
update-rc.d tvh defaults
***config de tvheadend
Je vous conseille de lancer tvheadend sans passer par le script pour la période de config.
Cela vous permettra de voir l'ensemble des outputs dans votre session terminal
donc lancer:
./usr/src/tvheadend/build.linux/tvheadend
et à l'aide du navigateur : http://192.168.1.200:9981/ (remplacez par l'ip de votre Debian)
user 'admin' pass 'admin'
Voilà,
Une contrib de plus avec ce Tuto d'install réalisé, j'espère qu'il vous aura été ou vous sera utile.
Dans l'état actuel, vous n'aurez que les canaux FTA (FreeToAir)/chaines en clair, Je rajouterais un peu plus tard les infos sur comment lier oscam a tvheadend mais les curieux trouveront :)
à suivre :
-alternatives de compilation pour les optimisations nvidia (et amd .. je sais pas, je dois creuser le sujet)
-l'epg externe avec tvheadend
-install d'un lecteur de carte
-liaison oscam <-> tvheadend
-classement des chaines de tvheadend
-un controle parental
-config unicable et 4 tuners dans tvheadend
-et un rapide tour sur comment recevoir sur tablette et autres kodi dans la maison.
Et je regarde aussi comment proposer une image de l'OS avec tout dedans :)
ps: pour les plus riches d'entre nous, il y a Dveo aux us qui font ce genre de boitier.
et coté processeur, un 2 coeurs 3g est semble t il le mininal a avoir dans ma config pour transcoder.
En lecture directe via kodi sur la tv, j'arrive a 10-15% de charge Cpu
En transcodage, ça monte a 60-70% pour 1 session, avec des warning de libav. (je vais aussi creuser le sujet)
^^
à suivre