Modification d'un point d'accès Meraki MR12 - MR16 - MR18 - MR24 - MR26 - MR33
J'ai en ma posséssion un point d'accès Meraki MR12 et deux MR16.
Je les avais achetés sans savoir qu'il fallait une licence.
Après un mois d'utilisation, paf!!! bloqué.
Je pensais donc qu'ils étaient donc voués à la poubelle. Mais par hasard je suis tombé sur un site pour modifié le firmware du méraki pour le réutiliser.

Le firmware en question OpenWRT

Ce qu'il vous faut
    - module USB 2.0 to TTL UART Serial Converter CP2102 STC 6 pin
    - du fil pour la connection entre le module et le Méraki
    - PuTTY
    - un serveur tftp. essayer tftpd32 ou tftpd64 (très important: il faut absolument que l'ordinateur sur lequel vous mettez le serveur tftp soit avec l'adresse ip 192.168.1.101)

Voici à quoi ressemble le module CP2102
J'ai entouré les connectiques qu'il va falloir racorder

MR12

Coté Méraki, voici la même
J'ai fait la même, j'ai entouré des mêmes couleurs les branchements correspondant.
Rouge: Ground
Bleu: Tx
Jaune: Rx

MR16
Pour le MR16 j'ai pas fait attention et ils sont remontés donc...
J2 -> Rx, J3 -> Tx & J4 -> GND
J1 est le seul à avoir une soudure carrée et non ronde. Retournez la carte pour voir les soudures.
Avec ceci vous pourrez savoir où sont placés J2, J3 et J4.


Ensuite, on ouvre PuTTY

On clique sur le bouton "Serial",
Le "Serial line", on met le numéro de COM correspondant. Pour moi c'est le COM4. Si vous ne savez pas regardez dan le gestionnaire de périphérique.
"Speed", mettez 115200
Puis on clique sur "Open"

Passons maintenant à la modification en elle même.
Si vous avez un MR12, il va falloir être rapide, je vous conseil de lire d'abord et de faire ensuite.
Branchez le Meraki et appuyez sur entrée sans arrêt.

U-Boot 1.1.4-g0c3911dd (Mar 3 2011 - 17:08:51)

PB93 (ar7241 - Virian) U-boot
DRAM:
sri
ar7240_ddr_initial_config(133): virian ddr1 init
#### TAP VALUE 1 = 0x2, 2 = 0x2 [0x20102000: 0x80000102]
64 MB
Top of RAM usable for U-Boot at: 84000000
Reserving 272k for U-Boot at: 83fb8000
Reserving 192k for malloc() at: 83f88000
Reserving 44 Bytes for Board Info at: 83f87fd4
Reserving 36 Bytes for Global Data at: 83f87fb0
Reserving 128k for boot params() at: 83f67fb0
Stack Pointer at: 83f67f98
Now running in RAM - U-Boot at: 83fb8000
id read 0x100000ff
flash size 16MB, sector count = 256
Flash: 16 MB
BOARD IS NOT CALIBRATED!!!
In: serial
Out: serial
Err: serial
Net: ag7240_enet_initialize...
No valid address in Flash. Using fixed address
Virian External MII mode MDC CFG Value ==> 6
: cfg1 0xf cfg2 0x7014
eth0 link down
eth0: 00:03:7f:09:0b:ad
ATHRSF1_PHY: PHY unit 0x0, address 0x4, ID 0xd04e,
ATHRSF1_PHY: Port 0, Neg Success
ATHRSF1_PHY: unit 0 port 0 phy addr 4
eth0 up
eth0
RESET is un-pushed
Hit any key to stop autoboot: 0
ar7240>

En fait il faut appuyer sur entrée quand on voit "Hit any key to stop autoboot:" mais sur le MR12 c'est tellement rapide que le mieux c'est de le brancher et d'appuyer sans arrêt sur entrée.
Si tout va bien vous serez sur le prompt ar7240>.

Alors vous avez la possibilité de tester openwrt sans écraser la rom actuelle.
Pour le MR12
tftpboot 0x81000000 openwrt-ar71xx-generic-mr12-initramfs-uImage.bin; bootm
Pour le MR16
tftpboot 0x81000000 openwrt-ar71xx-generic-mr16-initramfs-uImage.bin; bootm
Vous pouvez vous connecter avec chrome ou autre à l'adresse 192.168.1.1

Si vous êtes sûr de vous, vous pouvez passer à la suite, mais attention, la suite et non réversible.
Là on va installer le firmware.
Pour le MR12
tftpboot 0x80010000 openwrt-ar71xx-generic-mr12-kernel.bin;erase 0x9fda0000 +0x240000;cp.b 0x80010000 0x9fda0000 0x240000
tftpboot 0x80010000 openwrt-ar71xx-generic-mr12-rootfs-squashfs.bin;erase 0x9f080000 +0xD20000;cp.b 0x80010000 0x9f080000 0xD20000
setenv bootcmd bootm 0x9fda0000; saveenv; boot
Pour le MR16
tftpboot 0x80010000 openwrt-ar71xx-generic-mr16-kernel.bin;erase 0xbfda0000 +0x240000;cp.b 0x80010000 0xbfda0000 0x240000
tftpboot 0x80010000 openwrt-ar71xx-generic-mr16-rootfs-squashfs.bin;erase 0xbf080000 +0xD20000;cp.b 0x80010000 0xbf080000 0xD20000
setenv bootcmd bootm 0xbfda0000; saveenv; boot
Maintenant il faut réinjecter l'adresse mac de l'appareil. On va commencer par vérifier que celà soit possible.
cat /proc/mtd | grep mac
Si vous avez ceci en retour mtd5: 00010000 00010000 "mac", alors c'est qu'on peut passer à la suite.
Au dos de l'appareil, vous avez l'adresse mac d'écrite sur l'étiquette
Ici l'adresse mac est 00:18:0A:2F:E7:E0
Nous allons la transformer en un format que nous pourrons utiliser. \x00\x18\x0a\x2f\xe7\xe0
mtd erase mac
echo -n -e '\x00\x18\x0a\x2f\xe7\xe0' > /dev/mtd5
sync && reboot
Je ne sais pas pourquoi, mais avec le MR12 il a fallu que je le fasse deux fois, j'ai certainement dû faire une erreur quelque part.

Votre MR est maintenant presque prêt. Il nous reste plus qu'à le mettre à jour.
Rendez-vous sur la page de téléchargement openwrt pour avoir le dernier firmware.
Ca va être un fichier avec un nom dans ce style openwrt-18.06.1-ar71xx-generic-mrXX-squashfs-sysupgrade.bin. XX correspond à la version de votre MR.
Avec Chrome ou autre, entrez l'adresse ip de votre MR (192.168.1.1 par défaut), onglet system et choisissez Backup / Flash Firmware.
Voilà, une nouvelle page s'ouvre et en bas dans Flash new firmware image cliquez sur le bouton Choisir un fichier. Choisissez le firmware fraichement téléchargé et cliquez sur le bouton Flash Image. Voilà il n'y a plus qu'à accepter et la mise à jour se fait.

Nous avons terminés.