Le Seagate Dockstar est un « plug computer » (ordinateur de la taille d’une prise de courant et consommant moins de 5W …) trouvé à 25 € en déstockage. Je compte l’utiliser en remplacement de mon NSLU2 qui commence à dater, et sa première utilisation va être de tenter d’installer un backend MythTV qui pourra servir pour diffuser la TV et autoriser les enregistrements sur les frontaux suivants :
- mvpmc
- XBMC
L’idée est de faire fonctionner dans un premier temps sur le Dockstar le tuner « Network Recorder » de MythTV pour enregistrer la TV Freebox multiposte. Ensuite, essayer de mettre un tuner TNT.
Après un premier essai (fructueux) d’installation de Debian Lenny + le package MythTV 0.23-1, j’ai dû recommencer mon installation, m’apercevant de l’incompatibilité de cette version avec XBMC 9.11 et mvpmc.
J’ai donc utilisé la distribution Linux Debian Squeeze (pourquoi pas?) et de MythTV 0.22 qui et supportée par XMBC et semble d’après les mailing list supportée par mvpmc. Comme ce fut assez laborieux, voici un pense-bête avec les différentes étapes (on trouve quasi tout ailleurs éparpillé sur le web).
Installation de Debian
Voir la procédure documentée ici : Seagate FreeAgent DockStar Linux Debian Squeeze Installation + Application Programs (à partir de la procédure de Jeff Doozan (voir aussi le forum associé Dockstar Debian).
Installé sur un disque dur externe de 2T partitionné en 3 partitions :
- Système sur 5 G pour être à l’aise
- Swap à 512M
- Data avec le reste, formaté en XFS pour les performances, et monté sur /share
Quelques personnalisations :
- régénérer les clefs SSH :
rm /etc/ssh/ssh_host* ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N "" ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""
- Pour gagner de la mémoire, désactiver IPv6 : éditer /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
- installer et configurer NTP pour le garder à l’heure
- on peut aussi faire quelques optimisations de configuration
- et aussi pour les perfs du système de fichiers XFS sur le réseau : Optimize maximum throughput of the modified Seagate Dockstar
Packages :
- Editer /etc/apt/sources.list
## squeeze deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.fr.debian.org/debian/ squeeze main contrib non-free ## squeeze multimedia deb http://mirror.home-dn.net/debian-multimedia squeeze main deb-src http://mirror.home-dn.net/debian-multimedia squeeze main ## squeeze security deb http://security.debian.org/ squeeze/updates main contrib non-free deb-src http://security.debian.org/ squeeze/updates main contrib non-free
- Installer les clefs qui vont bien pour le dépot multimedia :
apt-get update apt-get install debian-multimedia-keyring apt-get update
Préparer la base de données MythTV
Suivre les instructions de Sheeva Plug as MythTV master backend
# apt-get install mysql-server mysql-client # apt-get install libqt4-sql-mysql
Bien se souvenir du mot de passe qu’on donne (exemple newpassword)
Editer /etc/mysql/my.cnf : remplacer 127.0.0.1 par l’adresse IP de la machine
# /etc/init.d/mysql restart # cd /tmp # wget http://computingplugs.com/files/mc.sql # mysql -u root -p <mc.sql # mysql -u root -p
Au prompt mysql, taper :
mysql> use mysql; mysql> insert into user (host,user) value('%','mythtv'); mysql> set password for 'mythtv'@'localhost' = password('newpassword'); mysql> flush privileges; mysql> quit
Autoriser les accès distants à la base mythconverg:
- depuis le réseau local 192.168.1.0 (à changer si nécessaire),
- éventuellement depuis le domaine DNS lan (utilisable si on a un DNS local correct, ce qui est recommandé pour éviter de maintenir des fichiers hosts sur les clients, qui ont besoin de connaitre le serveur MythTV par son nom )
$ mysql -u root -p mythconverg mysql> grant all on mythconverg.* to mythtv@'192.168.1.%' identified by 'newpassword'; mysql> grant all on mythconverg.* to mythtv@"%.lan" identified by 'new_password'; mysql> flush privileges; mysql> quit
Compilation de la version 0.22
Procédure adaptée de Compiling Mythtv-0.21 on the Sheeva Plug et de Installing MythTV from source
# apt-get install build-essential libqt4-dev libmp3lame-dev # apt-get install libxxf86vm-dev libxxf86vm1 libfreetype6-dev libxinerama-dev pkg-config # apt-get install python
Dans le répertoire home /root :
# wget ftp://ftp.osuosl.org/pub/mythtv/old_releases/mythtv-0.22.tar.bz2 # tar vxjf mythtv-0.22.tar.bz2 # cd mythtv-0.22 # ./configure --cpu=armv5te # make # make install
mythtv s’installera par défaut dans /usr/local
Post-install de mythbackend
Voir : Configurer mythtv (partie backend) et Installing MythTV from source
Créer l’utilisateur mythtv (j’ai pris le même uid que dans le package debian) :
adduser mythtv usermod -u 106 mythtv groupmod -g 114 mythtv
Créer les répertoires avec les droits ad-hoc :
# mkdir mythtv # mkdir mythtv/recordings # chown mythtv:mythtv /srv/mythtv # chown mythtv:mythtv /srv/mythtv/recordings
Créer un fichier de démarrage /etc/init.d/mythtv-backend
# cd /etc/init.d # wget http://computingplugs.com/files/mythtv-backend # update-rc.d mythtv-backend defaults
Créer répertoire de log
mkdir -p /var/log/mythtv chown mythtv /var/log/mythtv
Créer le fichier de config de mythbackend
# mkdir /etc/mythtv
Editer /etc/mythtv/mysql.txt (ou /home/mythtv/.mythtv/mysql.txt si seul l’utilisateur mythtv utilise le programme , ce qui est en principe le cas)
DBHostName=localhost # By default, Myth tries to ping the DB host to see if it exists. # If your DB host or network doesn't accept pings, set this to no: # DBHostPing=no DBHostName=localhost DBUserName=mythtv DBName=mythconverg DBPassword=new_password # Set the following if you want to use something other than this # machine's real hostname for identifying settings in the database. # This is useful if your hostname changes often, as otherwise you # will need to reconfigure mythtv (or futz with the DB) every time. # TWO HOSTS MUST NOT USE THE SAME VALUE # # LocalHostName=MYCOOLMYTHTVHOST # If you want your frontend to be able to wake your MySQL server # using WakeOnLan, have a look at the following settings: # # # The time the frontend waits (in seconds) between reconnect tries. # This should be the rough time your MySQL server needs for startup # #WOLsqlReconnectWaitTime=0 # # # This is the number of retries to wake the MySQL server # until the frontend gives up # #WOLsqlConnectRetry=5 # # # This is the command executed to wake your MySQL server. # #WOLsqlCommand=echo 'WOLsqlServerCommand not set'
Installer et configurer mythWeb
J’ai installé mythWeb de manière à pouvoir :
- gérer les enregistrements à partir d’un browser
- gérer la base de données mythconverg de manière plus simple
- utiliser le serveur web de mythWeb pour héberger le fichier playlist des chaines freebox que je veux garder dans ma config (enlever celles qui ne marchent pas, celles auxquelles je ne suis pas abonné, celles qui n’ont pas la résolution voulue -HD, SD, bas débit-)
Comme le Deskstar est quand même une petite machine avec peu de mémoire, on va tacher d’économiser ses ressources en utilisant un serveur httpd plus léger qu’apache : nginx , associé à spawn-fcgi et php :
# apt-get install nginx # apt-get install spawn-fcgi
J’ai installé comme suggéré le répertoire des pages web dans /var/www/html mais en utilisant un lien symbolique pour qu’il reside physiquement dans /share/www/html (/dev/sda3 étant monté sur /share)
Editer /etc/nginx/sites-available/default
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name; fastcgi_param db_server localhost; fastcgi_param db_name mythconverg; fastcgi_param db_login mythtv; fastcgi_param db_password mythtv; fastcgi_param hostname mymythbox; include fastcgi_params; }
location /mythweb/ { root /var/www/html; # The two Auth Lines assume that you want to password protect - which is recommended auth_basic "Restricted"; # Supports a standard htpasswd file, which defaults to the same directory as nginx.conf auth_basic_user_file htpasswd; if (!-e $request_filename) { rewrite ^/mythweb/(pl(/.*)?)$ /mythweb/mythweb.pl?PATH_INFO=/$1 last; rewrite ^/mythweb/(.+)$ /mythweb/mythweb.php?PATH_INFO=/$1 last; } if (!-f $request_filename) { rewrite ^/mythweb/(.*)$ /mythweb/mythweb.php last; } }
récuperer htpasswd et choisir un mot de passe pour le site web mythweb
# apt-get install apache2-utils # htpasswd -d -c /etc/nginx/htpasswd mythtv
Récupérer mythweb
# cd /var/www # wget ftp://ftp.osuosl.org/pub/mythtv/old_releases/mythplugins-0.22.tar.bz2 # tar xjvf mythplugins-0.22.tar.bz2 # mv mythplugins-0.22/mythweb html # mkdir /var/www/html/data # chgrp -R www-data /var/www/html/data # chmod g+rw /var/www/html/data # chown -R mythtv /var/www/html/data # apt-get install php5-common php5-cgi php5-mysql
Editer /etc/init.d/fastcgi
#!/bin/bash COMMAND=/usr/bin/spawn-fcgi ADDRESS=127.0.0.1 PORT=9000 USER=www-data GROUP=www-data PHPCGI=/usr/bin/php5-cgi PIDFILE=/var/run/fastcgi-php.pid RETVAL=0 case "$1" in start) $COMMAND -a $ADDRESS -p $PORT -u $USER -g $GROUP -f $PHPCGI -P $PIDFILE RETVAL=$? ;; stop) killall -9 php5-cgi RETVAL=$? ;; restart) killall -9 php5-cgi $COMMAND RETVAL=$? ;; *) echo "Usage: fastcgi {start|stop|restart}" exit 1 ;; esac exit $RETVAL
Utiliser ce fichier pour les séquences de démarrage
# chmod +x /etc/init.d/fastcgi # update-rc.d fastcgi defaults # /etc/init.d/fastcgi start
Modifier /etc/nginx/sites-available/default
location / { root /var/www/html; index index.html index.htm index.php; }
Tester php avec un programme de type hello world…
Configurer mythbackend
# su - mythtv
Vérifier que la base mySQL fonctionne
$ mysql -u mythtv -p mysql> use mythconverg mysql> show tables; mysql> quit
Ouvrir le display sur un serveur X-Window (serveurX). J’ai personnellement utilisé une machine virtuelle Mint sous VMware (Debian m’ayant contrarié pour les accès X11 distants, je n’ai pas insisté)
$ export DISPLAY=serveurX:0
Configurer le backend (voir Configurez votre setup ) :
$ mythtv-setup
Pour la configuration particulière de Freebox TV : Configuration d’une carte d’acquisition virtuelle ADSL de type freebox V4 et V5.
Voici au moement où je l’écris les chaines SD qui marchent et celles qui ne marchent pas avec mythTV (celles qui ne marchent pas laissent le backend dans un état bizarre : il vaut donc mieux créer un fichier playlist.m3u extrait de celui de Free et qui ne contient que les chaines qui marchent … et l’installer par exemple à la racine de son Web nginx)
– France 2
– France 3
+ France 5
+ Arte
– Direct 8
– TMC
– NT1
– NRJ12
+ LCP
– France 4
– BFM TV
+ i> Tele
– RTL9
– AB1
+ TV5 monde
+ NRJ Hits
+ Clubbing TV
– BFM TV
– i>Tele
+ Euronews
+ Sky News
+ France 24
+ France 24 ENG
+ France O
+ Vox Africa
+ Canal Info News
+ Antenne Caraibe
+ France 3 Cote Azur
+ Telesur
Lancer le backend :
# /etc/init.d/mythtv-backend start
Tester depuis un frontend
Personnellement j’ai d’abord testé mythfrontend sur une machine virtuelle debian, avant de me lancer à tester :
- XBMC 9.11 : marche plutôt bien
- MythBox sur XBMC : idem
- mvpmc : marche plutôt pas bien
- la carte virtuelle « Network recorder » n’est pas reconnue; il faudrait patcher le code (pas le temps pour l’instant, j’ai pris un dongle censé avoir les derniers bons patchs pour mythtv) . Du coup la fonction liveTV ne marche pas
- avec ce dongle je n’ai pas eu les programmes TV ni réussi à programmer d’enregistrement
- par contre on lit bien les enregistrements déjà enregistrés.
Guide des programmes
crontab de mythtv :
15 23 * * */3 /usr/local/bin/tv_grab_PERSO 20 23 * * * /usr/local/bin/mythfilldatabase --file 1 /home/mythtv/tvguide.xml
Voir aussi
Sur le Seagate Deskstar
- Seagate DockStar un plug computer green
- Seagate Dockstar en déstockage, un Plug Computer très abordable.
Je viens de tomber sur ta page en regardant nos referers, expérience très intéressante je trouve ! J’en ai et fais part aux autres membres de la comunauté (je n’ai pas souvenir que quelqu’un en a parler) http://mythtv-fr.org/forums/viewtopic.php?pid=18752#p18752.
Bonjour,
Je viens de mettre en ligne sur mon blog un benchmark sur les performances du seagate dockstar avec nginx pour l’autohébergement … Moins de 4W de consommation pour plus de 3000 visiteurs uniques/jours ! VIVE le DockSTar !!
Je sais, je suis un peu off topic, mais je me suis dit que cela pouvait vous intéresser ?!
http://goo.gl/z1Lkg
Cordialement,
Vincent RABAH