[CR]Raspberry Pi

J’en ai achete un a la sortie du truc, et comme le signale Chernyfox, j’avoue qu’apres quelques heures a bidouiller avec, il est vite retourné dans son petit carton de chez Farnell… Mais c’est clair que le potentiel educatif est plus qu’interessant, meme pour des utilisateurs avertis ( http://goo.gl/rvKXj ).

Comme je suis un peu flemmard, ca donne quoi raspbmc sur du lourd, disons une video ‘haute qualité’ (style h264 en 1080p, avec audio DTS 5.1)? Peut-on configurer facilement l’audio en ‘pass-through’ pour delester le decodage audio sur un ampli adéquat?

[edit: orthographe]

Comme le monsieur (on va croire qu’on donne raison à P@co): en HTPC, avec du BRRip tel quel, genre 30-50Go, quid?
Car oui, avoir un truc pas cher à bidouiller, c’est fun, mais son utilisation principale serait quand même en HTPC si ça passe tout.

Et vi, je pense partir vers un des grands frères ou un NUC (fais chier que ce dernier manque de port IR. Sur un Raspberry, fair enough, mais sur un truc à 300 boules, lolno).

Comme je l’avais déjà dit, j’ai pas pu tester avec des BDRIP de 50 gigots, parce que je n’en ai pas (pis où est-ce que je vais stocker ce bordel?), mais ça mange sans souci des rips plus légers, j’en ai un de 12Go avec du DTS de la mort qui ne saccade même pas en wifi. Pis bon, pour un truc aussi petit et peu cher (pour peu qu’on ait un peu de bordel déjà acquis, genre les câbles et autres cartes mémoire) c’est déjà impressionnant.

La FAQ officielle dit:

What SoC are you using?

The SoC is a Broadcom BCM2835. This contains an ARM1176JZFS, with floating point, running at 700Mhz, and a Videocore 4 GPU. The GPU is capable of BluRay quality playback, using H.264 at 40MBits/s. It has a fast 3D core accessed using the supplied OpenGL ES2.0 and OpenVG libraries.

Quand on l’achète, il y a déjà le petit connecteur en haut à gauche, ou faut il le souder soi même ?

Le connecteur P1, c’est les GPIO ( http://elinux.org/RP…vel_peripherals ) , livré tel que sur la photo et a ta disposition pour bricoler ce que tu veux.

Bon. J’ai vaincu ma flemme, j’ai installé la dernière version de raspbmc, et j’ai fait quelques tests.
J’ai testé trois films, tous les trois rippés par mes soins. Les films sont stockés sur un NAS connecté en Gigabit Ethernet, (même si le Raspberry n’est doté que d’un interface 10/100)

  • Un rip de DVD (Evolution) en SD, vidéo MPEG-4, audio en stéréo AAC: ca passe sans soucis
  • Un rip de blu-ray recompressé (Heat), video MPEG-4 AVC, audio AC3 5.1: Ca passe! (bonne surprise)
  • un rip de blu-ray non recompressé (The Amazing Spider-Man), video en MPEG-4 AVC, audio en DTS 5.1 Lossless: ca passe pas, le soft passe son temps a remplir la mémoire tampon…

Donc grosso modo, pour peu qu’on prenne la peine de recompresser le film, ca marche, grace a l’acceleration du decodage en hardware. Par contre on voit vite les limites de la bête pour ce qui est du rendu 2D, l’interface est péniblement lente, l’indexation aussi.

Pour info, mon HTPC actuel, un Zotac ZBox HD-ID11 équipé d’un Atom D510, faisant tourner xmbcbuntu et de la dernière release de xmbc (12 RC 2) lit les 3 films sans broncher, et l’interface est parfaitement fluide.

Ton zotac c’est du x86 dual core, pour info l’ARM du Pi c’est peu ou prou équivalent à un pentium II 200Mhz et ça coûte légèrement plus cher aussi :wink:

Si mes souvenir sont bons, le Zotac coutait au moins 5 fois plus cher que le pi, sans la RAM. C’est sur qu’ils ne jouent pas dans la meme cour…

OK, c’est juste ultra sexy le cotton candy. Je guette le NUC, voir si une version fanless spawn, et je me déciderai dans la foulée.

Bon alors j’ai eu un weekend un peu chargé, du coup je ne m’en occupe que maintenant, mais voilà une petit tuto pour faire du Pi un serveur de DL (SABNZBD+Sickbeard) doublé d’un media center (XBMC)

1. La distrib’

Pour commencer, il faut choisir une distribution. J’ai préféré démarrer d’une distribution media center et d’installer sickbeard/Sab dessus. Mon choix s’est porté sur Xbian, que j’ai trouvé plus fluide que OpenElec et surtout, supportant le SSH (Oui parce que vous allez voir, on va taper de la ligne de code :slight_smile: )

Ca se télécharge ici : et apparemment maintenant il y a un chouette installer pour Windows (Pour Linux et Mac, il faudra passer par une méthode manuelle, voir l’onglet Manual sur le lien)

2. Démarrer sur de bonnes bases

Maintenant que Xbian est installé sur votre SD et la SD insérée dans votre framboise, il va falloir démarrer la bête. Ensuite, une fois XBMC affiché, allez dans System > System Info > Network.
(Le mien est sur 192.168.2.17)
Profitez-en pour modifier le port de l’interface web afin qu’il n’y ait pas de conflit avec les autres applis, perso j’ai mis 8082. Ca se passe dans System > Settings > Service > Web Server si mes souvenirs sont bons.

Retournez à votre PC préféré, téléchargez et lancez Putty : et indiquez l’adresse de votre Raspberry puis cliquez sur Open.

On va vous demander un login (xbian) et un mot de passe (raspberry). Le même mot de passe sera à retaper si demandé par le système en cas d’utilisation de la commande sudo (Oui je sais, c’est le B.A-BA mais on ne sait jamais :slight_smile: )
Vous pourrez le changer à l’aide de la commande passwd :

sudo passwd xbian

De même attendez à chaque fois que le système vous rende la main avant de taper d’autres commandes.

Bref, on arrive donc sur le menu de config de Xbian

Vous pourrez modifier deux ou trois bidules ici, notamment dans settings qui vous permettra de configurer l’adresse IP de la bestiole (Networking > Lan > Fixed) ou l’heure système (System > Timezone) même si XBMC s’en tape et ne prend que ses propres paramètres horaires ^^

Sélectionnez ensuite Return jusqu’à ce que vous ayez accès à l’invite de commande.

On va maintenant procéder à la mise à jour du système histoire d’être tranquille de ce côté-là :

sudo apt-get update sudo apt-get -y upgrade

C’est le firmware qui se voit ensuite updaté, à l’aide de Git que nous allons donc installer :

sudo apt-get -y install git

On va pouvoir faire effectivement l’update du firmware :

git clone git://github.com/Hexxeh/rpi-update.git cd rpi-update sudo ./rpi-update

Puis rebooter la bête :

sudo reboot

3. Installer SABnzbd et Sickbeard

Hola, hola, pas tout de suite, il y a un ou deux prérequis, genre python, ou par2 pour vérifier les fichiers de newsgroup. On va donc les installer en preum’s :

sudo apt-get -y install python2.6 python-cheetah python-openssl par2

Ensuite, SABnzbd étant relativement chafouin sur la version de rar qu’il peut utiliser, on va installer une version précise (La version de raspbian, en fait)

sudo sh -c "echo \"deb-src http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi\" >> /etc/apt/sources.list" sudo apt-get update sudo apt-get -y build-dep unrar-nonfree sudo apt-get source -b unrar-nonfree sudo dpkg -i unrar*.deb

On va enfin créer un groupe d’utilisateurs afin de gérer facilement les permissions sur les différents dossiers créés :

sudo addgroup nzb

3.1 SABnzbd

Là, on rentre dans le vif du sujet, c’est parti pour l’install de SAB !
Histoire d’être sûr d’utiliser la dernière version (0.7.7 ce soir) on va aller récupérer l’adresse du fichier sur SourceForge
Cliquez ensuite sur le dossier correspondant à la dernière version puis faites un clic droit sur le fichier finissant par src.tar.gz (GZ !). Sélectionnez copier l’adresse du lien puis entrez les commandes suivantes :

wget http://sourceforge.net/projects/sabnzbdplus/files/sabnzbdplus/0.7.7/SABnzbd-0.7.7-src.tar.gz

Par défaut, SourceForge rajoute /download à la fin de l’url, pensez bien à le supprimer, ou wget vous téléchargera une bête page HTML.

On va ensuite procéder à l’installation de SABnzbd à proprement parler :

tar xzf SABnzbd-0.7.7-src.tar.gz sudo mv SABnzbd-0.7.7 /usr/local/sabnzbd

Pensez à changer le numéro de version :slight_smile:

On créé ensuite un utilisateur à qui on va donner les droits d’accès aux fichiers de config (c’est mieux) et un dossier pour les données :

sudo useradd --system --user-group --no-create-home --groups nzb sabnzbd sudo chown -R sabnzbd:nzb /usr/local/sabnzbd sudo mkdir /var/sabnzbd sudo chown sabnzbd:nzb /var/sabnzbd

Tout devrait fonctionner, on va donc tester tout ça et créer les fichiers de config (N’oubliez pas de changer l’IP :slight_smile: )

sudo su sabnzbd -c "/usr/local/sabnzbd/SABnzbd.py -f /var/sabnzbd -s 192.168.2.17:8080"

Vous pouvez ensuite taper http://192.168.2.17:8080 dans votre navigateur préféré et admirer l’interface de SABnzbd qui s’offre à vous. Je vous conseille d’ailleurs de suivre l’excellent tuto de Coldo pour la config de Sick et Sab, que vous trouverez ici : Les newsgroups pour les nuls : SABnzbd+, Sickbeard & CouchPotato - Software - GeekZone

Les plus courageux pourront rendre le serveur web accessible depuis l’extérieur de leur réseau, mais ce n’est pas le sujet de ce tuto (excuse également appelée « J’ai la flemme » ^^)

Dernière remarque, le Pi n’étant pas une bête de course, limitez le nombre de connexions. Même si votre provider vous permet 120 connexions, une limite haute à 5 me parait plus sage (Vu la consommation ridicule du machin, de toutes façons, c’est pas hyper grave si il doit DL un peu plus longtemps :slight_smile: )

Bref, tuons donc le processus afin de s’occuper de l’installation de Sickbeard, avec un petit CTRL+C des familles.

3.2 Sickbeard

L’installation ressemble étrangement à celle de SABnzbd, avec création d’utilisateur, changement de droits, etc. Le téléchargement de l’appli est par contre plus aisée puisqu’on a recours à un simple Git :

sudo useradd --system --user-group --no-create-home –groups nzb sickbeard git clone git://github.com/midgetspy/Sick-Beard.git sudo mv Sick-Beard /usr/local/sickbeard sudo chown -R sickbeard:nzb /usr/local/sickbeard sudo chmod ug+rw /usr/local/sickbeard/autoProcessTV/ sudo mkdir /var/sickbeard sudo chown sickbeard:nzb /var/sickbeard cd /usr/local/sickbeard/autoProcessTV sudo mv autoProcessTV.cfg.sample autoProcessTV.cfg

On lance le serveur :

sudo su sickbeard -c "/usr/local/sickbeard/SickBeard.py --datadir /var/sickbeard --config /var/sickbeard/sickbeard.ini"

Et sous vos yeux ébahis, l’entrée de l’url http://192.168.2.17:8081 affiche l’interface du logiciel barbu.

4. Les démarrages auto

Oui parce que c’est un peu relou de devoir se connecter au Pi à chaque fois qu’on veut lancer le serveur. On va donc se faire 2 petits scripts afin de démarrer les services automatiquement.

Pour SAB :

sudo nano /etc/init.d/sabnzbd

Et on colle dedans le script suivant :

[CODE]#!/bin/sh

BEGIN INIT INFO

Provides: SABnzbd

Required-Start: $network $remote_fs $syslog

Required-Stop: $network $remote_fs $syslog

Default-Start: 2 3 4 5

Default-Stop: 0 1 6

Short-Description: Start SABnzd at boot time

Description: Start SABnzbd.

END INIT INFO

case « $1 » in
start)
echo « Starting SABnzbd. »
/usr/bin/sudo -u sabnzbd -H /usr/local/sabnzbd/SABnzbd.py -d -f /var/sabnzbd/sabnzbd.ini
;;
stop)
echo « Shutting down SABnzbd. »
p=ps aux | grep -v grep | grep SABnzbd.py | tr -s \ | cut -d ' ' -f 2
if [ -n « $p » ]; then
kill -2 $p > /dev/null
while ps -p $p > /dev/null; do sleep 1; done
fi
;;
*)
echo « Usage: $0 {start|stop} »
exit 1
esac
exit 0[/CODE]

Sauvegardez avec CTRL+O et fermez avec CTRL+X

On donne ensuite les droits, on précise qu’il faut lancer le script au démarrage et on démarre le service :

sudo chmod 755 /etc/init.d/sabnzbd sudo update-rc.d sabnzbd defaults sudo /etc/init.d/sabnzbd start

Même chose pour SickBeard :

sudo nano /etc/init.d/sickbeard

Puis le script lui-même

[CODE]#!/bin/sh

BEGIN INIT INFO

Provides: SickBeard

Required-Start: $network $remote_fs $syslog

Required-Stop: $network $remote_fs $syslog

Default-Start: 2 3 4 5

Default-Stop: 0 1 6

Short-Description: Start SickBeard at boot time

Description: Start SickBeard.

END INIT INFO

case « $1 » in
start)
echo « Starting SickBeard. »
/usr/bin/sudo -u sickbeard -H /usr/local/sickbeard/SickBeard.py -d --datadir /var/sickbeard --config /var/sickbeard/sickbeard.ini
;;
stop)
echo « Shutting down SickBeard. »
p=ps aux | grep -v grep | grep SickBeard.py | tr -s \ | cut -d ' ' -f 2
if [ -n « $p » ]; then
sb_api_key=grep -m 1 api_key ${sb_config} | cut -d ' ' -f 3;
sb_port=grep -m 1 web_port ${sb_config} | cut -d ' ' -f 3;
wget -q --delete-after http://localhost:${s…cmd=sb.shutdown
while ps -p $p > /dev/null; do sleep 1; done
fi
;;
*)
echo « Usage: $0 {start|stop} »
exit 1
esac

exit 0[/CODE]

Les droits et le démarrage auto :

sudo chmod 755 /etc/init.d/sickbeard sudo update-rc.d sickbeard defaults sudo /etc/init.d/sickbeard start

5. Le stockage

Différentes écoles, ceux qui ont un NAS et ceux qui creusent et ceux qui ont un périphérique USB branché sur le Pi.
On montera de toutes façons le support de stockage dans le dossier /var/multimedia, donc autant le créer tout de suite :

sudo mkdir -p /var/multimedia/

5.1 Avec un NAS

C’est le plus simple, même si ça doit dépendre des NAS. Avec le mien, configuré en CIFS, ça donne ça :
On ouvre le fichier des montages automatiques :

sudo nano /etc/fstab

On ajoute une ligne à la fin pour que le dossier /var/multimedia du Pi pointe dessus et on active le montage :

//192.168.2.16/NAS /var/multimedia cifs user=login,password=azerty1234 sudo mount -a

A vous bien sûr de mettre les infos qui vont bien :slight_smile:

5.2 Avec un périph USB

J’ai trouvé ça un peu plus chiant et pour tout dire, ça n’a pas marché chez moi (Mais je noobise en Linux, quelqu’un me corrigera peut-être sûrement.)

Bref. D’abord, faites en sorte que le disque soit formaté en ext4, c’est mieux si vous souhaitez télécharger des fichiers de plus de 4Go

Ensuite, on procède comme pour avec un NAS, sauf qu’il faut connaître l’identifiant de la partition du periph’ usb de stockage. En général, c’est sda1, mais si jamais c’est pas ça, bah ça marchera pas ^^

sudo nano /etc/fstab

Et on ajoute la ligne supplémentaire :

/dev/sda1 /var/multimedia ext4 users,umask=1000,rw,auto 0 0 sudo mount -a

On va ensuite créer les dossiers pour que tout ce petit monde fonctionne correctement, avant de donner les droits pour que les applis puissent écrire dedans (Si cette dernière étape renvoie une erreur, pas d’inquiétude, ça peut marcher quand même) :

sudo mkdir -p /var/multimedia/tv sudo mkdir -p /var/multimedia/incoming/sabnzbd/incomplete sudo mkdir -p /var/multimedia/incoming/sabnzbd/complete sudo mkdir -p /var/multimedia/incoming/sabnzbd/complete_tv sudo mkdir -p /var/multimedia/incoming/sickbeard sudo chown –R sabnzbd :nzb /var/multimedia

Pour la configuration de SABnzbd, ça se passe comme ça chez McDolan’s (en plus du tuto de Coldo linké plus haut)[ul]
[li]General/Host = 0.0.0.0[/li][li]Folders/Temporary Download Folder = /var/multimedia/incoming/sabnzbd/incomplete[/li][li]Folders/Completed Download Folder = /var/multimedia/incoming/sabnzbd/complete[/li][li]Post-Processing Scripts Folder = /usr/local/sickbeard/autoProcessTV[/li][/ul]
Et pour Sickbeard :[ul]
[li]General/Misc/Launch Browser = off[/li][li]Search Settings/NZB Search/Method = SABnzbd[/li][li]Search Settings/NZB Search/Host = http://localhost:8080[/li][li]Search Settings/NZB Search/API Key = la clé API qu’on trouve dans SABnzbd>Configuration>General[/li][li]Search Settings/NZB Search/Category = tv[/li][li]Post Processing/Keep Original Files = off[/li][/ul]
Enfin, ne pas oublier lors des ajouts de séries dans Sickbeard de renseigner le répertoire parent /var/multimedia/tv

Voilà, c’est tout pour ce petit tuto. Je tiens à remercier mes parents, sans qui je ne serais pas là ce soir, mais également mon équipe et mes assistants (c’est à dire mon chat), ainsi que ce site : http://www.cylindric…pberrypi-setup/ sur lequel je me suis très très lourdement appuyé pour écrire mon petit laïus (même si j’ai corrigé des machins et rajouté des trucs qui n’étaient pas très clairs pour moi, c’est quand même bien pompé :wink: )
A noter d’ailleurs que vous pourrez aussi installer CouchPotato en le suivant, chose que je n’ai pas faite car je n’en avais pas l’utilité.

N’hésitez pas à me signaler les éventuelles erreurs, même si « pour moi ça marche » comme ça, c’est peut-être pas le cas partout.

Wow, good job sir!
Ça mériterait un topic dédié.

Haha merci !
J’sais pas s’il faut un topic dédié… Ca risque pas de faire un peu doublon avec celui-là ?

A noter que la même chose devrait marcher sur openelec et sur raspbmc (par contre le apt-get upgrade est à proscrire sur celui là)

J’ai pas réussi à attaquer OpenElec en SSH perso, d’où mon passage sur xbian.
Et raspbmc, je ne l’ai pas testé, j’avoue ^^

Le ssh est désactivé par défaut sur openelec, faut aller l’activer dans les options.

Ah ben j’avais pas fouillé assez. Du coup, oui, ça doit fonctionner :slight_smile:

Joli taf en tout cas Chernyfox. Bravo et merci

Des malades sont en train de faire mumuse avec freebsd et aussi go sur les raspberry.

http://dave.cheney.net/2012/12/31/testing-go-on-the-raspberry-pi-running-freebsd

Je m’en suis mis un sous le sapin.

Je vois que beaucoup l’utilisent pour le côté média-center. Perso je suis en inter-contrat à partir de janvier et pour au moins une petite semaine, du coup je vais amener ça au siège et jouer avec, peut-être faire une démo ou un mini-projet avec les collègues. Je verrais bien un truc qui utilise l’API XML de Jenkins pour faire une synthèse des builds sur un écran au milieu de l’espace de travail. Peut-être jouer avec un peu de synthèse vocale aussi. Des résumés des builds en erreur / tests qui foirent / serveurs qui tombent, le tout sur un vieil écran 17’ au rabais avec enceinte intégrée pour en faire le compagnon du tableau blanc d’une équipe de dévs…

Ça serait juste la classe :slight_smile: