Flashing the firmware on that Meraki MR12 cloud managed AP to LEDE, what fun!
Quite a few MR12 / MR16 AP’s were handed out by Cisco Meraki for attending a webinar they were running on why you should buy this sort of thing. Free AP’s are all well and good however the limitation was that they were Cloud managed and had an expiry date on how long you got this for free… I had one sitting around and recently after I upgraded our home broadband connection and I found that the ISP we chose had sent out a (really naff) new router it seemed like a good time to bring out the MR12 and harness its finer qualities…
…Hence this post:
Hardware: You’re going to need a Laptop, a means of interfacing with the UART port on the MR12 (I used a USB 2.0 to TTL UART 6PIN CP2102 amazon special) and a bit of patch cable.
Here’ a nice picture of the way I have the serial interface connected.
Software: I used a windows laptop to flash this MR12 with the IPV4 adapter set to 192.168.1.101 (the default IP for the firmware I’m using on the MR12 reports on 192.168.1.1) subnet 255.255.255.0 and (there’s no place like) 127.0.0.1 for DNS.
I turned off the Windows Firewall.
I disabled any other networking adapters I wasn’t using.
I set a continuous ping command running on the laptop to test for when the MR12 was responding.
I used PUTTY to interface with the serial port on the MR12, the settings for putty were connection type Serial, COM4 (whatever com port your USB > TTL adapter is installed on) with a speed setting of: 115200.
TFTP32 to transfer the new firmware.
The 1.4 release for this set of firmware files extracted (you’ll need 7zip) into the root directory of where you installed TFTP32.
I found that on several github / forum posts the flash commands weren’t quite right for whatever reason so the following is the process I used to get the MR12 up and running.
Once you’ve got all the hardware connected as shown above and you can see some console output from the MR12 in Putty it’s time to test the firmware to ensure everything is working correctly.
Unplug the MR12, when you plug it back in be ready to quickly press a key in Putty to break the boot sequence or it’ll just start booting into the factory image, this can take a few tries if you’ve forgotten to give focus to the Putty window… (doh!).
Once the MR12 boot process has been halted and it is sitting at the ‘AR7240>’ prompt you’re ready to start playing around. I copied all of the comands into a blank notepad document to make copying / pasting easier.
The command below will boot the AP with the new firmware but not write it to the flash, I used this command to test everything was functioning as expected:
tftpboot 0x81000000 lede-ar71xx-generic-mr12-initramfs-kernel.bin; bootm
If everything above went OK and you’re happy to proceed the following commands will get you there, however remember that once you’ve done this as far as I’m aware it’s there for keeps… I suppose you could re-flash it with factory firmware but I’ll never do this so I’m not sure what the process for that would be.
Reboot the AP, break the boot sequence and input:
tftpboot 0x80010000 lede-ar71xx-generic-mr12-squashfs-kernel.bin;erase 0x9fda0000 +0x240000;cp.b 0x80010000 0x9fda0000 0x240000
One the above command has completed input:
tftpboot 0x80010000 lede-ar71xx-generic-mr12-squashfs-rootfs.bin;erase 0x9f080000 +0xD20000;cp.b 0x80010000 0x9f080000 0xD20000
Finally to set it up for good input:
setenv bootcmd bootm 0x9fda0000; saveenv; boot
It’s probably worth doing a reboot on the AP now.
Once it’s back up you should be good to go and have brought a useless brick back to being a useful buliding block for whatever wifi related purpose you have. The new firmware is very comprehensive and holds many fine enterprise level features under its belt so I’ll be using mine to run the wifi out in my home workshop. I hope this guide helps if you’re stuck trying to do this but don’t forget that firmware flashing can be a tricky business and it’s easy to muck things up so I wouldn’t be trying this sort of thing on anything you don’t have a replacement of or would really cry about if it went badly wrong.