Wednesday, September 5, 2012

J'ai besoin ... de construire une PirateBox

Suite � un article publi� sur Le Monde, j'ai d�couvert une conf�rence vid�o de Ga�l Musquet donn�e � l'occasion du festival Pas Sage en Seine et qui pr�sentait le principe de la PirateBox. Une PirateBox est un r�seau sans fil, local qui permet d'�changer des fichiers de mani�re anonyme. L'id�e m'est alors venue de cr�er une PirateBox afin de pouvoir partager mes diff�rents outils de d�veloppements pr�f�r�s (Eclipse, Java...). Cela est aussi une occasion de d�couvrir des choses int�ressantes sur l'installation et la configuration d'un syst�me embarqu� comme OpenWRT.

L'objectif de ce billet et donc de vous pr�senter une installation d'une PirateBox. A vrai dire il s'agit d'une installation un peu particuli�re puisqu'elle ne s'est pas d�roul�e correctement. En effet, la mise � jour du firmware du routeur n'a pas r�ussi et j'ai du passer par une communication port s�rie pour r�soudre le probl�me.

Dans le cas o� vous souhaitez des tutoriels plus concis et qui montrent les �tapes pour installer une PirateBox dans les cas classiques, je vous conseille les suivants :
Pour cr�er une PirateBox, j'ai utilis� le mat�riel suivant :
  • Router TP-Link MR3020 V1.7 disponible sur Amazon,
  • Batterie Tecknet 7000 mAh pour �tre autonome au niveau de l'alimentation �lectrique. Pr�voir une capacit� �lev�e pour augmenter la dur�e ~ 14 heures disponible sur Amazon,
  • Cl� USB 32 GO pour stocker les donn�es. Il est possible d'utiliser une disque externe mais il faudra penser � l'alimenter ce qui pourra r�duire consid�rablement l'autonomie de la batterie.

Concernant le mat�riel pour la communication port s�rie, j'y reviendrai plus tard. C'est un passage oblig� s'il ne vous est plus possible de passer par la voie Ethernet.

Au niveau logiciel, j'ai utilis� :
  • Windows 7,
  • Putty pour la communication Telnet, SSH et COM,
  • le firmware OpenWR,
  • le package PirateBox.

Pour les diff�rentes �tapes, je vais suivre un ordre chronologique.

�tape 1 : d�ballage du routeur TP-Link MR3020

Ayant re�u rapidement mon routeur TP-Link MR3020 command� sur Amazon, je d�cide de me lancer dans la cr�ation de ma PirateBox. Premier constat, j'ai l'impression de d�baller un produit Apple (IPod, IPhone). L'emballage est tr�s ressemblant. Le contenu contient un routeur, une alimentation un cable USB et un c�ble Ethernet.
Emballage du TP-Link MR3020
Contenu de l'emballage du TP-Link MR3020

�tape 2 : connexion au routeur TP-Link MR3020

Je m'assure avec tout que l'interrupteur du routeur est en mode "Wisp". Je branche ensuite l'alimentation du routeur via le micro USB vers le port USB de mon portable. De m�me, je branche le c�ble Ethernet du routeur � mon portable. Enfin, je passe en WIFI afin de conserver la connexion internet sur mon portable PC.
Connexion du TP-Link MR3020
Ouvrir l'URL suivante http://192.168.0.254 � partir de n'importe quel navigateur.
Le nom d'utilisateur et le mot de passe sont 'admin'.

�tape 3 : mise � jour du firmware du routeur

Depuis le menu de gauche, choisir l'�l�ment System Tools ;
Choisir alors l'entr�e Firmware Upgrade puis s�lectionner le fichier openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin (t�l�charg� ici).
Faire la mise � jour en cliquant sur Upgrade. L'installation va proc�der et aucun message d'erreur ne devrait apparaitre. Il est ensuite indiqu� que le routeur va red�marrer.
Historiquement il ne s'agit pas du m�me fichier que j'avais utilis�. Le pr�c�dent concernait la version 1.6 du routeur et l'installation sur la 1.7 (la version de mon routeur) a abouti � un probl�me d'activation du r�seau. On va donc consid�rer par la suite que le connexion r�seau vers le routeur ne fonctionne pas.

�tape 4 : le blackout, le d�but des probl�mes

Le routeur red�marre et d'apr�s les diff�rents tutoriels que j'ai suivis, l'�tape suivante consistait � se connecter en Telnet au routeur. J'ai utilis� le Telnet de Putty via la configuration suivante :
Configuration Telnet avec Putty
Le probl�me c'est que rien ne se produisait, le routeur ne r�pondait pas. Un test ping pour s'assurer de l'existence d'une connexion active n'a rien donn�. Comme j'�tais en DHCP sur ma configuration r�seau, j'ai configur� en IP fixe pour avoir une classe d'adresses identique au routeur. Cela n'a �galement rien donn�. J'ai d�cid� de rebooter le routeur et r�it�rer les diff�rentes commandes pr�c�dentes, mais pas plus de changement.

J'ai d�couvert sur les diff�rents forums qu'il existait un Safe Mode sur le routeur. Pour l'activer, il faut �teindre le routeur et le rebrancher. D�s que la premi�re LED s'allume, il faut appuyer longtemps sur le seul bouton du routeur. Le r�sultat que vous devez obtenir est que la premi�re LED clignote tr�s rapidement. Mais le Safe Mode n'a rien chang� non plus. A cette �tape, j'ai bien pens� que mon routeur �tait mort.

�tape 5 : les forums PirateBox et le WIKI OpenWRT

Le site PirateBox contient un forum que j'ai parcouru pour tenter de trouver un message qui d�crirait � peu pr�s mon probl�me. C'�tait pas glorieux, il n'y avait pas grand chose. En fait, je me rendais compte que la version du routeur que je poss�dais �tait r�cente. J'ai donc d�cid� apr�s m'�tre assur� que le probl�me n'�tait pas r�solu de poster un message sur ce forum (Cannot connect in telnet after the OpenWRT firmware installation). Apr�s plusieurs All� / Retour sur cette discussion et sur le forum OpenWRT, j'en suis venu � la conclusion que seule une connexion via le port s�rie �tait possible.  

�tape 6 : achat du module s�rie

Depuis le WIKI d'OpenWRT pour le MR3020, une section d�crit comment communiquer via le port s�rie. Il est pr�conis� d�acheter un composant tout pr�t qui permet d'utiliser le port s�rie via une entr�e USB. En fait je ne me sentais pas capable de monter un circuit from scratch. Je me suis donc orient� vers ce module FTDI Basic Breakout - 3.3V. J'ai �galement pris cela pour que les branchements soient plus faciles.

�tape 7 : le bricolage et la soudure

Tout d'abord il faut acc�der � l'int�rieur du routeur. Pour cela il faut vous munir d'un petit pied de biche en plastique et ouvrir le couvercle c�t� LED (vous pouvez essayer avec un tournevis au risque de rayer le plastique).
Outil pour ouvrir le dessus du routeur
Il n'y a aucune vis pour retenir le circuit imprim� du routeur, retirer donc le de son logement en plastique afin de faciliter les op�rations de soudure. 

Le port s�rie est identifiable via les quatre petits fiches / trous plac�(e)s en ligne.
Identification des fiches du port s�rie du TP-Link MR3020
Deux solutions s'offraient � moi pour connecter les fils sur le circuit imprim�. La premi�re �tait de d�nuder 4 fils et d'effectuer un point de soudure pour chaque trou. Le probl�me s'est la fragilit� des fils. La seconde s'�tait d'essayer de reproduire une fiche m�le. C'est la seconde solution qui a �t� choisie. 
Pour trouver la bonne taille de connectique, j'ai utilis� des aiguilles � coudre. Pour les points de soudure, faites les par le dessous du circuit imprim�. Vous devriez obtenir le r�sultat suivant. J'ai fait un test au voltm�tre pour m'assurer que les points de soudure �taient correctement r�alis�s.

�tape 8 : connexion via le port s�rie du routeur TP-Link MR3020

Sur le routeur, la premi�re fiche est identifi�e par p1. Les fiches d�signent dans l'ordre :
  • p1 : TX
  • p2 : RX
  • p3 : GND (masse)
  • p4 : VCC
 Sur le module USB/S�rie, le r�le des fiche est directement imprim� :
  •  p1 : GND (masse)
  •  p2 : CTS
  •  p3 : Power 3.3V
  •  p4 : TX
  •  p5 : RX
  •  p6 : DTR  
Naturellement j'ai fait correspondre les TX, RX et GND. Pour le VCC, j'ai branch� l'alimentation. Toutefois, �a ne fonctionnera pas. Suivre alors les modifications suivantes.

Il faut supprimer l'alimentation (VCC) pas de p4 et intervertir TX et RX. Vous obtiendrez le r�sultat suivant :
Connexion TP-Link MR3020 avec le module FTDI Basic Breakout - 3.3V
Il faut ensuite connecter le module USB/S�rie sur votre PC et alimenter le router via le mini USB.
Il faut par ailleurs identifier le port virtuel COM employ� par le module USB/S�rie. Dans mon cas c'�tait le COM5.

Depuis l'application Putty, param�trer les informations afin d'effectuer une connexion en port s�rie en s'assurant que les param�trages suivants sont respect�s :
  • Bits per second: 115200
  • Data bits: 8
  • Stop bits: 1
  • Parity: None
  • Flow control: None
Faire Open, vous devriez maintenant obtenir une communication avec OpenWRT. Si �a ne fonctionne pas assurez-vous que lorsque vous tappotez sur le clavier de votre PC les LED du module USB/S�rie clignotent. V�rifier �galement les points de soudure et contr�ler enfin les branchements.

�tape 9 : mise � jour du firmware

A cette �tape, j'arrive � me connecter au routeur. Je peux parcourir le contenu et m'apercevoir que tout le contenu de l'OpenWRT a l'air correcte. Un reboot du routeur me permet de remarquer que le configuration r�seau pose probl�me. Il fallait donc que je trouve un moyen de mettre � jour ce firmware en m'assurant d'utiliser une version correcte pour mon routeur. J'ai pris le parti d'utiliser une cl� USB et de d�poser le firmware d�zipp� dedans.

Depuis Windows, copier le nouveau firmware d�-zipp� sur une cl�.

Brancher cette cl� sur le routeur et proc�der � son montage
 mount /dev/sda1 /mnt/usb
Copier le firmware dans le r�pertoire /tmp

Ex�cuter cette instruction et attendez que la mise � jour soit termin�e
mtd -r write openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin firmware

�tape 10 : installer PirateBox

Pour le reste de l'installation de la PirateBox, je ne vais pas faire un copier/coller des nombreux tutoriels qui existent. Vous pouvez suivre celui-ci qui est tr�s bien fait.

Conclusion

Au d�but de ce challenge, je ne pensais pas qu'il allait m'arriver ce genre de m�saventure. En y r�fl�chissant, je ressentis lors du plantage une certaine frustration du fait que j'avais achet� le routeur et que peut �tre il ne me servirait pas � grand chose. Un peu de patience, des recherches sur Internet, des gens motiv�s et le tour est jou� : j'ai maintenant ma PirateBox.

No comments:

Post a Comment