Macberry Pi : configurer un Raspberry Pi et l'utiliser comme serveur Time Machine

Antoine Collin |

Le Raspberry Pi. Ce petit ordinateur annoncé en 2011 a été vendu à plus d'un million d'exemplaires depuis le début de sa commercialisation il y a un an. Nous vous l'avions présenté en juin 2012, nous vous proposons aujourd'hui une série d'articles qui va vous permettre d'intégrer facilement un Raspberry Pi dans un environnement Apple.






Installer et configurer un Raspberry Pi



La première chose à faire est d'acheter un Raspberry Pi. Nous avons besoin de la version B de l'appareil, qui est doté d'une prise RJ45 et vaut environ 35 €.



En plus de la carte elle-même, il nous faudra une carte SD pour le système (nous vous recommandons une carte SDHC Class 6 de 4 Go), une alimentation USB capable de fournir 700 mA au minimum (un chargeur d'iPhone est parfait pour cet usage), un câble microUSB et un câble RJ45 pour relier le Raspberry Pi au réseau. Dans notre cas, nous avons aussi investi dans un boîtier, mais un simple morceau de carton suffit amplement.





Pour l'installation initiale, il faudra aussi un clavier USB, un câble HDMI et un écran compatible, n'importe quel téléviseur LCD devrait suffire. Un Mac avec un lecteur de cartes SD est aussi indispensable pour l'installation.



L'installation initiale



Nos explications ont été écrites pour des personnes qui n'ont jamais utilisé de distribution Linux et n'importe quel néophyte devrait pouvoir mettre en place un serveur Time Machine. La première chose à faire est d'aller télécharger une image du système du Raspberry Pi. Nous avons utilisé la distribution Raspbian qui est proposée par la fondation à l'origine du projet. Il s'agit d'une variante de la distribution GNU/Linux Debian optimisée pour le processeur ARM du Raspberry Pi.



Une fois l'image téléchargée, nous allons utiliser un petit outil qui va installer le système sur la carte SD. Attention, cette dernière sera totalement effacée. Téléchargez RPi-sd card builder, un utilitaire qui va préparer la carte. Le fonctionnement est simple : vous choisissez l'image téléchargée précédemment, vous choisissez la carte SD et vous attendez. Avec une carte de 4 Go Class 6, l'installation prend moins de 5 minutes.





Maintenant, il faut placer la carte dans l'emplacement SD du Raspberry Pi, brancher un clavier USB, le câble HDMI et la prise microUSB. Après quelques secondes, le système devrait démarrer et vous allez arriver sur l'écran de configuration du Raspberry Pi.



La première chose à faire est d'utiliser tout l'espace de la carte SD, en utilisant le menu expand_rootfs. Il faut ensuite changer le mot de passe de l'utilisateur dans le menu change_pass, configurer le clavier dans configure_keyboard et activer l'accès SSH dans ssh.







Pour les amateurs, il est aussi possible d'overclocker le Raspberry Pi, mais nous n'en avons pas besoin dans notre cas.



Petite subtilité ici, il existe en fait plusieurs modèles de Raspberry Pi : la version A et la version B originales disposent de 256 Mo de RAM, partagée entre le système et le contrôleur vidéo, alors que la version B actuelle dispose de 512 Mo de RAM. Si vous avez un Raspberry Pi récent doté de 512 Mo de RAM, il n'y a rien à faire ici, alors que si vous avez un modèle doté de 256 Mo de RAM, il faut se rendre dans memory_split et définir une mémoire vidéo de 16 Mo. Comme nous n'allons pas utiliser la partie vidéo du Raspberry Pi, nous allons allouer le maximum de mémoire au système.



sudo reboot


Une fois le Raspberry Pi redémarré, il faut vous connecter avec le nom d'utilisateur pi et votre mot de passe. Nous allons ensuite taper une commande qui va nous permettre d'obtenir l'adresse IP du Raspberry Pi.



ifconfig


Une fois l'adresse obtenue, vous pouvez ranger le clavier et l'écran, la suite se fera sur votre Mac.



Détection du Raspberry Pi



Nous allons maintenant profiter d'une technologie intégrée à Mac OS X depuis Jaguar, Bonjour. Cette technologie permet à un périphérique de s'annoncer directement sur le réseau, ce qui va permettre d'éviter d'utiliser l'adresse IP du Raspberry Pi.



Première chose à faire, lancer le Terminal sur votre Mac et taper la commande suivante, en utilisant l'adresse IP obtenue précédemment.



ssh pi@adresse_ip


Entrez votre mot de passe et tapez ensuite la commande suivante. Elle va installer Avahi, une implémentation libre du protocole Bonjour, et les programmes nécessaires à son fonctionnement.



 sudo apt-get update 


sudo apt-get install libdb5.1-dev db5.1-util libgcrypt11-dev avahi-daemon libavahi-client-dev


Une fois Avahi installé, la commande suivante va permettre de lancer le programme à chaque démarrage.



sudo update-rc.d avahi-daemon defaults


Maintenant, nous allons utiliser Avahi pour que le Raspberry Pi soit accessible sur une adresse compréhensible et pas sur son adresse IP. La commande va créer un service qui va permettre au Raspberry Pi de s'annoncer pour un accès SSH. Pour ceux qui ne connaissent pas Nano, il suffit d'utiliser les commandes ^O pour sauver et ^X pour quitter.



sudo nano /etc/avahi/services/ssh.service


Dans ce fichier, il faut copier les données suivantes :



<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h SSH</name>
<service>
<type>_ssh._tcp</type>
<port>22</port>
</service>
</service-group>


On va aussi en profiter pour changer le nom utilisé pour identifier le Raspberry Pi sur le réseau. Par défaut, il utilise le hostname raspberrypi, nous allons utiliser MacberryPi.



sudo nano /etc/hosts


Dans ce fichier, il faut changer la valeur qui suit 127.0.1.1 par le nom voulu.



sudo nano /etc/hostname


Ici, il faut mettre en début de fichier le nom voulu.



Une fois que c'est fait, il faut redémarrer et vérifier que le Raspberry Pi est accessible. La commande suivante permet de redémarrer le périphérique.



sudo reboot


Si tout s'est bien passé, l'accès SSH va être fermé et vous pourrez ensuite vous connecter après environ une minute avec la commande qui suit.



ssh pi@MacberryPi.local


Le Raspbbery Pi est donc accessible en SSH via l'adresse MacberryPi.local, ce qui évite de devoir déterminer l'adresse IP de l'appareil : c'est le Raspberry Pi lui-même qui va effectuer la correspondance et vous simplifier la vie.



Nous pourrions éteindre le Raspberry Pi avec la commande suivante, mais nous allons plutôt nous attaquer à le transformer en serveur Time Machine.



sudo halt




Un Raspberry Pi comme serveur de fichiers et serveur Time Machine



S'il est possible de partager le contenu de la carte SD du Raspberry Pi, nous vous conseillons tout de même d'utiliser une clef USB ou un disque dur dédié à cet usage, en fonction de vos besoins. Pour créer un espace accessible depuis tous vos appareils, une simple clef USB suffira, pour effectuer des sauvegardes Time Machine, un disque dur est évidemment requis, pour des questions de capacité.



MacBerry Pi



Le Raspberry Pi, spécialement dans ses premières versions, souffre d'un souci : des ports USB incapables de fournir les 500 mA de la norme. Concrètement, les disques durs 2,5" alimentés par le bus USB ne fonctionnent pas directement sur le Raspberry Pi, il est nécessaire d'utiliser une source d'alimentation externe comme un chargeur de smartphone ou un hub USB alimenté. Le meilleur choix reste bien évidemment un modèle 3,5", qui dispose de sa propre alimentation. Ne vous encombrez pas d'un modèle USB 3.0 : le Raspberry Pi se limite à l'USB 2.0.



La gestion du stockage



Avant d'installer les logiciels nécessaires, nous allons d'abord nous occuper du stockage. Il existe trois solutions : utiliser un disque dur formaté dans un système de fichiers adapté à Linux (ext4), utiliser le système de fichier HFS+ d'Apple ou utiliser un disque dur formaté en NTFS (via NTFS3G, comme sur Mac). Nous n'allons aborder que la seconde solution.



Branchez le disque dur au Raspberry Pi et connectez-vous, via une commande dans le Terminal. Pour simplifier les choses, nous supposons que vous avez formaté le disque dur en HFS+ depuis un Mac.



ssh pi@MacberryPi.local


Maintenant, nous allons installer les outils permettant de lire et écrire sur une partition en HFS+ depuis Linux.



sudo apt-get install hfsplus hfsutils hfsprogs


Une fois l'installation effectuée, nous allons monter la partition et modifier le système pour qu'elle soit chargée à chaque démarrage. Attention, le système cherchera le disque dur à chaque démarrage, ce qui peut poser des soucis s'il est débranché, en arrêtant le processus de démarrage. Dans ce cas, le plus simple est d'éteindre le Raspberry Pi et de le rallumer en branchant le disque dur.



sudo blkid


Cette commande va lister les périphériques et vous devriez obtenir un résultat de ce type. Il faut copier la valeur UUID, que nous allons utiliser pour identifier le disque dur.



/dev/sda1: UUID="2b629aaa-74c8-348b-b78a-6c11e2b9ca90" LABEL="Time Machine" TYPE="hfsplus"


Maintenant, créez un point de montage dans le dossier media, que nous allons appeler ici timemachine.



sudo mkdir /media/timemachine


Dans ce dossier, nous allons monter automatiquement notre disque dur, en allant modifier le fichier /etc/fstab. Attention, alors que la commande blkid donne l'UUID entre guillemets, il ne faut pas en mettre dans le fichier fstab. Il faut donc ajouter la seconde ligne de code à la fin du fichier fstab pour monter automatiquement le disque dur.



sudo nano /etc/fstab
UUID=votre_UUID /media/timemachine hfsplus rw,force,exec,auto,users 0 3


Maintenant, nous allons redémarrer le Raspberry Pi, nous reconnecter et vérifier que le disque dur est bien monté. Si tout se passe bien, les données déjà présentes sur le disque dur devraient apparaître.



sudo reboot
ssh pi@MacberryPi.local
cd /media/timemachine
ls


L'installation de Netatalk



Apple, pour le partage de fichiers, utilise son propre protocole, l'AFP. Une implémentation libre de ce dernier existe, elle est d'ailleurs utilisée dans beaucoup de NAS : il s'agit de Netatalk. Pour une prise en charge fonctionnelle de Time Machine sous Lion et Mountain Lion, il est nécessaire d'installer une version récente du logiciel, nous allons donc télécharger et compiler la dernière version de Netatalk (la 3.0.2 à l'heure où nous écrivons ces lignes). Le processus peut être long, le Raspberry Pi, rappelons-le, n'est pas un foudre de guerre.



cd ~/
wget http://sourceforge.net/projects/netatalk/files/netatalk/3.0.2/netatalk-3.0.2.tar.gz
tar xvzf netatalk-3.0.2.tar.gz
cd netatalk-3.0.2
./configure --with-init-style=debian --with-zeroconf
make
sudo make install


Une fois Netatalk compilé et installé, nous allons lancer le logiciel automatiquement au démarrage, avec la commande suivante.



sudo update-rc.d netatalk defaults


Partager un dossier via AFP



Nous allons maintenant partager un dossier du disque dur via AFP sur le réseau. Nous allons donc créer un utilisateur dédié (pour plus de sécurité) et un dossier, auquel nous allons lier le compte. C'est ce compte utilisateur qu'il faudra utiliser (avec son mot de passe associé) pour accéder au partage à travers le Finder.



cd /media/timemachine
mkdir AFP
sudo adduser afp
sudo chown afp /media/timemachine/AFP


La seconde étape consiste à configurer Netatalk pour que le dossier soit partagé.



sudo nano /usr/local/etc/afp.conf


Nous allons modifier le fichier pour qu'il ressemble à celui qui suit. La variable mimic model indique que le Raspberry Pi se fera ici passer pour un boîtier Time Capsule.



[Global]
vol preset = default_for_all_vol
log file = /var/log/netatalk.log
uam list = uams_dhx.so,uams_dhx2_passwd.so
save password = yes
mimic model = TimeCapsule

[default_for_all_vol]
cnid scheme = dbd


À la fin de notre fichier, nous allons ensuite ajouter notre partage. Vous devez entrer le nom du partage entre crochets et ajouter le chemin. Vous pouvez insérer plusieurs utilisateurs en modifiant la variable valid users et en en ajoutant d'autres : il suffit de les séparer par une espace. Puis il faut sauver (^O) et quitter (^X).



[Mon Premier partage AFP]
path = /media/timemachine/AFP
valid users = afp


Maintenant, vous pouvez redémarrer Netatalk et attendre que le partage apparaisse dans le Finder.



/etc/init.d/netatalk restart




Effectuer des sauvegardes Time Machine



Pour effectuer des sauvegardes Time Machine en réseau, le fonctionnement est totalement identique. Il faut créer un utilisateur (pour plus de sûreté), choisir ce que l'on veut partager et l'activer dans Netatalk.



cd /media/timemachine
mkdir timemachine
sudo adduser timemachine
sudo chown afp /media/timemachine/timemachine
sudo nano /usr/local/etc/afp.conf


La seule différence vient d'une variable à ajouter : time machine = yes.



[Mon Time Machine]
path = /media/USBstorage/timemachine
valid users = timemachine
time machine = yes


Comme auparavant, il faut redémarrer Netatalk pour que le partage apparaisse.



/etc/init.d/netatalk restart


Une fois que c'est fait, OS X devrait vous proposer votre Raspberry Pi dans la liste des disques durs disponibles pour une sauvegarde Time Machine.





Un point sur les performances



Avant de terminer, un point sur les performances. Le Raspberry Pi n'est pas un appareil très rapide, et son sous-système USB est lent : l'Ethernet et les prises USB 2.0 se partagent le même bus en interne et les performances sont donc limitées. Dans le meilleur des cas, vous atteindrez donc les limites de l'Ethernet à 100 mégabits/s de l'appareil (12,5 Mo/s) mais vous serez parfois en dessous, notamment dès qu'il faudra traiter des petits fichiers. Pour information, les performances sont généralement supérieures quand le disque dur est formaté en ext4 et nettement inférieures quand le disque dur est formaté en NTFS. Dans notre cas, le côté pratique du HFS+ est toutefois plus avantageux que le faible gain dû au passage en ext4.



Le Raspberry Pi n'est donc pas totalement viable pour effectuer des sauvegardes Time Machine, spécialement si vous avez beaucoup de données à sauver. Mais pour sauvegarder une machine comme un MacBook Air doté d'un SSD de 64 Go, les performances sont suffisantes. Il faut simplement bien prendre en compte que la sauvegarde initiale sera bien plus lente qu'avec un véritable boîtier Time Capsule ou avec un disque dur en local.



Dans un prochain article, nous verrons comment utiliser le Raspberry Pi pour partager une imprimante via AirPrint, pour l'utiliser avec un iPad, un iPhone ou même un Mac OS X récent.

avatar andr3 | 
Génial. Merci MacG :-)
avatar Anonyme (non vérifié) | 
Je l'utilise avec xbmc; une pure merveille. Connexion à distance SSH. A conseiller a tout les bidouilleurs
avatar os-app92 | 
Si vous avez aussi un article pour cross compiler le kernel et la distro raspbian sous OS X avec les outils dispo sur macports, je prends. Le défi est lancé.
avatar obewan | 
Si on a pas une carte SD de class 6 est-ce que ça fonctionne aussi? Quelle est la différence entre une SD class 6 et une normale? Merci
avatar Armas | 
Super tuto, macgé, merci beaucoup et felicitations.
avatar wildtiger | 
pour connecter un disque dur ou une imprimante en réseau, ne suffit-il pas de brancher ces équipements à la box ?
avatar poco | 
Un grand merci à MacGé pour cet article. Ce mini PC est une pure merveille et devrrait être dans chaque salle de classe du primaire au secondaire. A ce prix là, faut dire que çà ouvre la voie à toutes sortes de bidouilles de la plus sérieuse à la plus farfelue. Ce qui est fascinant c'est de le faire interagir avec le monde extérieur via des moteurs, servos, µp etc... J'attends mon RPI et je suis en pleine recherche d'un instaleur de "Gambas BASIC" sur Mac afin de m'entrainer à la programmation sur mon Mac que j'ai plus souvent sous la main. Cà ressemble à du RealBasic mais çà compile pour ARM. Si quelqu'un a un lead je suis preneur, sinon je mettrai une distrib Linux sous Virtual Box. Vivement l'article suivant...
avatar golgoth | 
Merci pour cet article et ceux à venir! Vive la bidouille!
avatar Link1993 | 
Geniale ! Merci ! Je contais en faire exactement ca mais en le faisant voire comme etant un xserve, pour faire classe (mdr) ! (Plus serveur vpn, malheureusement il n'y a que le pptp, pas de l2tp mais tant pis) Trop hate de le recevoir, je l'ai commander la semaine derniere, mais j'ai vraiment envie de le recevoir ! :D
avatar barzi | 
Marier le Raspi et le Mac, c'est un vrai bonheur! Je me réjouis de lire la suite des tutos! Merci Macgé! On y bosse aussi ici: http://www.swissraspi.ch
avatar Karamazow | 
Excellent article, du bon boulot !
avatar PA5CAL | 
On achète, éventuellement on télécharge l'OS sur une carte SD, on branche, c'est chouette... ? En fait, non ! Le Raspberry Pi souffre malheureusement de quelques défauts de conception récurrents, qui font que son bon fonctionnement reste assez aléatoire. En effet, l'alimentation électrique constitue un problème pour bon nombre d'utilisateurs, car l'usage d'un chargeur 5V USB 0,7A (ou plus) et d'un bon câble micro USB standard, pourtant censés convenir, peut aboutir à un dysfonctionnement des périphériques USB branchés sur le RasPi. Il est ainsi difficile de commencer la configuration, de se loguer puis de lancer le système avec un clavier qui semble souffrir à la fois d'Alzheimer et de Parkinson. Et l'emploi d'un hub USB avec alimentation externe ne règle souvent rien à l'affaire. Un rapide reverse engineering tendrait à démontrer que les concepteurs ont quelque peu sous-estimé la voracité de l'appareil, et ont installé une protection un peu trop sensible. En l'état, le système (RasPi B 512) est donc plutôt à conseiller aux chanceux et aux virtuoses du fer à souder.
avatar pmloikju (non vérifié) | 
Super MacG !
avatar misterbrown | 
Tres bon article, apres je cherche encore l'utilité d'un Time Machine étant habitué aux sauvegardes "à l'ancienne". A quand un Raspberry Pi Apple Tv, ou AirPort Express?
avatar Cowboy Funcky | 
l'etat du clavier Apple !!! j'ai rarement vu plus sale....
avatar Tom.P | 
@PA5CAL C'est bien la première fois que je lis ce genre de chose bien que je n'ai pas non plus chercher les défaut du RPi en soit mais plutôt les dysfonctionnement OS :) @misterbrown Déjà possible (via XBMC et autre), comme dit dans les com', mais il faut aller chercher des tuto's ailleurs =)
avatar LaurentR | 
Merci pour cet article :)
avatar PA5CAL | 
@Tom.P: ce genre de problème est rapporté un peu partout sur les forums. Même le site officiel fait état des difficultés d'alimentation, et évoque différentes pistes pour les contourner. Chez certains, aucun problème n'est à déplorer. Chez d'autres, l'appareil reste inutilisable tel quel, malgré l'emploi du matériel préconisé et de marque réputée, et ne parvient à fonctionner qu'après une modification du circuit (je laisse de côté les situations où des composants ont été endommagés). Entre les deux, il y a les cas où les problèmes n'apparaissent qu'à l'occasion du branchement de périphériques supplémentaires (webcam, dongle, ...) ne nécessitant normalement pas de hub alimenté.
avatar Malcolmm | 
Merci , j'ai beaucoup aimé .
avatar Johnny B. Good | 
@misterbrown : L'automatisation. C'est la force d'un bon système de sauvegarde. Le meilleur système de sauvegarde, c'est celui auquel on n'a pas besoin de penser.
avatar kaos | 
ça doit etre bien pour un petit serveur web qui prend pas de place ;)
avatar Lateralus | 
Woooa un tuto Debian-GNU-Linux sur MacG !!! “First they ignore you, then they laugh at you, then they fight you, then you win." (Mahatma Gandhi)
avatar pwetpwet | 
Excellent article !!!! Vivement les prochaines :)
avatar Popal | 
super tuto ! Merci

Pages

CONNEXION UTILISATEUR