OpenWrt Forum Archive

Topic: Cisco Meraki MR16 Flashing Help

The content of this topic has been archived on 4 May 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Hello All,

I need some assistance with flashing a few Meraki MR16 devices I have laying around.

I've read my specific Wiki ( wiki.openwrt.org/toh/meraki/mr16 ) of how to flash my MR16 and I appear to be stuck with the general environment build. Either this Wiki is outdated or there is something I don't understand.

I don't seem to have this required initramfs ( openwrt-ar71xx-generic-mr16-initramfs-uImage.bin ) file that I've seen referenced in the Documentation and few forum posts I've seen for the Meraki series access points. No matter how many times I "make" the environment, the initramfs file is never created within my <buildroot>/bin/ar71xx.

I don't know what I could be missing, but I have been trying for a straight week.

Additionally, a lot of the guide was hinting at opening the case of the MR16 and connecting UART pins to the board (Serial connectors)? I did my research but I'm afraid of taking apart my Meraki devices. Is this method required to flash the MR16's? The Wiki hints at doing this through TFTP, but I had difficulty understanding the process.

I have previously flashed some MR16s with Cucumber Tony and all it requires is to set up a TFTP Server. Setting your host with a specified 192.168.1.x address and have a vmlinux.gz.uImage image file in the TFTP root directory. I'm not sure if this is possible to do with OpenWRT either.

Any help would be appreciated.

Thank you!

(Last edited by mars543 on 26 Aug 2017, 03:28)

So after all this time, I managed to create the initramfs ( openwrt-ar71xx-generic-mr16-initramfs-uImage.bin ) I needed from the make process. Now comes the flashing bit!

Again, I did my research but I'm afraid of taking apart my Meraki MR16 and connecting UART pins to the board, unless if this is the only way to properly flash the device. The Wiki hints at doing this through TFTP, but that guide is difficult for me to understand. Has anyone had much luck with flashing via only a TFTP Server?

Thank you

Note, I do not own a Meraki MR16, so what I write below is based on general experience on OpenWRT.

Reading through the guide, it instructs in creating three different images. And yes, you will need UART connection to the device in order to proceed through the guide. The wiki does not instruct you on flashing the device through TFTP alone.

The first image ('openwrt-ar71xx-generic-mr16-initramfs-uImage.bin') seems to be a kernel + ramfs combo. I do not know why there's the 'initramfs' name on the image; it feels misleading to me. It contains a kernel image and a small root filesystem packed together. This image can be downloaded to the device's RAM memory over TFTP, and booted directly from there. This is what the 'tftpboot' and the 'bootm' commands do from the U-boot console. First command downloads the image to RAM, the second command executes it.

This approach is "non-invasive" in a sense i.e. it allows you to run the kernel image on your router without explicitly writing it to the flash memory. You use this approach to try out different features and functionalities of the device to make sure they all work. If they do not work, you can always recover by simply restarting the router from the power switch.

The second ('openwrt-ar71xx-generic-mr16-kernel.bin') and third ('openwrt-ar71xx-generic-mr16-rootfs-squashfs.bin') images are the kernel image and the root filesystem image. You need these after you have verified that the non-invasive image works as you expect. You transfer them to the RAM memory and write them to the flash memory. Then you set a U-boot variable which tells U-boot what commands it should execute after coming out of reset and after self-test and hardware initialization are done in order to boot the new, shiny OpenWRT firmware.

The Wiki only gives instructions on how to flash the device through the U-boot environment, which requires access to the console through the UART pins. The TFTP server is used as a transfer mechanism to move the image files from the build machine to the router's RAM, from where these images can either be booted directly, or written to the flash memory using the 'erase' and 'cp.b' commands.

(Last edited by Antek on 27 Aug 2017, 09:31)

i've been playing with my mr16's and have this to report:

first -the instructions in the openwrt toh are fine via serial access. https://wiki.openwrt.org/toh/meraki/mr16
opening up the AP case is difficult. you have to take out the two small screws on the top and bottom, then pry the case apart. the plastic is sturdy and i did not create damage even though a fair amount of force was necessary

it is possible to flash this router with openwrt without serial access:
1. if you have access to the cucumber tony vmlinux.gz.uImage,  follow the instructions for booting a uImage via the u-boot loader:  http://docs.ct-networks.io/article/213- … sco-meraki
2. if you can ssh into the cucumber tony AP, then you can sysupgrade to lede/openwrt:
sysupgrade -n /tmp/lede-17.01.4-ar71xx-generic-mr16-squashfs-sysupgrade.bin
3. if you can;t ssh into the cucumber tony AP, then you can reload an openwrt build lede-ar71xx-generic-mr16-initramfs-kernel.bin, renamed to vmlinux.gz.uImage and then uploaded via the uboot procedure in 1.

step 1 is necessary to properly set the uboot envionment and mtd map to boot openwrt.  i could not find a plain openwrt image to do this, and my attempts to modify the environment from the lede-ar71xx-generic-mr16-initramfs-kernel.bin uImage booted directly from an MR16 with meraki firmware were not successful (environment not defined, and when i directly write to the mtd partition u-boot-env, it was mapped incorrectly so i corrupted the AP.)

this process would be more straightforward if there were an openwrt uImage which set the uboot enviroment and mtd maps correctly.  i will be working on this but im a total openwrt novice so dont hold your breath.

i hope this helps with more community support for the MR16 AP's, which have great radios and otherwise capable hardware, are available widely and cheaply, and should make versatile openwrt AP's.
\

(Last edited by ghoffman on 14 Feb 2018, 15:58)

The discussion might have continued from here.