Support for Cisco MR32

Hello all,

Could anyone confirm that the Cisco MR32 will never be supported by OpenWrt ?

Actually, i have a MR32 with licence expired and no one wants to buy it, same issue for my MX80 and the MS220-8P i will trow them away soon.



For someone with more knowledge of Broadcom wireless chips and their open-source drivers than I to answer more conclusively, lists the wireless chips as

  • WI1 chip1: Broadcom BCM43520
  • WI2 chip1: Broadcom BCM43520
  • WI2 chip2: Broadcom BCM43428
1 Like

HI Jeff

I got Meraki MR32 which I am not able to load OpenWrt on it.

I have got USB to TTL cable but on the main board it doesn't tell you how it is connected.
And steps on how to download it on the unit.

My email is


Since there is no OpenWrt image for the MR32 available: Which OpenWrt firmware image do you want to flash on the MR32?

I just want to disable the Cisco license so I can use this without buying


If you or someone else ports OpenWrt for the device, then you can replace the firmware with OpenWrt.

Nobody here can help you disable the Cisco licensing for the firmware for the device.

Any progress on this project guys?

FYI - OpenWrt support for MR32 has been added with;a=commit;h=0e4092cbade0a601a2e924932c8b900aef5a11a4

See also there for installation instructions.

BTW: The installation instructions speak of initramfs + dtb to be needed for initial installation.
Since they are not available on Where can one get those?

Same here. Need help.
I can't figure out from the instructions where or how to get "mr32-initramfs.bin" file referenced in the instructions.

On a side note - good job with the disassembly instructions! I'm attaching a picture with the serial pinout:

The initramfs image can be generated by building openwrt with CONFIG_TARGET_ROOTFS_INITRAMFS option enabled manually.

(On other targets (like ramips), there's the "initramfs" feature-flag that enables this by default. But enabling it for just one device is a bit "meh". Port more devices and there is maybe a case.)

1 Like

First - thank you very much for the quick reply and pointing us in the right direction!

I'm afraid this exceeds a bit my skills and setup right now. I got donated a few of those devices and was hoping to turn them to dummy APs as give-aways. I'm finding those days kids and parents quite appreciate such gifts! :slight_smile:

Even despite being limited to 1x1 it is still a good and usable device. It's a pity to have to throw it away.

I understand that this might be a rather inefficient thing to do but if someone could do a one-time build with all the necessary files (enough to convert the device the first time) I would much appreciate the help!

It's all there:

For the MR32 you just need to do things a little bit different in Step 3.

  • “Target System” ⇒ “Select” ⇒ “Broadcom BCM47xx/53xx (ARM)" ⇒ "Select"
  • “Target Profile” ⇒ “Select” ⇒ “MR32” ⇒ “Select”
  • "Target Images" ⇒ "Select" ⇒ "ramdisk" ⇒ "Select"

Please no. Don't give MR32s away as "gifts". Especially AP-devices (the MX64 routers do at least have some use without a WIFI) really need a WIFI driver for their main radios before they are even remotely useful. There are much better "give-away devices" like the WNDR3700. they "just work" and hence are much better ambassadors.

Also, Cisco Meraki has an active interest in making sure there's no alternative firmware for second hand market for their devices. A bunch of MR33 (the MR32 successor) were bricked because of that:

First - thank you for the quick reply! Those instructions look like a step towards the answer.

Is there anything specific that's required for the build?

I followed all the steps but it fails with an error:

make[3] -C package/utils/busybox compile
make[3] -C package/utils/nvram compile
make[3] -C package/utils/osafeloader compile
make[3] -C package/utils/oseama compile
make[3] -C package/utils/otrx compile
make[2] package/install
make[2] target/install
make[3] -C target/linux install
ERROR: target/linux failed to build.
make -r world: build failed. Please re-run make with -j1 V=s or V=sc for a higher verbosity level to see what's going on
make: *** [/home/owrt/openwrt/include/[]( world] Error 1

Is there anything else specific that I need for this build? I did specify the 3 items in the instructions.

I am going to rerun the build with those debug flags (and hopefully they suggest what's missing).


or more precisely, the error is:

make -j1 V=s
cat /home/owrt/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/image-bcm47081-tplink-archer-c5-v2.dtb >> /home/owrt/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/tplink_archer-c5-v2-kernel.bin
/home/owrt/openwrt/staging_dir/host/bin/lzma e /home/owrt/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/tplink_archer-c5-v2-kernel.bin -d16  /home/owrt/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/
mv /home/owrt/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/ /home/owrt/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/tplink_archer-c5-v2-kernel.bin
[ -f /home/owrt/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/tplink_archer-c5-v2-kernel.bin -a -f /home/owrt/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/root.squashfs ]
dd if=/home/owrt/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/root.squashfs >> /home/owrt/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/tmp/openwrt-bcm53xx-generic-tplink_archer-c5-v2-squashfs.bin
5690+1 records in
5690+1 records out
2913328 bytes (2.9 MB, 2.8 MiB) copied, 0.0308526 s, 94.4 MB/s
/home/owrt/openwrt/staging_dir/host/bin/trx -o /home/owrt/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/tmp/openwrt-bcm53xx-generic-tplink_archer-c5-v2-squashfs.bin.trx -m 33554432 -f /home/owrt/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/tplink_archer-c5-v2-kernel.bin -a 1024
mjn3's trx replacement - v0.81.1
WARNING: maxlen exceeds default maximum!  Beware of overwriting nvram!
/home/owrt/openwrt/staging_dir/host/bin/tplink-safeloader -B ARCHER-C5-V2 -k /home/owrt/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/tmp/openwrt-bcm53xx-generic-tplink_archer-c5-v2-squashfs.bin.trx -r /home/owrt/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/tmp/openwrt-bcm53xx-generic-tplink_archer-c5-v2-squashfs.bin -j -o /home/owrt/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/tmp/
os-image partition too big (more than 2097152 bytes): Success
make[5]: *** [Makefile:461: /home/owrt/openwrt/build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/tmp/openwrt-bcm53xx-generic-tplink_archer-c5-v2-squashfs.bin] Error 1
make[5]: Leaving directory '/home/owrt/openwrt/target/linux/bcm53xx/image'
make[4]: *** [Makefile:32: install] Error 2
make[4]: Leaving directory '/home/owrt/openwrt/target/linux/bcm53xx'
make[3]: *** [Makefile:13: install] Error 2
make[3]: Leaving directory '/home/owrt/openwrt/target/linux'
time: target/linux/install#119.64#41.13#169.12
    ERROR: target/linux failed to build.
make[2]: *** [target/Makefile:25: target/linux/install] Error 1
make[2]: Leaving directory '/home/owrt/openwrt'
make[1]: *** [target/Makefile:19: /home/owrt/openwrt/staging_dir/target-arm_cortex-a9_musl_eabi/stamp/.target_install] Error 2
make[1]: Leaving directory '/home/owrt/openwrt'
make: *** [/home/owrt/openwrt/include/ world] Error 2

Heh :sweat_smile:. This went almost as well as expected for that target, you see what you are up against... Well, you don't know it, but the initramfs are build before the images are being done. So check your /home/owrt/openwrtbin/targets/bcm53xx/generic/ for the openwrt-bcm53xx-generic-meraki_mr32-initramfs.bin. This is that mr32-initramfs.bin .

(Maybe CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA=y needs to be enabled as well. But from what I remember the MR32 uses kexec and it wouldn't boot
smaller images. We'll see.)

1 Like

HA! You are right! :slight_smile:

owrt@osboxes:~/openwrt$ find . -name *initramfs.bin

owrt@osboxes:~/openwrt$ ls -la ./bin/targets/bcm53xx/generic/openwrt-bcm53xx-generic-meraki_mr32-initramfs.bin
-rw-r--r-- 1 owrt owrt 10362880 Dec 13 00:37 ./bin/targets/bcm53xx/generic/openwrt-bcm53xx-generic-meraki_mr32-initramfs.bin

owrt@osboxes:~/openwrt$ ls -la ./build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/tmp/openwrt-bcm53xx-generic-meraki_mr32-initramfs.bin
-rw-r--r-- 1 owrt owrt 10362880 Dec 13 00:37 ./build_dir/target-arm_cortex-a9_musl_eabi/linux-bcm53xx_generic/tmp/openwrt-bcm53xx-generic-meraki_mr32-initramfs.bin

I also see "openwrt-bcm53xx-generic-meraki_mr32-squashfs.sysupgrade.bin" in the same folder.

It seems "./bin/targets" is where all the output went to (and the two files seem identical).
For the record - version.buildinfo says: r15204-b2d48c1dfe

I guess I'll give it a shot and report - hopefully all working! :slight_smile:

Did it work?

any luck with this topic ?

I'd be happy to know if it worked...
Could you let us know please?



I´m also trying to get the MR32 working. Tomorrow the USB TTL will arrive. Then i try to flash the AP.
I will work with this;a=commit;h=0e4092cbade0a601a2e924932c8b900aef5a11a4

I have questions left:
where is the download for: "now to flash the firmware:
odm firmware """