Vous êtes sur la page 1sur 52

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base

Par X. HINAULT Octobre 2012 www.mon-club-elec.fr

L'objectif

Le Raspberry est un mini-PC aux caractristiques physiques impressionnantes : poids 45g, consommation 3W, petite taille. L'ide est donc de pouvoir
prserver ce potentiel de lgret et de simplicit sans avoir besoin d'ajouter de nombreux priphriques pour contrler le systme. Ajouter des
priphriques encombrants une petite plateforme lui fait perdre une bonne partie de son intrt !
L'idal serait donc de n'utiliser que l'indispensable savoir une alimentation 5V rgul et une connexion rseau sans fil (par wifi) pour pouvoir contrler le
RaspberryPi distance. C'est ce que nous allons faire ici : configurer le systme de base pour le rendre accessible distance et sans fil permettant de le
contrler depuis un poste fixe et lui prservant ainsi toutes ses caractristiques de lgret, petite taille et basse consommation.

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 1 / 52

Ce que l'on va faire ici : le systme final obtenu


La procdure dcrite ici permet d'obtenir un Raspberry Pi :

Caractristiques gnrales du systme


> qui dmarre en autologin la mise sous tension
> avec autoconnexion rseau wifi ou thernet la mise sous tension
> avec accs au bureau distant activ par serveur VNC qui dmarre automatiquement au dmarrage ce qui permet l'accs sans fil et distance au RaspberryPi
laiss en situation relle d'utilisation et librant les 2 ports USB disponibles pour des priphriques USB (webcam, cl wifi...) A noter que le simple copier/coller
de texte entre le poste fixe et le RaspberryPi est actif...
> en rsolution 800x600 modifiable si besoin
> bas sur le systme Raspbian (Base Debian + LXDE Openbox ) install initialement qui n'utilise que 40 Mo au dmarrage (mesure avec htop)

Fonctionnalits systmes utiles


> avec Capture vido par webcam active (et donc retour vido distant sans fil)
> Lecture de fichier son facile ( et donc dclenchement de sons, bruitages, etc...)
> synthse vocale installe
> enregistrement de son
> reconnaissance vocale en mode connect

Systme de dveloppement
> IDE Arduino 1.0.1 oprationnel et communication avec carte UNO oprationnelle et donc fonction de programmation distante sans fil et distance de la
carte Arduino + visualisation Terminal Srie + saisie de chane via le Terminal Srie, etc...
> IDE Processing 1.5.1 oprationnel avec communication srie oprationnelle avec la carte Arduino et donc :
> accs par ligne de commande programme aux fonctions de synthse vocale, etc... dclenchable depuis Arduino...
> fonctions de datalogging texte et image simplifi
> accs la reconnaissance vocale google partir d'une entre son de la webcam
> etc...

Fonctionnalits systmes avances :


> partage de fichier NFS oprationnel (et donc transfert de fichier sans fil par simple copier/coller depuis le poste fixe Gnu/Linux) Utile pour des fichiers sons, des
codes etc...
> +/- scurisation SSH
Remarque
Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 2 / 52

Vous pourriez trs bien vous contentez d'utiliser une image du systme tout prt comme celle que je mets en ligne. Mais je vous conseille trs fortement de
personnaliser vous-mme le systme de base, au moins une fois, pour comprendre la procdure et vous familiarisez avec Gnu/Linux.

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 3 / 52

Schma fonctionnel de synthse

Au final, on va obtenir le systme fonctionnel suivant, accessible sans fil et par wifi, programmable distance, ce qui ouvre pas mal de possibilits de
combinaisons utilisant tout ou partie des fonctionnalits disponibles tant au niveau du RaspberryPi que d'Arduino.

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 4 / 52

Principe d'installation en ligne de commande

On commence par lancer le RaspberryPi avec tous ses priphriques branchs, comme pour l'installation initiale. Connexion internet active obligatoire !

Pour la suite, nous allons utiliser l'installation des diffrents paquets logiciels utiles, en ligne de commande. Pour ce faire, il suffit d'ouvrir un Terminal, ce
qui se fait par un double clic sur l'icne LXTerminal prsente sur le bureau du RaspberryPi. On obtient alors une fentre avec une invite.

Ce qu'il faut au minimum savoir concernant le systme Gnu/Linux (Raspbian) install sur le RaspberryPi

Un systme Gnu/Linux repose sur l'assemblage de morceaux logiciels, que l'on va assembler entre eux la faon d'un lego. Pour assurer une cohrence
d'ensemble, ces paquets compils sont stocks sur des serveurs appels dpts . En fonction des besoins, on va ajouter des paquets au systme.
Sur le systme Gnu/Linux, un utilitaire va permettre de grer ces paquets : il s'agit d'apt qui dispose de plusieurs commandes notamment :

apt-get install nompaquet pour installer un paquet


D'autre part, un systme Gnu/Linux repose sur un systme de droits accords un utilisateur donn. L'utilisateur lambda ne peut pas faire tout ce qu'il veut
sur le systme. Seul un administrateur (ou root ) peut raliser toutes les oprations. Dans certaines situations, on donne un utilisateur donn les droits
root l'aide de la commande sudo qui sera place avant la commande excuter.

Enfin, certaines commandes de base sont connatre : cd pour se dplacer dans les rpertoires, ls pour lister un contenu de rpertoire, etc...

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 5 / 52

Pour faire simple...

Pour vous faire comprendre simplement ce qu'est la distribution Debian (et donc Raspian), imaginez un stock de 35000 pices de Lego diffrentes :

A partir de toutes ces pices logicielles , appeles paquets qui sont stocks dans les dpts, il est possible d'enrichir la demande le systme de base.
Une fois le systme de base install, vous disposez d'un systme fonctionnel mais limit l'essentiel. Ici, nous allons l'enrichir de faon lui ajouter des
fonctions utiles (accs distant, wifi, vido, synthse vocale, etc...) tout en gardant un systme de petite taille (on a que 8Go sur la carte SD et 256 Mo de
RAM... donc va falloir la jouer fine et ruse !). Suivez le guide... !

Nous allons ici amliorer la distribution Raspian de base pour l'adapter nos besoins...

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 6 / 52

Mise jour du systme

La premire chose faire va tre de mettre le systme jour avec la commande :

$ sudo apt-get update

Noter que peut prendre un certain temps. Une fois fait, on peut fermer le terminal.
Remarque
Pour l'installation de nouveaux paquets, en fait aller l'essentiel sur le RaspberryPi : tout paquet de plus de 10 Mo est viter... sauf cas particulier.

Sinon, on peut aussi installer le gestionnaire de mise jour avec la commande


$ sudo apt-get install update-manager

puis le lancer manuellement


$ sudo update-manager

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 7 / 52

Petites adaptations de base du systme install

Une chose simple faire et plutt utile en pratique est de mettre la barre des tches en partie suprieure. Pour ce faire, clic droit sur la barre des tches et
choisir l'option Paramtres su tableau de bord :

Dans la fentre qui s'ouvre, cliquer sur l'onglet taille et cocher position Haut puis fermer.

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 8 / 52

Le tableau de bord est dsormais en position haute ce qui sera plus pratique pour un contrle partir d'un petit cran notamment (netbook, tablette) :

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 9 / 52

Installation de quelques logiciels systme utiles


Htop, un moniteur systme lger

htop est un moniteur systme lger qui permet d'avoir des informations sur l'usage de la RAM, etc...

Installation :

$ sudo apt-get install htop

Utilisation :

$ htop

Rsultat :

Intressant pour avoir des informations sur le systme. Premires caractristiques du systme : moins de 50 Mo de RAM utiliss sur 184 Mo... Ok.

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 10 / 52

Geany, un diteur de texte et de code lger

Geany est un diteur de texte et de code lger. Utile pour modifier facilement les fichiers de configuration ultrieurement.

Installation :

$ sudo apt-get install geany

Utilisation :

$ geany

Rsultat :

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 11 / 52

Modifier la rsolution d'affichage par dfaut

Par dfaut, la rsolution de l'affichage utilis, notamment par connexion vido RCA, peut tre assez petite. Il devient alors intressant de fixer cette
rsolution manuellement. La rsolution de l'affichage se fait via un fichier de configuration (comme beaucoup de paramtrages sur un systme
Gnu/Linux). On va donc ouvrir ce fichier :

$ cd /boot/
$ sudo geany config.txt

dcommenter framebuffer_width et framebuffer_height et fixer les valeurs voulues. 800 x 600 c'est pas mal :

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 12 / 52

+/- xfce4-power-manager, un gestionnaire d'nergie

xfce4-power-manager est un gestionnaire d'nergie et de mise en veille lger.

Installation

$ sudo apt-get install xfce4-power-manager

Utilisation : pour les rglages :

$ xfce4-power-manager-settings

Rsultat : on pourra rgler au besoin le gestionnaire de faon ce que l'cran ne passe pas en veille, etc...

+/- activer le chargement au lancement via menu Prfrences > Paramtres de la session .
En fait, il n'est pas vident que ce gestionnaire soit vraiment utile sur le raspberryPi

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 13 / 52

Autres logiciels ?

Des logiciels habituels tels que chromium, firefox, etc... sont trop gourmands pour tre utiliss sur le RaspberryPi. Les essais sont peu concluants.

Une bonne source d'inspiration en fonction de ses propres besoins : http://harbhag.wordpress.com/2010/07/02/best-lightweight-applications-for-linux/

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 14 / 52

Rendre le systme accessible distance

Nous voil enfin au cur du sujet : rendre le systme accessible distance par accs au bureau distant par rseau ethernet ou sans fil.

Le RaspberryPi est un systme minimal et ne dispose que de 2 ports USB qu'il vaut mieux rserver pour des priphriques plutt que de les utiliser pour un
clavier et une souris... De plus, tout l'intrt du RaspberryPi est sa petite taille, sa lgret et il est dommage de perdre tous ces atouts en l'encombrant de
priphriques de contrle encombrants...C'est pourquoi maintenant que le systme est install et oprationnel, on va le rendre accessible distance sur un
rseau partir de n'importe quel autre systme (Windows, Linux, MacOsX et mme une tablette Android si on veut... )

Comme on va pouvoir ensuite travailler sur RaspberryPi... sans le toucher, via le rseau thernet ou sans fil... par accs au bureau distant. On va donc
commencer par installer un serveur VNC (VNC est une technologie ancienne mais robuste qui permet d'accder distance au bureau d'un PC) :

$ sudo apt-get install vino

Ensuite, on va configurer les prfrences du serveur vino en lanant l'utilitaire de paramtrage (pas en sudo +++) :

$ vino-preferences

Dans la fentre obtenue, autoriser visionnage et contrle du bureau distant, dsactiver la confirmation de l'accs et activer accs distant avec mot de passe et
mettre un mot de passe de son choix. Puis clic sur fermer

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 15 / 52

On peut prsent tester l'accs distant manuellement l'aide de la commande (pas sudo +++) :

$ /usr/lib/vino/vino-server

On peut alors tester la connexion depuis le poste fixe. Pour connatre l'adresse ip du RaspberryPi, saisir la commande ifconfig dans un Terminal et chercher
l'adresse de l'interface eth0 (de la forme inet adr : xxx.xxx.xxx.xxx) Utiliser cette adresse pour se connecter depuis le poste fixe.

Capture de la fentre VNC sur le poste fixe client : cool non ?

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 16 / 52

L'idal est bien sr de pouvoir lancer vino au dmarrage automatiquement. On va ouvrir nouveau un fichier de configuration.

$ sudo geany /etc/xdg/lxsession/LXDE/autostart

Puis ajouter la ligne @/usr/lib/vino/vino-server puis enregistrer et relancer le RaspberryPi (clic sur le bouton d'arrt dans la barre des tches) :

Normalement, au lancement suivant, vous pouvez vous connecter directement au RaspberryPi, une fois qu'il a redmarr !

A ce stade, vous pouvez dbrancher la souris, le clavier, l'cran (gardez-le connect quand mme pour le moment..) et travailler sur votre RaspberryPi
directement partir du poste fixe via le rseau thernet !
Ceci veut aussi dire que vous pouvez utiliser votre RaspberryPi sur un rseau de bloc CPL dans votre maison : vous dans votre bureau, le RaspberryPi la cave ou
au grenier. Et vous pouvez en mettre plusieurs sur le rseau si vous arrivez en avoir... !

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 17 / 52

Installation de fonctionnalits systme utiles

A prsent nous allons poursuivre l'installation de fonctionnalits utiles.

Vido par webcam : logiciel de capture Guvcview

Pour pouvoir utiliser facilement une webcam sur le RaspberryPi, je vous conseille d'utiliser guvcview, un utilitaire lger et efficace.
Installation :

$ sudo apt-get install guvcview

Utilisation :
connecter prsent une webcam sur la port USB. La seule contrainte est l'utilisation d'une webcam qui sera reconnue out-of-the-box par la
distribution Raspbian utilise. Moi j'ai utilis sans problme une Hercules Dualpix Exchange, une Logitech C270, une Eye PS3... D'une manire
gnrale, toute webcam compatible avec le driver uvc devrait fonctionner. Voir la liste complte ici : http://www.ideasonboard.org/uvc/
Il est prfrable de lancer guvcview en ligne de commande car les paramtres par dfaut risque de faire bugguer la capture vido (eh oui, on est sur un
petit systme...) :

$ guvcview -s 320x240

Sinon, on peut lancer depuis le menu Applications > Son et vido > guvcview mais les paramtres par dfaut ne sont pas supports trs longtemps par le
RaspberryPi (648x480@25fps...)
On obtient 1 fentre de rglage et une fentre vido : aller dans l'onglet Video et fichier et rgler la vitesse 10 fps voir 5fps et la taille 320x240

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 18 / 52

Cocher galement la case afficher si vous souhaitez que le dbit d'image s'affiche dans le titre de la fentre vido. Pratique.

Il suffit ensuite de limiter la taille de la fentre VNC sur le poste fixe pour n'avoir que l'image vido de visible. Mettez la fentre au premier plan et le tour
est jou ! Vous pouvez mme surveiller vos poissons rouges si vous voulez !

Capture de la fentre VNC sur le poste fixe. La taille est rduite celle de la vido.

Conseils techniques :

Plus vous utiliserez une rsolution petite et plus la fluidit sera au rendez-vous
Vous pouvez galement capturer une image ou une vido tout moment avec l'interface guvcview

Pour connatre la bande passant utilise par la connexion VNC, utiliser l'utilitaire cbm
A ce stade vous disposez d'un systme permettant l'accs sans fil au retour vido en provenance du Raspberry Pi !
Mettez la bte sur un robot mobile ou dans la nacelle d'un petit ballon sonde : vous ferez des trucs dj trs sympa !

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 19 / 52

Matriel ncessaire pour les fonctions utilisant la sortie audio

Le Raspberry dispose d'une sortie audio jack 3,5mm. Pour pouvoir utiliser les sons avec le RaspberryPi, la solution la plus simple consiste utiliser une
paire d'enceintes de PC. Choisir un modle avec ampli intgr et alimentation ddie et si possible miniature. On pourrait aussi utiliser un simple casque
audio.

Noter qu'en situation embarque , sur un robot ou autre, il pourra tre intressant d'utiliser une petite carte ampli avec un simple haut-parleur.

Exemple avec kit Velleman ampli 2x5W MK190 (dispo chez Gotronic rf 01359)

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 20 / 52

Synthse vocale
Introduction

Avec la synthse vocale, on rentre dans un domaine qui fait toujours un peu rver : un robot, une application qui parle, lui donne un petit ct humain...
Il est possible de le faire avec des cartes d'extension ddies, notamment avec Arduino, mais les cots sont tout de mme assez levs, et en tout cas
beaucoup plus qu'un simple RaspberryPi...

La bonne nouvelle, c'est que le systme Raspbian que nous avons install sur RaspberryPi est capable de raliser la synthse vocale partir de
chanes de caractres : nous allons donc ajouter de ce pas cette possibilit notre systme embarqu.

Une fois que la synthse vocale sera installe sur le raspberryPi, il sera ensuite possible de dclencher la synthse vocale partir d'Arduino comme nous le verrons
ultrieurement. Vous pourrez ainsi annoncer la distance d'un obstacle, dire quelque chose l'appui sur un bouton poussoir, etc...
Non, non, vous ne rvez pas !

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 21 / 52

Solution 1 : synthtiseur vocal espeak et son interface graphique gespeaker

Ce synthtiseur de voix permet la synthse de voix partir de chaine texte. Il offre plusieurs vois masculines et feminines. Son un peu mtallique
cependant. Il existe galement une interface graphique appele gespeaker.

Installation :

$ sudo apt-get install libportaudio0


$ sudo apt-get install espeak
$ sudo apt-get install gespeaker

Utilisation :
soit lancement en interface graphique depuis le menu Application > Son et Vido > Gespeaker. On obtient une interface permettant de gnrer de la
synthse vocale.

soit lancement en ligne de commande :


$ espeak -v fr -s 140 'lecture de texte avec ispik'

Note : lors de l'installation initiale de espeak sur le raspberryPi, il semblait que les voix n'taient pas installes au bon endroit.

Pour les trouver : find / -name 'espeak-data' -type d

Ensuite se placer dans le rpertoire o elles se trouvent : cd /usr/lib/arm-linux-gnueabihf/espeak-data

puis crer rpertoire de destination attendu : sudo mkdir /usr/share/espeak-data

puis copier le contenu : sudo cp * /usr/share/espeak-data/ -r

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 22 / 52

Solution 2 : synthtiseur vocal picotts

picottts est un synthtiseur vocal qui donne une bonne qualit de voix fminine. C'est la voix d'Android. A priori pas dispo avec raspbian... Ceci tant, il
devrait tre possible de compiler les sources... suivre..

Une documentation utile est disponible ici : http://forums.debian.net/viewtopic.php?f=16&t=38976


Tout d'abor ajouter le dpt des sources :

$ sudo geany /etc/apt/sources.list

Coller les 2 lignes :


deb http://archive.raspbian.org/raspbian wheezy main contrib non-free rpi
deb-src http://archive.raspbian.org/raspbian wheezy main contrib non-free rpi

Ensuite, mettre jour avec :


$ sudo apt-get update

$
$
$
$
$
$
$
$
$
$

Ensuite :

apt-get update
apt-get install fakeroot
apt-get build-dep libttspico-utils
cd
mkdir my_build/
cd /my_build/
apt-get source libttspico-utils
ls
cd svox-1.0-<version>/
dpkg-buildpackage -rfakeroot -us -uc

Ensuite c'est parti pour un moment... compter un bon 1/4h d'heure... On est quand mme en train de faire une compil' sur le raspberryPi lui-mme...
excusez du peu...
Puis ensuite, on peut faire l'install
$ cd
$ cd my_build
$ ls

On obtient plusieurs fichiers *.deb :


libttspico0..armhf.deb
libttspico-data..all.deb
Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 23 / 52

libttspico-dev...armhf.deb
libttspico-utils...armhf.deb
Il faut installer dans l'ordre pico0, pico-data et pico-utils (le pico-dev n'est pas indispensable) avec :
sudo dpkg -i <packagename>_<version>_<architecture>.deb
ce qui donne :
$ sudo dpkg -i libttspico0..armhf.deb
$ sudo dpkg -i libttspico-data..all.deb
$ sudo dpkg -i libttspico-utils...armhf.deb

Ensuite, on peut tester la synthse vocale Pico sur notre systme RaspberryPi :
$ pico2wave -l fr-FR -w test.wav Salut les amis. Je mappelle pico
$ aplay test.wav

Et bingo, marche !! Pas belle la vie ? Donc la synthse vocale pico est oprationnelle sur le RapberryPi... beaucoup mieux que la voix mtallique de Espeak,
mme si c'est dj sympa quand mme.

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 24 / 52

Lecture de fichiers sons : lecteur polyvalent mplayer

Pour lire des fichiers sons, notamment des bruitages de toutes sortes, il est ncessaire d'utiliser un lecteur de fichier son. Un lecteur polyvalent est le lecteur
mplayer, aussi bien pour la vido que les fichiers audio.

Installation

$ sudo apt-get install mplayer


$ sudo apt-get install mencoder

Utilisation : en ligne de commande, mplayer suivi du nom du fichier lire :

$ mplayer mes_sons/r2d2.mp3

$
$
$
$

Vous trouverez dans l'archive suivante plusieurs sons utiles tester : http://www.mon-club-elec.fr/mes_downloads/mes_sons.tar.gz

cd
mkdir Telechargements
cd Telechargements/
wget http://www.mon-club-elec.fr/mes_downloads/mes_sons.tar.gz

puis ouvrir le gestionnaire de fichier et extraire l'archive. Amusez-vous bien !

Remarque
A ce stade, vous disposez d'une possibilit trs intressante : il vous suffit de tlcharger des fichiers de sons de bruitages (r2d2, alarmes, etc...) et, sans besoin de
les convertir, vous pouvez les lire directement sur le raspberryPi.
Vous pouvez ainsi ajouter toutes sortes d'effets sonores vos applications en quelques minutes !
Vous pouvez galement lire des fichiers audio de votre choix.

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 25 / 52

Fonctions utilisant l'entre audio

Note technique : RaspberryPi ne dispose pas d'une entre audio.... mais les webcams intgrent le plus souvent une entre audio. Donc, il est tout fait
possible de disposer d'une entre son sur le RaspberryPi

Pour grer les entres audio sur le aspberryPi, le plus simple est d'utiliser alsamixer , utilitaire qui s'appelle en ligne de commande

$ alsamixer

On obtient une interface sommaire qui permet de grer les niveaux, entres, sorties l'aide des touches de fonctions :

Note : j'ai tent d'installer PulseAudio qui est une bonne interface pour grer les entres sorties/audio mais cela a pos des problmes (plus de son...)

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 26 / 52

Enregistrement sons

Plusieurs solutions possibles : rec, arecord, utiliser selon ses besoins. Le plus simple est d'utiliser arecord dj install.

Installation : installer le paquet alsa-utils qui contient arecord. Dj install par dfaut.

$ sudo apt-get install alsa-utils

Utilisation : $ arecord <params>

$ arecord

Information : $ man arecord

-l donne la liste des priphriques

-t type de fichier parmi voc, wav, raw,au

- r dbit en Hz

- d dure de l'enregistrement en secondes

-V activation vumtre = ne marche pas..

-c nombre de canaux 1 par dfaut

-f cd (16 bit little endian, 44100, stereo)

Exemples :

$ arecord -d 5 test.wav
$ arecord -d 5 -r 16000 -f cd test.wav # enregistre 5 secondes en qualit CD 16000hz dans fichier test.wav

PS : utilisation de -f cd limite les craquements de dbut et fin d'enregistrement...


Note technique : par dfaut, mon micro de webcam n'tait dtect. J'ai cr le fichier .asoundrc avec la commande
$ geany .asoundrc
et copier coller le code suivant qui indique d'utiliser le micro de la webcam hw:1,0 pour la capture par dfaut :
pcm.!default {
type asym
playback.pcm {
type plug
slave.pcm "hw:0,0"
}
capture.pcm {
type plug
slave.pcm "hw:1,0"
}
}

Plus de dtails ici : http://wiki.audacityteam.org/wiki/USB_mic_on_Linux

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 27 / 52

Conversion de fichier son

Un utilitaire polyvalent : sox

Installation : le paquet sox

$ sudo apt-get install sox

Utilisation :

$ sox test.wav fichier.flac rate 16k # convertit le fichier *.wav en fichier *.flac avec chantillonage 16000hz

Information : $ man sox

Reconnaissance vocale

En combinant l'enregistrement de son et la conversion, il est possible sur le RaspberryPi d'utiliser la reconnaissance vocale de Google sous rserve d'tre
connect internet (via le routeur) !

Il suffit d'enregistrer un fichier son puis de l'envoyer vers le serveur Google pour obtenir la chane texte correspondante. A suivre...

$ arecord -d 5 -r 16000 -f cd test.wav


$ sox test.wav fichier.flac rate 16k
$ wget -q -U "Mozilla/5.0" --post-file fichier.flac --header="Content-Type: audio/x-flac; rate=16000" -O "http://www.google.com/speech-api/v1/recognize?lang=fr&client=chromium" | sed 's/^.*\[{.*:"\(.*\)",".*$/\1/'

Excuter les commandes suivantes en parlant aprs la premire : la 3me commande doit renvoyer le texte correspondant ce que vous avez dit !

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 28 / 52

Installation de Python
Pour dveloppement Python

Procdure sous Linux (voir ici : http://python-gtk-3-tutorial.readthedocs.org/en/latest/install.html) :


> installer libgtk-3-0 (dj par dfaut sur Raspbian et sous Xubuntu 12.04 LTS)

> installer python3 (dj par dfaut sur Raspbian et sous Xubuntu 12.04 LTS)
> installer gobject-introspection (pas install par dfaut sur Raspbian et sous Xubuntu 12.04 LTS)

Ajouter cependant :
python-serial

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 29 / 52

Installer le systme de dveloppement embarqu (Arduino, Processing)

A prsent, nous allons aborder ce que je considre comme l'une des choses les plus intressantes en ce qui concerne le RaspberryPi :
l'installation de l'IDE Arduino qui va donc permettre de contrler, programmer Arduino distance et sans fil !!
l'installation de l'interface Processing qui va permettre de contrler le systme assez facilement partir d'Arduino !!

Il va devenir ainsi possible :


d'utiliser la puissance de calcul du raspberryPi pour positionner des moteurs (traqueur solaire par exemple),
d'enregistrer des donnes sous forme de fichier texte facile rutiliser et mme les visualiser par simple accs au bureau du RaspberryPi,
de capturer des images, de la vido, des sons partir d'vnements Arduino ou intervalles rguliers
de dclencher des sons, de la synthse vocale partir d'Arduino,
etc...

Rien que la programmation distance de l'Arduino vaut largement le prix du raspberryPi : des modules plus de 60 existent pour obtenir cette fonction
mais sans le retour vido, ni la synthse vocale, ni la lecture des fichiers sons, etc...
Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 30 / 52

Installation et test de l'IDE Arduino

L'IDE Arduino est un logiciel qui permet de programmer et d'interagir avec Arduino, une petite carte lectronique facile programmer.

On commence l'installation en installant l'openjdk car l'IDE Arduino est un programme java ( dure un moment.... !) :

$ sudo apt-get install openjdk-7-jdk

Ensuite on installe tout simplement le paquet arduino contenu dans les dpts et qui intgre la version 1.0.1 de l'IDE

$ sudo apt-get install arduino

Ainsi sont installs les paquets suivants (dpendances):


g++ (le compilateur GNU C++)
gcc-avr (compilateur C pour les microcontrleurs AVR)
avr-libc
avrdude
binutils-avr
libftdi1
libjna-java
librxtx-java
Utilisation :
soit en ligne de commande : $ arduino
soit, le plus simple, partir du menu applications > programmation > Arduino
Fignolages : la taille de la fentre Arduino peut tre trop grande par dfaut. On va donc configurer la taille de la fentre Arduino au dmarrage :
en ligne de commande, saisir :
$ geany .arduino/preferences.txt

modifier les valeurs des lignes :


editor.window.height.default=400
editor.window.height.min=200
enregistrer et relancer Arduino.
Remarque
A ce stade, vous disposez d'un systme permettant la programmation distante de l'Arduino et en tout cas le contrle distant de l'excution d'un programme
Arduino, l'interaction potentielle en direct avec Arduino partir du Terminal srie, etc... Une solution trs efficace pour dvelopper en situation, sur un robot par
exemple. Quelques limites cependant : la compilation est plus lente... et il ne faut pas ouvrir trop de fentres la fois..
Pour de gros programmes, il sera donc prfrable de programmer l'arduino partir du poste fixe pour ensuite interagir avec l'Arduino partir du raspberyPi.
Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 31 / 52

Capture de la fentre VNC sur le poste fixe : l'IDE Arduino est bel et bien excut sur le raspberryPi et est contrl distance. RAM utilise : 90Mo

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 32 / 52

Installation des librairies Arduino utiles

Une fois Arduino install, il est intressant d'installer des librairies Arduino utiles : notamment, j'aime bien installer mes librairies personnelles Utils, Cdbot,
etc...

Comme Arduino a t install automatiquement, o se trouve le rpertoire Arduino ? La documentation du package Debian correspondant donne
l'information : /usr/share/arduino/libraries
La procdure consiste alors enregistrer les librairies dans le rpertoire de son choix, transitoirement puis ensuite excuter la commande :

$ sudo cp chemin/de/la/lib/nomlib

/usr/share/arduino/libraries -r

Le -r c'est pour copier le rpertoire entier...

Et c'est bon normalement. Relancer Arduino : la librairie doit tre prsente dans le menu Sketch > import library

Installation et test de Processing


Installation

Processing est un environnement de dveloppement vritable couteau suisse permettant notamment l'interfaage avec la carte Arduino mais galement
l'utilisation de librairies permettant de raliser des interfaces ou encore de contrler le systme Gnu/Linux en ligne de commande programme.

L'installation se fait en plusieurs tapes :


L'installation ncessite l'openjdk et le paquet librxtx-java dj installs prcdemment
Tlcharger l'archive de Processing 1.5.1 (version Linux 32 bits) sur le site de Processing : http://processing.org/download/ l'aide du navigateur
install sur votre RaspberryPi
ensuite ouvrir le dossier de l'archive et l'extraire
Une fois fait, nous allons utiliser la bonne librairie java.
Effacer ou renommer le sous rpertoire Processing-1.5.1/java
Remplacer ce rpertoire par un lien symbolique vers le java du systme :

ln -s /usr/lib/jvm/java-7-openjdk-armhf java

Enfin, nous allons galement remplacer la librairie Serial utilise par dfaut pour une version compatible ARM :
supprimer ou renommer le fichier Processing-1.5.1/modes/java/libraries/serial/library/linux32/librxtxSerial.so
Supprimer et renommer le fichier Processing-1.5.1/modes/java/libraries/serial/library/RXTXcomm.jar
A prsent, copier la bonne version dans le mme sous-rpertoire avec la commande
$ sudo cp /usr/share/java/RXTXcomm.jar Telechargements/Processing-1.5.1/modes/java/libraries/serial/library/

Voil, c'est termin ! Ouf... !

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 33 / 52

Pour info, j'ai suivi la procdure trouve ici : http://scruss.com/blog/2012/08/12/controlling-an-arduino-from-raspberry-pi-using-processing/

Fignolages : comme pour Arduino, il faut rduire la taille de la fentre utilise par dfaut. On va donc configurer la taille de la fentre Processing au
dmarrage :
en ligne de commande, saisir :

$ geany .processing/preferences.txt

modifier les valeurs des lignes :


editor.window.height.default=400
editor.window.height.min=200

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 34 / 52

Lancement de Processing

Pour lancer Processing, ouvrir un terminal et saisir la commande ( adapter en fonction de l'endroit o vous avez mis Processing ) :

$ cd Telechargements/processing-1 .5.1/
$ ./processing

Vous pouvez ignorer le message indiquant que l'on n'utilise pas pas Sun java
Ensuite lancer l'un ou l'autre exemple, notamment le cube RGB : Le fameux cube RGB 3D marche... mais c'est vraiment trs lent.... CPU fond, etc...

A priori pour de petites interfaces graphiques avec Control P5 (voir ci-aprs) doit tre bon ou bien un programme Processing pour gestion du systme
depuis Arduino mais gure plus...

Capture de la fentre VNC sur le poste fixe : l'exemple RGB lanc occupe 116Mo de RAM.
L'effet monocoeur du raspberryPi se fait ici clairement ressentir puisque l'on obtient un mouvement 1 image que toutes les 2 ou 3 secondes !

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 35 / 52

Installation et test de librairies Processing utiles

Au vu des capacits rduites du raspberryPi lors de l'excution du cube RGB, exemple ftiche permettant de se faire une bonne ide de la puissance de
calcul, il est illusoire de vouloir installer des choses trop complexes. On se limitera l'essentiel potentiellement utile.

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 36 / 52

La librairie pour interfaces graphiques : ControlP5


L'interface Processing est surtout oriente graphisme et traitement d'image : elle ne comporte pas d'outils standards pour crer des interfaces GUI. Plusieurs
librairies existent pour cela, l'une d'entre elle tant controlP5.
>Tlcharger l'archive ici : http://www.sojamo.de/libraries/controlP5/ : choisir l'archive Processing 1.5.1 si on utilise cette version
> Crer un dossier controlP5 et extraire dedans l'archive
> Copier coller le dossier controlP5 dans le rpertoire ~/Tlchargements/Processing-1-5/modes/java/librairies
> Relancer Processing : la librairie doit tre prsente dans le menu Sketch > Import Library
> Lancer un programme de test depuis le menu File > Examples > controlP5

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 37 / 52

La librairie UDP hypermdia

Cette librairie est utile pour raliser des communications rseau en UDP (protocole allg par rapport TCP). Un complment utile la librairie rseau
Processing

Dispo ici : http://ubaa.net/shared/processing/udp/


A installer dans mode/java/librairies

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 38 / 52

La librairie GLAP-Box

Librairie perso qui permet de faire communiquer simplement Arduino avec Processing. Cette librairie permet de dclencher / contrler les applications
systme simplement l'aide de chanes de caractres en provenance d'Arduino.

Dispo ici : http://www.mon-club-elec.fr/pmwiki_reference_lib_glapbox/pmwiki.php?n=Main.HomePage


A installer dans mode/java/librairies

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 39 / 52

Librairie Processing pour la capture vido : Gstreamer ?


=> revoir ne marche pas...

Tester quand mme Gstreamer au moins pour capture vido...


intressant pour datalogging d'images
La librairie GSVideo implmente dans Processing le framework GStreamer qui dispose de toutes les fonctions utiles pour la lecture vido. A la diffrence de
QuickTime utilis par dfaut, Gstreamer est opensource et libre. Il est prvu de Gstreamer soit utilis par dfaut partir de Processing 2.0, mais en attendant, il est
ncessaire d'installer la librairie GSVideo
Voir le site officiel de Gstreamer : http://gstreamer.freedesktop.org/
Pr-requis : paquets ncessaires

Les paquets de la librairie gstreamer doivent tre installs :


Voici la liste des paquets installs sur une Xubuntu 12.04 qui marche avec gsvideo
ii gir1.2-gstreamer-0.10
ii gstreamer0.10-alsa
ii gstreamer0.10-ffmpeg
ii gstreamer0.10-fluendo-mp3
ii gstreamer0.10-gnomevfs
ii gstreamer0.10-gnonlin
ii gstreamer0.10-nice
ii gstreamer0.10-pulseaudio
ii gstreamer0.10-tools
ii gstreamer0.10-x

0.10.36-1ubuntu1
0.10.36-1ubuntu0.1
0.10.13-1
0.10.15.debian-1ubuntu1
0.10.36-1ubuntu0.1
0.10.17-2
0.1.1-2ubuntu1
0.10.31-1ubuntu1
0.10.36-1ubuntu1
0.10.36-1ubuntu0.1

Description: GObject introspection data for the GStreamer library


GStreamer plugin for ALSA
FFmpeg plugin for GStreamer
Fluendo mp3 decoder GStrmer plugin
GStreamer plugin for GnomeVFS
non-linear editing module for GStreamer
ICE library (GStreamer plugin)
GStreamer plugin for PulseAudio
Tools for use with GStreamer
GStreamer plugins for X11 and Pango

Attention c'est gstreamer0.10-plugins- pour la suite...


ii gstreamer0.10-plugins-bad

0.10.22.3-2ubuntu2.1

GStreamer plugins from the "bad" set

ii gstreamer0.10-plugins-base

0.10.36-1ubuntu0.1

GStreamer plugins from the "base" set

ii gstreamer0.10-plugins-base-apps

0.10.36-1ubuntu0.1

GStreamer helper programs from the "base" set

ii gstreamer0.10-plugins-good

0.10.31-1ubuntu1

GStreamer plugins from the "good" set

ii gstreamer0.10-plugins-ugly

0.10.18.3-1ubuntu1

GStreamer plugins from the "ugly" set

Attention c'est libgstreamer pour la suite...

ii libgstreamer-perl

0.16-1build1

ii libgstreamer-plugins-bad0.10-0

0.10.22.3-2ubuntu2.1

GStreamer shared libraries from the "bad" set

ii libgstreamer-plugins-base0.10-0

0.10.36-1ubuntu0.1

GStreamer libraries from the "base" set

ii libgstreamer-plugins-base0.10-dev
ii libgstreamer0.10-0
ii libgstreamer0.10-dev

0.10.36-1ubuntu0.1
0.10.36-1ubuntu1
0.10.36-1ubuntu1

Perl interface to the GStreamer media processing framework

GStreamer development files for libraries from the "base" set


Core GStreamer libraries and elements
GStreamer core development files

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 40 / 52

Gstreamer fonctionne avec cette liste sous Madbox 12,04 LTS

Installer la librairie GSVideo


> Rcuprer l'archive : http://sourceforge.net/projects/gsvideo/files/gsvideo/
Prendre la version 1.5.1 si on utilise Processing 1.5.1
> Extraire de copier/coller le rpertoire GSVideo dans le rpertoire ~/Tlchargements/Processing-1-5/modes/java/librairies
> Relancer Processing : la librairie doit tre prsente dans le menu Sketch > Import Library
Programme de test
> Aller dans le menu Files > Examples et choisir un exemple,
> par exemple, Movie > Speed, ce qui donne :

Voil, GSVideo est install : avec une webcam, vous pourrez faire prsent de la capture de flux video avec la GLAP-Box dans Processing !
Infos utiles
> Le site officiel pour les dernires infos : http://gsvideo.sourceforge.net/
> PS : Andres Colubri, l'auteur de la librairie, fait partie de l'quipe Processing 2.0 et est en charge de l'implmentation venir dans la future version Processing
2.0.
> Bon savoir : Gstreamer est trs intressant galement pour la lecture de flux vido sur un rseau, grce la gestion de pipeline Gstreamer
(enchanement d'instructions de traitement). On pourra ainsi lire un flux de camra IP directement dans Processing ou encore streamer un flux webcam sur le
rseau local depuis Processing !
> L'utilisation des pipeline avec Gstreamer est un sujet trs intressant en soi !

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 41 / 52

Opengl :
installer libegl...
La vision par ordinateur
priori, on oublie avec le raspBerryPi...

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 42 / 52

Configuration du wifi avec wicd : pour rendre le raspberyPi accessible sans fil
Installation de wicd

A prsent, voyons comment activer le wifi afin de rendre le systme accessible sans fil. Plutt que d'utiliser l'utilitaire fourni par dfaut avec Raspbian pour
la configuration du wifi, je suggre d'utiliser wicd, une interface indpendante de l'environnement graphique, lgre et stable. Une limite cependant : ne
permet pas VPN (mais lancement manuel reste possible) , ni double connexion wifi et ethernet simultane d'aprs mes essais... en fait si... !
Connecter une cl wifi au RaspberryPi (la libration des ports USB vous permet normalement de le faire...)
Ouvrir un terminal (via l'accs au bureau distant, vous travaillez sur le RaspberryPi depuis votre poste fixe!) :
$ sudo apt-get install wicd

Etre sr que l'utilisateur courant est bien ajout au groupe udev (ici l'utilisateur par dfaut est pi) :
$ sudo adduser pi netdev

Lancement et paramtrage de l'interface wicd

Lancer l'interface wicd de configuration :

$ wicd-client

Pour ne pas perdre l'accs thernet au RaspberryPi lors du lancement du wifi, il faut pouvoir utiliser simultanment la connexion wifi et ethernet avec wicd.
Pour cela, il faut aller dans les prfrences (petite flche vers le bas dans le coin droite) , et laisser vide le champ interface filaire qui contient eth0 par
dfaut. Valider.

Ensuite, configurer la ou les interfaces wifi que vous voulez utiliser (bien utiliser WEP si codage WEP...) (dans proprits)

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 43 / 52

cocher se connecter automatiquement pour que la connexion se fasse automatiquement la dtection du rseau

tester la connexion par appui sur connecter

Noter que le dmarrage automatique de wicd-client se fera au prochain dmarrage.


Dbrancher le cble rseau thernet et rebooter : vous devez normalement pouvoir accder au RaspberryPi par wifi (attention : l'adresse IP peut avoir
chang et un scan rseau avec l'utilitaire nmap ct poste fixe permettra de la connatre).
Remarque : par dfaut pour que l'autoconnexion se fasse en wifi : il faut que le rseau thernet soit dconnect ! Sinon, c'est le rseau filaire qui est utilis.
Normalement, si vous avez activ la connexion simultane comme indiqu prcdemment, ceci ne doit pas poser de problme.
Besoin de plus d'infos sur wicd ? Voir ici notamment : http://www.linuxcore.fr/2012/03/wicd-internet/
A prsent, vous disposez galement du contrle sans fil de votre RaspberryPi directement partir du poste fixe via le rseau wifi !
Cool non ?

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 44 / 52

Fonctions avances systmes


Installation du partage de fichier NFS : le raspberryPi en serveur NFS

J'ai dj dcrit la procdure sous Ubuntu en dtail ici : Mise en place d'un partage de fichier NFS via rseau wifi entre le PC embarqu et le PC fixe,

Installation des paquets ncessaire

On commence donc par installer les paquets ncessaire pour transformer le RaspberryPi en serveur NFS : nfs-kernel-server et nfs-common (est install en
mme temps que nfs-kernel-server). Ce qui donne en ligne de commande :

$ sudo apt-get install nfs-kernel-server nfs-common

Paramtrage du dossier partag

On va partager ici le rpertoire /home/pi/ du RaspberryPi (serveur). On commence par diter du fichier /etc/exports

$ sudo geany /etc/exports

Ajouter dans le fichier exports (pour pouvoir partager sur des rseaux ayant comme racine 192.168.0, .1 ou .2 - adapter votre situation) :

# pour avoir tous les droits root :


/home/pi 192.168.0.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check) # autorise accs par client 192.168.0.x en lecture / criture
/home/pi 192.168.1.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check) # autorise accs par client 192.168.1.x en lecture / criture
/home/pi 192.168.2.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check) # autorise accs par client 192.168.2.x en lecture / criture

Une fois que fait, pour que les modifs soient prises en compte, on fait :

$ sudo exportfs -a

ou mieux

$ sudo exportfs -ra

avec
-a : exporte tous les rpertoires
-r : r-exporte tous les rpertoires

Configuration autorisations dans hosts.deny

On ouvre hosts.deny et on interdit tout par dfaut

$ sudo geany /etc/hosts.deny

Ajouter les lignes

#pour partage NFS


# Tout interdire sur portmap, nfsd et mountd
# les autoriser par hosts.allow
portmap:ALL

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 45 / 52

lockd : ALL
mountd:ALL
rquotad : ALL
statd : ALL
#nfsd:ALL

Configuration autorisations dans hosts.allow

On ouvre hosts.allow et on autorise les adresses voulues :

$ sudo geany /etc/hosts.allow

On ajoute les lignes :

#partage NFS
#Autoriser ces clients se connecter avec services portmap, nfsd, moundt
portmap:ALL
lockd:192.168.
mountd:192.168.
rquotad:192.168.
statd:192.168.
#nfsd:192.168.

Activation de rcpbind

Lors du lancement du serveur NFS, il y a un warning avec portmapper... sur le raspberryPi. En fait, il semble que le service rpcbind ne fonctionne pas par
dfaut sur le raspberryPi. Voir ici : http://www.raspbian.org/RaspbianFAQ On the current version of Raspbian, rpcbind (part of the portmap package) does
not start by default. This is presumably done to control memory consumption on our small systems. However, it isn't very big and we need it to make an
NFS mount.
Pour l'activer manuellement :

$ sudo service rpcbind start

Pour l'activer au dmarrage, ce qui est prfrable :

$ sudo update-rc.d rpcbind enable

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 46 / 52

Redmarrage serveur NFS

On relance NFS

$ sudo /etc/init.d/nfs-kernel-server reload

ou mieux, on redmarre le service :

$ sudo /etc/init.d/nfs-kernel-server restart

+/- Activation ipv6

Au dmarrage du serveur NFS, on a un message de warning indiquant que nfsd ne supporte pas ipv6. A priori, n'a pas d'impact sur ipv4 donc doit
marcher. Ceci tant, pour rsoudre :

soit on l'installe en manuel avec :

$ sudo modprobe ipv6

soit on charge ipv6 au dmarrage avec :

$ sudo geany /etc/modules

Ajouter la ligne

ipv6

Vrification

Pour vrifier que tout est ok, on peut faire :

$ rpcinfo -p

Rcuprer adresse ip du RaspberryPi

Une fois fait, il suffit de monter le raspberryPi sur le poste client pour pouvoir changer des copier coller des fichiers. On commence par retrouver l'adresse
ip du raspberryPi avec la commande

$ ifconfig

Accder au partage de fichier depuis le client Gnu/Linux

Attention : la suite de la procdure se passe sur le poste fixe qui accde au Raspberry Pi

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 47 / 52

Installation des paquets utiles

Installer les paquets : nfs-common (et nfs-server tant qu'on y est... ? )

$ sudo apt-get install

Cration d'un point de montage sur le client

Dans une console, on cre un rpertoire pour le montage :

$ sudo mkdir /mnt/nfs

Montage du serveur (le RaspberryPi) sur le client (le poste fixe)

On utilise ici l'adresse du serveur : 192.168.1.x C'est l'adresse obtenue par ifconfig sur le raspberryPi On peut galement obtenir cette adresse par nmap.
$ sudo mount -t nfs 192.168.1.x:/home/pi/ /mnt/nfs

ou
$ sudo mount -t nfs -o rw 192.168.1.x:/home/pi/ /mnt/nfs

Voil, si pas de message d'erreur, c'est bon... Ne pas oublier le / avant le nom du chemin de montage aprs l'adresse...
A noter, pour automatiser le montage NFS depuis le poste client, on pourra utiliser un sccript comme par exemple :
#!/bin/bash
# script montage NFS
# par XH - Aout 2011
echo "--- script de Montage NFS ct client ---" $disque
read -p "Quelle est l'adresse du serveur NFS (192.168.x.x ou quiv.) ? " adresse #saisie de l'adresse
echo "L'adresse IP du serveur NFS monter est :" $adresse
read -p "Quel est le rpertoire du /home du serveur NFS monter sur le client (/xavier ou /glapbox/Bureau ou quiv) ?" repertoire #saisie du rpertoire
echo "Le rpertoire du /home du serveur NFS monter sur le client est :" $repertoire
echo "Le script va monter "$adresse":/home"$repertoire"/ sur /mnt/nfs"
read -p "<OK>" # pour attendre entre pour continuer
sudo mount -t nfs -o rw $adresse:/home$repertoire/ /mnt/nfs

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 48 / 52

echo "Opration termine"


read -p "<OK>" # pour attendre entre pour sortir
exit 0 ;

Test

+/- Saisir dans la console pour voir si le montage nfs est bien en place :

$ mount | grep nfs

ce qui donne

nfsd on /proc/fs/nfsd type nfsd (rw)


192.168.1.3:/home/xavier/ on /mnt/nfs type nfs (rw,addr=192.168.1.3)

Aller dans le rpertoire /mnt/nfs : on doit voir le contenu de RaspberryPi ! On peut ds lors raliser des changes de fichiers entre la RaspberryPi
et le PC de contrle en toute simplicit !

On pourra galement crer un lanceur sur le bureau du client vers le rpertoire /mnt/nfs pour accder facilement au contenu du rpertoire. A noter que pour
ouvrir un dossier partir d'un lanceur, il faudra faire :
sous Ubuntu : nautilus /rep

sous xubuntu : thunar /rep

Bon savoir

Si on veut dmonter le partage NFS du ct client, dans un terminal on fait :


$ sudo umount /mnt/nfs

Scurisation SSH
A venir...
Notamment exemple de connexion VNC

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 49 / 52

Serveur LAMP
A venir...

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 50 / 52

Cloner le systme obtenu


HowTo avec Clonezilla

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 51 / 52

Le systme final obtenu


La procdure que nous avons suivi nous a permis successivement de mettre en place :
l'accs au bureau du raspberryPi distance par rseau thernet ou wifi

la synthse vocale
la lecture de fichier sons et donc de bruitages sonores

la capture de sons et donc potentiellement la reconnaissance vocale par serveur internet


le logiciel Arduino et donc les fonctions de programmation et de contrle distance d'Arduino

le logiciel Processing et donc les fonctions d'interaction entre Arduino et le systme embarqu
l'activation et la configuration du wifi permettant d'utiliser le raspberryPi distance et sans fil partir de n'importe quel type de plateforme

le partage de fichier entre le poste fixe sous Gnu/Linux et le raspberryPi par simple copier/coller

Au final, on obtient une solution polyvalente de dveloppement.

Ds lors que l'on n'aura pas besoin d'utiliser des fonctions de capture et d'analyse d'image, le RaspberryPi, vu son prix, pourra rendre de fiers services !

Le RaspberryPi : Personnalisation du systme Gnu/Linux (Raspbian) de base - Par X. HINAULT Octobre 2012 www.mon-club-elec.fr p. 52 / 52

Vous aimerez peut-être aussi