Ce tuto est inspiré de ce wiki mais qui ne semble plus accessible. C’est la raison pour laquelle nous reproduisons la procédure ci-dessous.

EDIT du 28/05/2015 : Merci PirateBox Brest pour la correction de l’URL !

Objectif

Flasher le firmware d’origine du MR3020 via la liaison COM. La procédure se déroule en 4 étapes :

  1. Réunir le matériel
  2. Etablir la liaison COM
  3. Vérifier si on peut sauver le routeur
  4. Flasher le nouveau firmware

Prérequis

Dans son tuto, l’auteur se branche sur un port COM et utilise un adaptateur USB vers RS-232. Mais cela devrait pouvoir passer directement via le port USB. Pour réaliser ce tuto, il vous faudra un peu de matériel notamment une carte Arduino USB2SERIAL Light. Les utilisateurs sous Windows auront besoin de drivers pour la carte Arduino. Ils sont accessibles ici. Enfin, pour la communication entre le routeur et la carte Arduino, vous aurez besoin de câbles de ce type.

Logiciel

Il vous faudra un logiciel pour établir la liaison COM. Comme souvent avec la BiblioBox, vous pourrez utilisez Putty. Il faudra également utiliser un serveur TFTP

Firmware OpenWRT

Téléchargez le firmware OpenWRT pour le MR3020. L’auteur du tuto conseille de copier le firmware à la racine du disque dur (c:\) et de le renommer firmware.bin pour plus de facilité.

C’est parti !

Les choses sérieuses vont pouvoir commencer. Vous avez votre matériel à disposition. Votre carte Arduino doit avoir la configuration suivante :

  • Vitesse : 115200
  • Bits de données : 8
  • Bit de stop : 1
  • Parité : sans
  • Control de flux : sans

Les fils

Vous aurez besoin de trois fils pour faire la liaison entre le routeur et l’Arduino:

  • Un pour l’émission (Tx)
  • Un pour la réception (Rx)
  • Un pour la terre (GND)

Liaison routeur/Arduino

Logiciels

Après avoir effectué les branchements, vous allez passer à la partie logiciel. Il faut monter le serveur TFTP téléchargé préalablement.(une explication pour configurer le serveur). Prenez la racine (c:\) comme dossier de référence là où se trouve le fichier firmware.bin. Ouvrez ensuite Putty et donnez lui la configuration suivante (le COM dépend du port sur lequel est branché votre Arduino)

putty.jpgPUTTY_2.jpg

Vous pouvez cliquer sur Open. Un écran noir apparaît.

Brancher le routeur

A ce niveau là, vous pouvez brancher électriquement le routeur. Il faut également brancher le câble rj45 sur le routeur et votre ordinateur. Le terminal devrait afficher les informations suivantes :

U-Boot 1.1.4 (Aug 17 2011 - 09:25:09)

AP121-2MB (ar9330) U-boot

DRAM:  32 MB
led turning on for 1s...
id read 0x100000ff
flash size 4194304, sector count = 64
Flash:  4 MB
Using default environment
In:    serial
Out:   serial
Err:   serial
Net:   ag7240_enet_initialize...
No valid address in Flash. Using fixed address
No valid address in Flash. Using fixed address
: cfg1 0x5 cfg2 0x7114
eth0: 00:03:7f:09:0b:ad
ag7240_phy_setup
eth0 up
: cfg1 0xf cfg2 0x7214
eth1: 00:03:7f:09:0b:ad
athrs26_reg_init_lan
ATHRS26: resetting s26
ATHRS26: s26 reset done
ag7240_phy_setup
eth1 up
eth0, eth1
Autobooting in 1 seconds

Flasher le firmware

Si tout se passe bien, le MR3020 tourne en boucle sur le U-boot. Il va falloir accéder à l’invite Hornet> pour pouvoir saisir les commandes permettant de flasher le firmware. Vous devrez taper tpl au moment où s’affiche “Autobooting in 1 seconds”, il faudra faire vite pour taper la commande. Une fois l’invite “Hornet>” disponible, il faudra définiri les paramètres réseau nécessaires pour effectuer le transfert TFTP. Il faut définir l’adresse du MR3020 : setenv ipaddr 192.168.1.1

Il faut également définir l’adresse IP du serveur TFTP, elle correspond probablement à l’adresse de votre ordinateur setenv serverip 192.168.1.254

Les variables réseaux sont configurées, le transfert depuis le serveur TFTP peut alors commencer. Cette commande va, à l’aide des adresses paramétrées précédemment, télécharger le firmware depuis le serveur TFTP vers la mémoire du MR3020 : tftpboot 0x80000000 firmware.bin

Le firmware est dans la mémoire du routeur, il suffit de faire de la place en supprimant l’ancien : erase 0x9f020000 +0x3c0000

Il reste à copier le firmware depuis la mémoire : cp.b 0x80000000 0x9f020000 0x3c0000

Enfin, il faut booter dessus: bootm 0x9f020000

Comme neuf

Si tout c’est bien passé, votre routeur est débrické. Il ne vous reste plus qu’à poursuivre l’installation de la PirateBox.

Si vous avez testé cette méthode, n’hésitez pas à partager votre expérience (positive ou négative ^^) dans les commentaires !