Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Ordinateurs embarqués (SBC) > La carte Raspberry PI > Installation et configuration de la R-Pi > Partager un répertoire de sa Raspberry Pi via NFS

Partager un répertoire de sa Raspberry Pi via NFS

dimanche 10 novembre 2013, par Frédéric P.

 Objectif

Lors du développement, il est parfois plus confortable d’utiliser des outils ’gourmands’ (Eclipse...) sur une machine de bureau, tout en voulant exécuter le résultat sur la Raspberry Pi.
Pour s’affranchir du cycle développement/transfert/test, une solution est de partager directement un répertoire entre les deux machines : la machine de développement accédera directement aux fichiers sur la Raspberry Pi, et il n’y a plus de transferts à faire.
Pour cela, on va utiliser le partage de fichiers NFS, la Raspberry Pi étant le serveur, et la machine de développement le client.

 Serveur NFS sur la Raspberry Pi

J’utilise la Raspbian, mais la procédure est similaire sur une autre distribution.
On installe le package nécessaire :
sudo apt-get install nfs-kernel-server
Puis on configure l’export : ici je veux exporter tout le répertoire /home, donc on ajoute à la fin de /etc/exports :
/home *(rw,all_squash,no_subtree_check,anonuid=1000,anongid=1000,sync)
Cela partage le répertoire /home à l’extérieur, et l’utilisateur anonyme entrant sera mappé sur l’UID 1000, c’est à dire celui de l’utilisateur ’pi’ (obtenu par "id pi"). Attention, c’est ouvert à tous les vents, pas de sécurité !
On doit ensuite relancer le serveur NFS pour prendre cela en compte.
A noter que celui-ci nécessite le service ’rpcbind’, qui curieusement n’est pas lancé par défaut au démarrage sur la Raspbian.
On corrige cela en changeant l’init pour les prochains reboots :
sudo update-rc.d rpcbind enable
Et on lance tout ce beau monde dès maintenant pour tester :

sudo service rpcbind restart
sudo service nfs-kernel-server restart

Voila, c’est tout pour la partie serveur.

 Client NFS sur la machine de développement

J’utilise une Ubuntu. Ici encore, à adapter avec votre gestionnaire de package préféré...
On installe le client NFS :
sudo apt-get install nfs-common
Puis on crée le point de montage :
sudo mkdir /mnt/raspberrypi_home
Et enfin on édite /etc/fstab pour ajouter le montage :
192.168.1.121:/home /mnt/raspberrypi_home nfs rw,nolock
(192.168.1.121 est l’IP de la Raspberry Pi chez moi).
On relance les montages pour rendre tout ça effectif :
sudo mount -a
Et voila !

ls /mnt/raspberrypi_home
-> pi   // le repertoire home de l'utilisateur 'pi'

 Exemple d’utilisation en dévelopement

Pour ma part, j’utilise ce setup pour développer avec Eclipse sur ma machine ’lourde’, tout en gardant l’ensemble du projet, ses fichiers et données, sur la Raspberry Pi : Eclipse charge simplement le projet directement à partir du répertoire NFS monté.
Lorsque la machine de bureau est là, cela permet un environnement plus confortable. Et comme tout reste sur la Pi, celle ci est néanmoins indépendante. On peut continuer à y faire des éditions/modifications/compilations natives à tout moment, notamment lorsque l’on est sur le terrain.

Vos commentaires

  • Le 11 novembre 2013 à 16:16, par Frédéric P. En réponse à : Partager un répertoire de sa Raspberry Pi via NFS

    Pour ton point 1/ : c’est une bonne question... Le développement sollicite en effet pas mal le disque, d’ou le risque d’"user" prématurément la carte SD. A chacun de voir si le gain de temps/confort balance le risque (très potentiel ?). Pour ma part, même pas peur :-)

    Et pour le point 2/ : oui, c’est ce que je suggérais : Eclipse sur la machine dev seulement. Lorsque l’on veut travailler en local sur la Pi, retour à la base : nano/vi et tuti quanti.

    Répondre à ce message

  • Le 11 novembre 2013 à 14:25, par Eric P. En réponse à : Partager un répertoire de sa Raspberry Pi via NFS

    Merci pour les détails de cette procédure, qui fournit une option de travail très confortable. En ce qui me concerne, je fonctionne avec rsync, mais il est vrai que je n’utilise pas Eclipse pour mes devs (juste vi et les plugins qui vont bien pour monter un petit IDE pas gourmand ;)

    Deux questions :

    1/ du fait qu’on travaille directement sur le file system de la RasPi, on va donc solliciter plus fortement sa carte SD en termes d’écritures. Est-ce judicieux ?

    2/ les IDE comme Eclipse stockant divers path dans les metadata de la workspace et des projets, ces informations ne sont valides que vues de la machine de dev. Elles ne le seront pas lorsqu’on voudra travailler en local avec le même outil. A moins que dans ce cas on ne se contente d’intervenir avec un simple éditeur. Est-ce bien dans cette optique que tu as écrit le dernier paragraphe de l’article ?

    Répondre à ce message

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document