PROJET AUTOBLOG


Le Blog de Cyrille BORNE

Site original : Le Blog de Cyrille BORNE

⇐ retour index

Raspberry Pi, oui mais pas pour tout faire

samedi 13 décembre 2014 à 08:00

Le Raspberry Pi est un ordinateur qui se présente sous la forme d'une simple carte, dont voici les caractéristiques  principales pour le modèle B+, la révision la plus puissante actuellement. Un processeur ARM 700MHz, 512MB RAM de mémoire, 4 Port USB 2.0, un port RJ45, une sortie HDMI, une puce de décodage HD. D'un point de vue prix si je me fie aux tarifs de la boutique Kubi

En image

On a donc un tarif de 54 € pour démarrer l'aventure avec le pi. A ce prix là qu'est ce que je peux trouver sur le net ? A ce prix là je n'ai pas grand chose, surtout en cherchant deux minutes, je trouve tout de même pour globalement 75 € frais de port inclus un DELL OPTIPLEX GX330 PENTIUM DUAL CORE 160GO DE HDD. Est ce que la comparaison est judicieuse ? Ca dépend.

Le raspberrypi est une machine discrète de par sa taille et de par le bruit qu'elle génère, la faible consommation électrique qu'elle engendre. En outre il est nécessaire de resituer son contexte d'utilisation, car comme beaucoup j'avais acheté cet appareil pour en faire autre chose. Le raspberry pi est avant tout une machine éducative, destinée à l'apprentissage de l'informatique, dès lors une utilisation de type production pour réaliser un serveur ou un poste de travail serait une véritable hérésie. Je suis tombé dans le panneau, car le raspberrypi c'est facile. En effet, l'appareil s'installe très simplement avec la distribution raspbian en à peine quelques minutes et il est aisé de la transformer en ce qu'on veut puisque debian permet d'avoir un bureau traditionnel, ici par défaut le très léger LXDE ou de créer naturellement un serveur. La distribution s'installe très simplement par la commande dd ou en utilisant le logiciel imagewriter

ci-dessous quelques écrans en vrac qui montrent d'une part, le paramétrage possible pour le pi mais aussi l'environnement de bureau.

Quelques écrans

Avec le pi j'ai essayé pas mal de choses. J'avais pensé équiper des salles informatiques complètes avec, économique, peu encombrant, il aurait fallu le mettre derrière l'écran avec un support vesa. Malheureusement en mode desktop même avec un environnement ultra léger comme LXDE, l'expérience utilisateur n'est pas convaincante, c'est trop lent. Pour un serveur, j'ai tenté l'expérience avec CozyCloud et Yunohost, qui sont deux "distributions" dédiées à l'auto-hébergement. Trop lourd encore, c'est totalement inexploitable. Pour faire un petit serveur le Rasperry peut être intéressant, il faut néanmoins des applications légères donc uniquement en php sur un serveur léger, exit apache et même nginx est trop lourd.

Donc un rapsberry pi pour quoi faire ? S'entraîner, bricoler, c'est indéniable, rapport qualité, prix, encombrement incomparable. Pour faire un petit serveur multimédia. La carte embarque une puce de décodage HD très convaincante, kodi qui s'appelait anciennement Xbmc, combiné à une petite télécommande pas cher offre un panel de fonctionnalités très impressionnantes, qui va de regarder des vidéos stockées dans le réseau aux chaînes de télévisions HD. Pour faire du mono-tâche, on voit sur le web des tas d'initiatives se développer, des gars qui contrôlent la porte du garage, les stations météos, j'ai pour ma part choisi la borne d'affichage digitale.

L'idée c'est de fournir au niveau du lycée une télévision qui envoie des messages d'accueils, le programme de la journée, la cantine, les absences, la météo, surtout la météo chez nous ça permet de savoir s'il faut appeler Noé pour rentrer à la maison. Lorsque je me suis lancé en 2013, la seule solution possible c'était Xibo. Très rapidement j'ai rencontré des problèmes, lenteurs, bugs de l'application, pas mal de choses à éditer à la main. D'après ce que j'ai lu, les gens qui avaient proposé des images pour le pi embarquant Xibo ont renoncé, Xibo étant trop gourmand pour tourner correctement sur le pi. Il existe de nombreuses solutions aujourd'hui, y compris pour le pi, mais les développeurs ont dû ressentir le besoin si bien que de nombreux produits sont payants. J'ai pour ma part opté pour screenly, un logiciel simple qui est embarqué sur une iso raspbian et qui se contrôle via une passerelle web depuis le navigateur via 192.168.1.x:8080 où 192.168.1.x est l'adresse de votre machine. Il est possible pour l'instant de mettre une vidéo, un site web ou une url. Il est à noter que j'ai rencontré une difficulté quant à l'affichage, j'avais un problème de résolution sur une vieille télévision HDReady, qui me sortait une résolution en 600 et des brouettes. On apprend que les télévisions HDReady c'est 720p pour une résolution en 1280. Sachez qu'il est possible de forcer la résolution du pi de la façon suivante :

il suffit de modifier le fichier /boot/config.txt qui contient les informations majeures sur le pi

et de forcer selon le lien suivant : http://elinux.org/RPi_config.txt

Pour ma part j'ai choisi :

hdmi_group=1
hdmi_mode=4

Les problèmes d'affichage sont résolus.

 

Le raspberry pi est un produit intéressant mais je regrette que la fondation ne sorte pas une machine plus puissante qui permette de faire plus de choses, que les développeurs ne réalisent pas des développements spécifiques. Le raspberry pi pourtant n'en est qu'à ses balbutiements, il faudra donc patienter. D'une part de grands acteurs du monde du libre commencent à s'y intéresser puisque la fondation Mozilla va porter FirefoxOS dessus mais il a permis d'ouvrir la voie à d'autres produits du même type, le Bananapi pour exemple.

A l'heure actuelle et hors utilisation très spécifique, il reste un outil pour les bricoleurs qui ne devraient pas être utilisé en production.

 

Rotation de 180 degrés sur une vidéo et encodage à la volée en ogg

vendredi 12 décembre 2014 à 21:38

De mémoire Avidemux ne gère pas théora, vorbis, ogv et le reste, il faudrait que je demande à Mean pourquoi il ne le fait pas. ogv devient pour moi de plus en plus intéressant car il est libre, mais surtout il est compatible html5, ce qui me permet d'exploiter très rapidement les vidéos sur le site, proprement aussi. Dans Wordpress les players intégrés c'était une véritable galère quand ici c'est fait de façon naturelle. Ci-dessous, une rotation de vidéo à 180 degrés avec encodage à la volée en ogg.

Et le résultat sur un morceau de big buck bunny.

Faire tourner une vidéo avec avidemux, couper

vendredi 12 décembre 2014 à 21:18

Cep propose dans le forum une version en ligne de commande.

ffmpeg -i MOV.mp4 -vf "hflip,vflip,format=yuv420p" -metadata:s:v rotate=0 \-codec:v libx264 -codec:a copy output.mkv

En une image je vous fais la même chose avec Avidemux, il est toutefois à noter qu'il est nécessaire de devoir réencoder sinon on ne peut pas accéder aux filtres.

Dans la foulée je vous montre comment couper un morceau de la vidéo, il suffit de se mettre à la position désirée de cliquer sur A pour marquer le début, B pour marquer la fin et d'enregistrer la vidéo. On voit bien dans la capture du bas sur la timeline, les crochets pour A et B. Vous noterez que la vidéo a bien été inversée.

Gestion par volumes logiques : LVM pour tous

vendredi 12 décembre 2014 à 18:00

Ce howto est à l'usage des débutants et va utiliser essentiellement une interface graphique. Si vous le suivez n'oubliez pas de faire des sauvegardes de vos données sensibles.

Il peut être interessant dans certains cas pour ses systèmes de fichiers, ses partitions, d'utiliser une gestion de volumes logiques, en abrégé LVM. Le gros avantage du lvm est de clarifier l'usage de certains points de montage et, surtout, d'en assouplir la place disponible car il est alors facile si le besoin se fait sentir d'agréger au fur et à mesure des besoins d'autres partitions ou d'autres disques sans avoir à refaire ses partitions ou ses systèmes de fichiers.

Composition d'un lvm : Nous avons un ou des volumes physiques, c'est à dire une ou plusieurs partitions, portant un ou plusieurs groupes de volumes eux-mêmes contennant à leur tout un ou des volumes logiques.

Pour schématiser je vais
- créer un volume physique regroupant /dev/sdb3 et /dev/sdb4
- y créer un groupe de volumes appelé nav
- à l'interieur de nav créer les volumes logiques Routes et Gribs

Attention tout de même, dans l'interface graphique on va appliquer des changements sur les systèmes de fichiers et, dans le cas présent, pour certaines commandes celles-ci vont entrainer la perte des données lors des créations. L'interface graphique n'est ni plus ni moins dangereuse que la ligne de commandes, il faut juste savoir ce que l'on fait et faire des sauvegardes auparavant, tout comme avec des commandes dans un terminal.

Pour faire ces procédures en interface graphique je vais utiliser le programme system-config-lvm qui est un produit développé par Redhat mais disponible dans les dépôts officiels Debian, Ubuntu, et sur pratiquement toutes les distributions. Il nous faut auparavant installer les programmes system-config-lvm lvm2 dmeventd. Donc sur Debian et dérivées :

 ~ $ sudo aptitude install system-config-lvm lvm2 dmeventd

Il est aussi préférable de mettre le drapeau lvm sur les partitions qui seront utilisées. Pour cela on peut utiliser gparted soit en ligne de commande si on a installé parted et par la commande :

 ~ $ sudo parted -s /dev/sdb set 3 lvm on

pour le positionner sur /dev/sdb3. On aura alors comme situation de départ :


 ~ $ sudo parted /dev/sdb print

Disque /dev/sdb : 200GB

Table de partitions : gpt

Numéro  Début   Fin     Taille  Système de fichiers  Nom  Fanions
 1      1049kB  53,5MB  52,4MB  ext2                      bios_grub
 2      53,5MB  52,5GB  52,4GB  ext4
 3      52,5GB  106GB   53,2GB  ext4                      lvm (gestionnaire de volumes logiques)
 4      106GB   160GB   54,1GB  ext4              lvm (gestionnaire de volumes logiques)
 5      160GB   200GB   40,3GB  btrfs

On va maintenant créer le volume physique. Pour cela j'ai besoin une dernière fois de la ligne de commande pour regrouper /dev/sdb3 et /dev/sdb4. Je rappelle que j'aurais pu simplement configurer /dev/sdb3.

 ~ $ sudo pvcreate /dev/sdb3 /dev/sdb4
  Physical volume "/dev/sdb3" successfully created
  Physical volume "/dev/sdb4" successfully created

On peut maintenant utiliser l'interface graphique system-config-lvm alias Gestionnaire de Volumes Logiques

lvm1

On séléctionne /dev/sdb3 puis le bouton Créer un nouveau groupe de volumes. Sur la fenêtre on donne un nom au groupe, par exemple nav.

On séléctionne ensuite Vue logique puis le bouton Créer un nouveau Volume Logique

lvm3

Dans la nouvelle boite de dialogues on donne cette fois un nom au volume logique, par exemple Routes, puis la taille du volume, le système de fichiers, savoir s'il faut le monter tout de suite ou au redémarrage et le point de montage, qui sera créé s'il n'existe pas. Je choisis de le monter au redémarrage car je n'ai pas terminé avec les volumes pour le besoin de ce tuto. Ne pas oublier que l'on va créer un système de fichiers et les données présentes seront détruites.

lvm4

Je vais créer maintenant un autre volume, le volume gribs occupant le reste de la partition /dev/sdb3

lvm5

lvm6

lvm7

Imaginons maintenant que je n'ai plus de place sur mon volume Routes. Il m'est allors possible d'ajouter la partition /dev/sdb4 grace au bouton Ajouter au groupe de volumes existant :

lvm8

lvm9

lvm10

Je séléctionne ensuite Routes puis Éditer les propriétés On voit qu'il fait 15 Go et je dispose donc de 50 Go pour le porter à 65 Go. Je vais le porter à 30 Go pour me réserver de la place disponible.

lvm12

lvm13

Voilà, c'est terminé. Une partie de Routes se trouve sur la partition /dev/sdb3 et l'autre sur /dev/sdb4 mais en réalité ils forment un seul et même volume logique utilisable sur un seul point de montage.

lvm14

Si je regarde mon fichier fstab je vois qu'il a été modifié en conséquence.

~ $ grep "nav" /etc/fstab
/dev/nav/Routes        /media/cep/Routes    ext4    defaults    1 2
/dev/nav/Gribs        /media/cep/Gribs    ext4    defaults    1 2

Il me suffit donc soit de redémarrer soit de passer la commande mount -a pour que les volumes soient disponibles.
~ $ sudo mount -a -v

/dev/mapper/nav-Routes on /media/cep/Routes type ext4 (rw)
/dev/mapper/nav-Gribs on /media/cep/Gribs type ext4 (rw)

~ $ grep mapper /etc/mtab
/dev/mapper/nav-Routes /media/cep/Routes ext4 rw 0 0
/dev/mapper/nav-Gribs /media/cep/Gribs ext4 rw 0 0

Il me suffira ensuite de régler les droits sur les points de montage pour cep

 ~ $ sudo chown -R cep:cep /media/cep/Routes /media/cep/Gribs
<script type="text/javascript">eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%63%65%70%40%68%6f%72%6e%27%29')) ~ $

La commande lsblk résume la situation :
 ~ $ lsblk /dev/sdb
NAME                  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb                     8:16   0 186,3G  0 disk
├─sdb1                  8:17   0    50M  0 part
├─sdb2                  8:18   0  48,8G  0 part
├─sdb3                  8:19   0  49,6G  0 part
│ ├─nav-Routes (dm-0) 252:0    0    30G  0 lvm  /media/cep/Routes
│ └─nav-Gribs (dm-1)  252:1    0  34,6G  0 lvm  /media/cep/Gribs
├─sdb4                  8:20   0  50,4G  0 part
│ └─nav-Routes (dm-0) 252:0    0    30G  0 lvm  /media/cep/Routes
└─sdb5                  8:21   0  37,5G  0 part

cep

p.s. Pour plus de détails sur lvm voir l'article wikipédia
Pour l'équivalent en lignes de commandes voir le wiki Ubuntu
Pour d'autres renseignements sur system-config-lvm voir le site de Redhat

 

Astuce : quelques commandes

vendredi 12 décembre 2014 à 14:00

Comment compresser des répertoires à la chaîne ?

for f in * ; do tar -zcvf "$f.tar.gz" "$f" ; done

Comment éviter un crash de convert qui consomme trop de mémoire ?

La commande convert pour imagemagick permet de réaliser en ligne de commande des conversions puissantes, on peut par exemple convertir une série d'images simplement en un seul fichier pdf par convert *.jpg fichier.pdf. Or, cette commande consomme de nombreuses ressources et il arrive qu'on se retrouve avec un "processus arrêté". Il est possible de limiter la consommation en ajoutant à la commande -limit memory 1mb -limit map 1mb.

Comment connaître le nombre de paquets non-libres sous Linux ?

En utilisant la commande vrms. On obtient le résultat suivant :

Non-free packages installed on cyrille-desktop
gsfonts-other                       Additional fonts for the ghostscript interpreter
libfaac0                            AAC audio encoder (library)
p7zip-rar                           non-free rar module for p7zip
rar                                 Archiver for .rar files
unrar                               Unarchiver for .rar files (non-free version)
Contrib packages installed on cyrille-desktop
jdownloader                         Transitional package for jdownloader-installer
jdownloader-installer               download manager for one-click hosting sites
pepperflashplugin-nonfree           Pepper Flash Player - browser plugin
ttf-mscorefonts-installer           Installer for Microsoft TrueType core fonts
virtualbox                          x86 virtualization solution - base binaries
virtualbox-dkms                     x86 virtualization solution - kernel module sources fo
virtualbox-qt                       x86 virtualization solution - Qt based user interface
Contrib packages with status other than installed on cyrille-deskto
flashplugin-installer               ( dei)  Adobe Flash Player plugin installer
  5 non-free packages, 0.2% of 2590 installed packages.
  8 contrib packages, 0.3% of 2590 installed packages.

Comment connaître la liste de son matériel sous Linux ?