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 :
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é :
Pour les différentes étapes, je vais suivre un ordre chronologique.
Ouvrir l'URL suivante http://192.168.0.254 à partir de n'importe quel navigateur.
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 :
- https://docs.google.com/file/d/0B29hOjS3UlFmNmYtLWVsYUNodjA/edit
- http://pirateboxfr.com/tutorielmr3020/
- http://wiki.daviddarts.com/PirateBox_DIY_OpenWrt
- http://forum.daviddarts.com/read.php?2,3456
- 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 |
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.
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.
É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 |
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 |
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 |
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
- p1 : GND (masse)
- p2 : CTS
- p3 : Power 3.3V
- p4 : TX
- p5 : RX
- p6 : DTR
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 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
É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/usbCopier 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
Very nice article about our problem determination and your MR3020. Nice to see your ongoing with the topic and I'm very happy about your learnings :D
RépondreSupprimerBtw: I already fixed the wiki-linked image that another v1.7 owner would not encouter such kind of problems
Hi Matthias,
RépondreSupprimerThanks again for your advice.
Sorry for the french post :D
Keep in touch for the new adventures...
Mickael
Bonsoir j'ai le même problème que vous mais je ne me sens pas du tout capable de réaliser ce que vous avez fait. N'y aurait il pas une solution plus simple de revenir sur le configuration d'origine afin de recharger ensuite le bon firmware? (retour du routeur en mode usine?
RépondreSupprimerBonjour,
RépondreSupprimerDésolé mais si tu ne peux pas communiquer avec le port Ethernet la seule solution c'est via le port série.
Le seul point difficile (de mon point de vue) c'est la soudure, sinon le reste ça reste raisonnable
Mickael