Un twittos m’ayant demandé les spécifications de ma PirateBox, je m’exécute très volontiers, et j’en profite pour en faire un genre de tuto. Ou un agrégat de tutos avec mes commentaires, plutôt (c’est cool, ça rime…).
Tout d’abord, il convient de préciser que je n’ai fait que me baser sur le travail de deux autre, très simplifié : le long et très détaillé tutoriel de talk2bruce sur Instructables visant à fabriquer une PirateBox qui fait des jolies lumières à partir d’un Raspberry Pi, et le tutoriel de Crocodudule pour utiliser une clé USB comme racine sur le RasPi.
Suite à l’upgrade de mon mediacenter sur un matériel plus performant, je me suis trouvé avec un Raspberry Pi en bon état de marche inutilisé. Cette situation déplorable ne pouvant durer, le destin m’a fait signe en faisant passer dans mon feed Twitter un tweet d’@instructables avec un lien vers le tutoriel cité plus haut.
Le reproche que je fais à la PirateBox présentée sur ce tutoriel, c’est son encombrement : elle est très classe posée sur une table, mais ce n’est pas le genre de chose qu’on peut jeter dans un sac à dos pour la sortir à la moindre occasion : trop imposante. Il se trouve que j’avais acheté il y a un an ou deux, dans une boutique à touristes se donnant des airs de shipshandler, un joli coffret de bois de rose cerclé de cuivre, que j’avais mis de coté en prévision du montage d’une future PirateBox. C’est le genre de choses que vous devriez trouver assez facilement, que ce soit dans des magasins de déco marine, ou dans les boutiques médiévales ou gothiques… Au final, ça donne ça :
Le matériel
Trève de bavardage ! La liste :
- 1 coffret classe de taille adaptée : mon coffret fait 14×22 cm, ce qui assez bien calibré ; et un petit cadenas en laiton pour parachever le look pirate ;
- 1 Raspberry Pi, modèle B ;
- 1 carte SD qui servira seulement à booter le RasPi : pas besoin d’une grande capacité, 1 Go suffit très largement ;
- 1 batterie portable de taille compatible avec celle du coffret ; j’ai personnellement choisie une Anker Astro3 12000mAh ;
- 1 clé USB de taille micro ; j’ai personnellement choisie une Kingston DataTraveller Micro 32Go ;
- 1 adaptateur WiFi sur port USB : le choix est délicat, le support sous Linux n’étant pas garanti. J’ai pris une clé Bolse BO-N1559 avec antenne amovible, dans l’idée de pouvoir utiliser une antenne plus puissante. Toutefois, ce matériel n’est pas supporté par le driver NetLink nl80211 de hostapd, ce qui m’a contraint à installer une version ancienne de hostapd. Je vous déconseille donc ce matériel.
J’insiste sur l’adaptateur USB WiFi : c’est certainement le seul matériel dont le choix est délicat. Basez-vous sur une liste de compatibilité de matériel pour trouver un adaptateur bien supporté par Linux. Celle-ci, par exemple, ou celle-là, ou celle-là encore.
La configuration
Une fois tout ce matériel réuni, il est temps d’installer et de configurer le RasPi. Première étape : télécharger l’une des distributions Linux supportant notre engin : http://www.raspberrypi.org/downloads/.
J’ai utilisé une distribution Raspbian, parce que je suis habitué à Debian et que j’y ai mes petites manies. Vous pouvez aussi utiliser ArchLinux : ça vous facilitera même la vie, puisque le développeur du script PirateBox a cessé de supporter RaspBian, au profit d’ArchLinux.
Je vous épargne le détail de l’installation du RasPi, et je vous renvoie à l’abondante documentation disponible sur le net. Pour faire l’installation initiale, vous aurez besoin d’un clavier USB, d’un écran avec son câble HDMI, d’un câble USB-microUSB pour alimenter le RasPi, d’un câble Ethernet RJ45 pour le brancher au réseau. Les deux ports USB du RasPi seront donc utilisés lors de l’installation par la clé et le clavier.
Une fois l’installation réalisée, n’oubliez pas de noter l’adresse IP du RasPi avec la commande suivante :
sudo ifconfig
Si aucun serveur DHCP n’est disponible sur votre réseau, il vous faut attribuer une adresse IP statique.
Déplacer la racine sur la clé USB
Ce qu’il est important de savoir, c’est que les cartes SD ne sont pas très fiables, et que leurs performances sont très moyennes. Les données se corrompent très souvent, et on passe son temps à réinstaller le bazar tous les deux mois, ce qui se révèle rapidement usant. La carte SD ne va donc nous servir qu’à booter le RasPi et monter la partition root sur une clé USB, qui sera bien plus fiable.
Plutôt que de réinventer l’eau chaude, je me suis basé sur un excellent tutoriel de Crocodudule, posté sur le forum de Next INpact.
Bootez le Raspberry Pi et connectez-vous en SSH avec les identifiants par défaut (si vous ne les avez pas changé lors de l’installation : login: pi, password: raspberry). Ensuite, appliquez les chapitres IV à VIII du tutoriel.
Installer le logiciel PirateBox
Le tutoriel de talk2bruce sur Instructables décrit très bien la manipulation (étape 10), aussi je me contente d’en proposer une traduction.
Toujours connecté en SSH sur le RasPi, entrez les commandes suivantes (notez que dans la liste de commandes suivantes, la commande wget peut se trouver sur deux lignes à cause du formatage du site dans votre navigateur – la commande doit être saisie sur une seule ligne : wget et l’URL entière entre guillemets).
sudo apt-get update
sudo apt-get -y install lighttpd
sudo /etc/init.d/lighttpd stop
sudo update-rc.d lighttpd remove
sudo apt-get -y install dnsmasq
sudo /etc/init.d/dnsmasq stop
sudo update-rc.d dnsmasq remove
sudo apt-get -y install hostapd
sudo /etc/init.d/hostapd stop
sudo update-rc.d hostapd remove
sudo apt-get -y install iw
wget "https://s3-us-west-1.amazonaws.com/talk2bruce/instructables/piratebox/piratebox-ws_current.tar.gz"
tar xzf piratebox-ws_current.tar.gz
cd piratebox
sudo mkdir -p /opt
sudo cp -rv piratebox /opt
sudo ln -s /opt/piratebox/init.d/piratebox /etc/init.d/piratebox
sudo update-rc.d piratebox defaults
sudo /etc/init.d/piratebox start
Il y aura un message d’erreur après la dernière commande, qui indique que l’interface réseau n’a pas pu être démarré : cette erreur se produit si l’adaptateur WiFi USB n’est pas branché. Cette erreur ne pose pas de problème à ce stade : la PirateBox fonctionnera correctement quand l’adaptateur WiFi sera connecté.
À propos du logiciel PirateBox : Le développeur du logiciel PirateBox a modifié son implémentation pour le Raspberry Pi pour supporter non plus Raspbian, mais ArchLinux. talk2bruce a préservé une copie du logiciel, et c’est ce qui est téléchargé avec la commande :
wget "https://s3-us-west-1.amazonaws.com/talk2bruce/instructables/piratebox/piratebox-ws_current.tar.gz"
Pour réference, le fichier original peut être téléchargé avec la commande :
wget "http://downloads.piratebox.de/piratebox-ws_current.tar.gz"
Le site officiel de PirateBox peut être trouvé là : http://piratebox.cc/
Tadaaaaaaa !
À ce stade, il ne vous reste plus qu’à installer la batterie, le RasPi et son antenne dans votre joli boitier. Si votre adaptateur WiFi comporte une antenne, il faudra ménager un passage pour celle-ci : un coup de perceuse avec une mèche de 5mm, ou bien quelques coups de lime. Je vous conseille de découper quelques morceaux de mousse (idéalement de la mousse EVA) pour caler le matériel dans le boîtier, éviter qu’il se balade dans tous les sens.