PirateBoxZero¶
Présentation¶
L'atelier consiste à faire une piratebox sur un RapsberryPi. La pirateBox 0 est une version légère de la pirate box.
Ce Rapsberry pi va vous permettre de partager des fichiers tels que de la musique, des films et de tchater, anonymement et en réseau local.
Ce tutoriel est basé sur cette source https://piratebox.cc/raspberry_pi:diy.
Ça permet de découvrir :
- la soudure électronique (lien référentiel compétence)
- les lignes de commandes (compétence administration système Unix)
- (Culture technologique : communs, linux, unix, logiciel libre)
- Réseau
- CAO : freecad, inkscape, création de boîte
- FAO : découpe laser, impression 3D
- automatisme, programmation (capteur bouton, actionneur led)
- Rapsberry pi zéro W.
- une (carte MICRO SD ) d’une capacité minimum de 16 go.
- câble d'alimentation micro-USB.
- mdf 3mm
- PMMA 3mm
- 1 LED 3mm rouge
- 1 bouton
- 1 résistance 100Ohm 1/4 de watt
- 4 vis + 8 écrous m3 plastique
Installation¶
Une fois que vous avez tout le matériel, bah il faut se lancer. Dans un premier temps rendez vous sur https://piratebox.cc, une fois sur le site, appuyer sur "how Tos" qui veut dire (comment faire) en français. Puis RapsberryPi car on va le rappeler c’est une pirate box sur base RapsberryPi.
Télécharger l'image¶
Il suffira de descendre pour arriver sur installation et télécharger le torrent pour Rapsberry pi 1 et zero.
Ça doit ressembler à ça "piratebox_rpi_1.1.4-27-02-2018.img.zip".
Une fois le téléchargement terminé, il faudra décompresser l'image si elle est en .zip comme ici, (avec un double-clic sur l'archive si puis copier l'image iso sur la carte sd pour que le Rapsberry pi puisse booter dessus).
Décompresser l'archive¶
Ici l'image est arrivée sous forme d'archive .zip, mais ça aurait aussi bien pu arriver sous la forme d'un .targz ou autre. Dans tous les cas le fichier en .iso que l'on veut est dans cette archive. Pour décompresser sous nos systèmes debian, c'est très difficile : clic droit sur le fichier, et un clic sur "extraire ici". Après cet effort surhumain vous pouvez aller boire un café, vous l'avez bien mérité.
Copier l'image iso¶
Branchez la carte sd à votre ordi, puis déterminez son point de montage en utilisant l'utilitaire disk. C'est un petit logiciel très sympa qui vous montre tous les volumes de mémoire montés sur votre machine comme les disques durs mais aussi la carte sd sur laquelle on veut écrire. Quand vous cliquez sur cette dernière dans "disks" (ou disques" en français), il vous affiche son point de montage (c'est un chemin qui commence par /dev/...). C'est très important de pas se tromper de point de montage car la commande "dd" que l'on va utiliser pour écrire l'image iso sur la carte sd est très puissant, et si on se trompe de volume pour écrire, on peut par exemple effacer le disque dur de l'ordinateur sur lequel on travaille ou un autre volume avec des données importantes etc...
Note : si un jour il vous arrive d'effacer par erreur un disque ou des données importantes. Ne paniquez pas, tant que vous n'avez rien réécrit sur les secteurs libérés lors de l'effacement, c'est encore retrouvable. Donc, éteignez la machine sur laquelle c'est arrivé et suivez les tutoriels de récupération de données avec photorec.
Maintenant les choses sérieuses, la ligne de commande pour copier votre image iso sur la carte sd doit ressembler à ça
dd if=./Téléchargement/piratebox_rpi_1.1.4-27-02-2018.img of=/dev/sdb bs=1M
explications :
- "dd" c'est la commade
- "if=" c'est l'origine, l'adresse de l'image iso sur votre machine et que vous voulez copier sur la carte sd
- "of=" c'est la destination, le point de montage de votre carte sd, mais sans le chiffre à la fin, dans sdb1 par exemple, le "1" indique une partition sur le volume, hors nous on veut le volume entier.
- "bs=" c'est la taille des secteurs que l'on veut écrire, 1M ou 4M marchent généralement assez bien sur les cartes sd, c'est pas trop lent.
Quand vous avez lancé la commande, le curseur doit clignoter quelques minutes avant de vous annoncer le résultat, en général il vous dit que ça c'est bien passé, la quantité de données copiées et le temps qu'il a mis.
Lancer la piratebox¶
Vous pouvez maintenant mettre la carte sd dans le raspberryPi0 et le brancher en usb sur le port "PWR IN". Patientez quelques minutes et vous devez voir apparaître un réseau wifi "pirateBox". Connectez vous-y en wifi.
!!!Attention!!! : si on est plusieurs à le faire en même temps alors toutes les piratesbox s'afficheront avec le même ssid, et on ne saura plus à laquelle on se connecte. Il faudra donc les démarrer une par une afin de reconfigurer les ssid.
Première connexion¶
D'abord se connecter au wifi de la piratebox avec une machine qui possède un shell.
Pour configurer notre piratebox, on va s'y connecter en ssh avec la commande suivante :
ssh alarm@alarmpi
ou si ça ne marche pas :
ssh alarm@192.168.77.1
En suite, il vous demande le mot de passe, par défaut c'est : alarm :
configuration¶
Changer le ssid¶
Il faut éditer le fichier hostapd.conf. Pour savoir ou il se trouve :
find / -name "hostapd.conf"
Dans le fichier vous remplacez la valeur à la ligne ssid par celle que vous voulez.
changer le mot de passe de l'utilisateur "alarm"¶
passwd
puis il va vous demander votre mot de passe actuel et deux fois votre nouveau mot de passe. Attention, la piratebox n'affiche pas ce que vous écrivez pour les mots de passe mais le prend en compte.
changer le mot de passe de l'utilisateur "root"¶
sudo passwd root
Étendre l’espace de stockage à toute la carte SD¶
Pour l'instant si vous regardez bien (tapez df dan sun terminal ou ragradez sur l'interface web de la piratebox) vous verrez qu'il y a très peu d'espace de stockage sur votre piratebox et pas mal d'espace libre sur votre carte sd. Afin d'y remédier ils ont fait un script qui permet d'exploiter toute la carte SD.
sudo /opt/piratebox/rpi/bin/sdcard_share.sh
Electronique¶
Soudure des pins GPIO¶
La led et le bouton¶
Création du boîtier de la pirate box¶
CAO et FAO du boîtier¶
Pas encore documenté, mais les fichiers de construction et les exports pour la fabrication terminés sont disponibles dans la partie documents de ce projet. https://projets.cohabit.fr/redmine/documents/414
Générer une boîte¶
On utilise d'abord un générateur de boite autonome soit en ligne, soit on l'installe sur sa machine, https://festi.info/boxes.py/ClosedBox?language=en
Créez une boîte avec les réglages suivants :
Préparer le fichier sous inkscape¶
Le fichier généré est un svg, il faut le nettoyer de la boite qui contient le "100mm" ainsi que des caractères qui se trouvent à l'intérieur. On enregistre en svg.
Importer sa boîte sous Freecad¶
Pour importer sa boîte sous freecad, on fait Ctrl+i ou fichier/importer puis on choisit le fichier et on répond "svg as géometry".
Les contours des boîtes apparaissent alors dans l'arborescence sous forme de "pathXXXXX". Il faut maintenant extruder chacune de ces formes : sélectionnez les et sous l'atelier "part" choisissez l'option extruder. Vous réglez 3mm dans la boîte de dialogue.
Importer une modélisation de raspberryPi0¶
Vous trouverez facilement des modélisations déjà prêtes de raspberryPi0 notamment sur des sites comme grabCAD. Téléchargez des .step ou des .igs / .iges et importez les dan svotre projet. De même pour le bouton. Si vous galérez on en a intégré dans le fichier de construction freecad du projet.
Assembler et trouer sa boîte¶
Il faut maintenant déplacer toutes les parois extrudées de sa boîte et les positionner les unes par rapport aux autres de façon à ce qu'elles s'emboîtent.
Ensuite, il faut trouer les parois(voir l'image ci-dessous)... section incomplète.
Emplacements approximatifs des trous sur la boîte. |
---|
Les trous ne sont pas aux dimensions réelles! |
Créer et intégrer le bouton OFF¶
Exporter les fichiers de fabrication¶
Sous l'atelier "draft" créer une coupe pour chaque paroi de sa boîte, puis positionner cette coupe sur le XY et l'exporter en "flattened SVG"
Customiser sa boîte¶
sous inkscape sur les svg exportés précedemment.
Découpe laser de la boîte¶
Peinture du mdf 3mm¶
Impression 3D des bouchons¶
Implémentation du bouton OFF¶
Nous allons maintenant rajouter le bouton off en suivant cet excellent exemple https://forum.piratebox.cc/read.php?7,21068,22402#msg-22402
C'est du bash
programmation¶
Créez le fichier pour le script
sudo nano /home/alarm/buttononoff
collez le code suivant :
#!/bin/bash
pin=25
gpio mode $pin in
gpio mode $pin up
while true; do
var=$(gpio read $pin)
if [ "$var" -eq "0" ] ; then
echo shutdown
sudo shutdown -h now
fi
sleep 0.1
done
ctrl+o pour enregistrer vos modifications
ctrl+x pour quitter
y pour sauver
attention la pin 25 dans la librairie utilisé wiringPi ,ne correspond pas toujours.
Il faut donc vérifier grâce a l'image en dessous et corriger si besoin.(ce sont les chiffres en bleu qui nous intéresses)
rendre le script exécutable :
sudo chmod +x buttononoff
créez un service pour le script, comme ça il démarrera à chaque boot :
sudo nano /lib/systemd/system/button.service
collez le code suivant :
[Unit]
Description=Button Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/home/alarm/buttononoff
StandardOutput=null
[Install]
WantedBy=multi-user.target
Alias=button.service
donnez les droits au fichier et activez le service :
sudo chmod 644 /lib/systemd/system/button.service
sudo systemctl daemon-reload
sudo systemctl enable button.service
enfin rebootez!
sudo reboot
Programmation de la LED¶
petit exercice pour les plus courageux : rajoutez dans le script que la led serve d'indicateur de fonctionnement de la piratebox. Par exemple, LED clignotante lorsque la piratebox démarre, allumée quand le service est up et clignotante quand elle est en cours d'extinction. Pire encore un petit sos ... _ _ _ ... en cas de problème