There is PR for MR42/52, work of clayface (GitHub account), with the install steps.
Clayface's repo with the compiled u-boot and uImage from MR42 & MR52
There is PR for MR42/52, work of clayface (GitHub account), with the install steps.
Clayface's repo with the compiled u-boot and uImage from MR42 & MR52
If anyone wants to try installing for testing purposes only, please follow the updated guide on the "ipq806x: add support for Cisco Meraki MR42/MR52" commit, not the PR message. You will need to compile your own sysupgrade image. Any feedback or critique is welcome but please be very careful.
Just in case someone has newer fw and needs to use UART, it is possible to flash this thing without having to solder. To do this you need to attach a 4 pin header and then attach the tty and use a clothes peg to put diagonal pressure so that the pins make contact with the PCB.
@clayface, thank you for the updated steps and the images!
If one is keeping the Meraki firmware portions on the respective MTD parts ( diagnostic1 part.old storage part.safe):
There isn't that much space available, the ubi capacity is <70MB with around 25MB available if keeping the Meraki OS:
root@OpenWrt:/# ubinfo -a
UBI version: 1
Count of UBI devices: 2
UBI control device major/minor: 10:62
Present UBI devices: ubi0, ubi1
ubi0
Volumes count: 4
Logical eraseblock size: 126976 bytes, 124.0 KiB
Total amount of logical eraseblocks: 566 (71868416 bytes, 68.5 MiB)
Amount of available logical eraseblocks: 211 (26791936 bytes, 25.5 MiB)
Maximum count of volumes 128
Count of bad physical eraseblocks: 0
Count of reserved physical eraseblocks: 20
Current maximum erase counter value: 354
Minimum input/output unit size: 2048 bytes
Character device major/minor: 247:0
Present volumes: 0, 2, 3, 4
Volume ID: 0 (on ubi0)
Type: static
Alignment: 1
Size: 95 LEBs (12062720 bytes, 11.5 MiB)
Data bytes: 11952128 bytes (11.3 MiB)
State: OK
Name: diagnostic1
Character device major/minor: 247:1
-----------------------------------
-----------------------------------
Volume ID: 2 (on ubi0)
Type: static
Alignment: 1
Size: 87 LEBs (11046912 bytes, 10.5 MiB)
Data bytes: 10997760 bytes (10.4 MiB)
State: OK
Name: part.safe
Character device major/minor: 247:3
-----------------------------------
Volume ID: 3 (on ubi0)
Type: dynamic
Alignment: 1
Size: 67 LEBs (8507392 bytes, 8.1 MiB)
State: OK
Name: storage
Character device major/minor: 247:4
-----------------------------------
Volume ID: 4 (on ubi0)
Type: static
Alignment: 1
Size: 82 LEBs (10412032 bytes, 9.9 MiB)
Data bytes: 10330112 bytes (9.8 MiB)
State: OK
Name: part.old
Character device major/minor: 247:5
===================================
It isn't necessary. To restore you would need to copy bootkernel1 to bootkernel2. The meraki OS would then boot and very likely replace u-boot by itself. The u-boot doesn't do anything that would break the Meraki OS.
Thanks for the confirmation, just checked the free space in the Meraki's diagnostic OpenWRT.
I can live with 25Mbytes, most of the previous devices had 16Mbytes chip altogether.
I'll do the OpenWRT upgrade, let me know if you need anything else to test on additional MR42 devices.
I can confirm that this indeed works most beautifully!
So this is now a working openwrt on the mr42? I have one end of service and would love to get it on openwrt!!!
As the merge request has not been merged as of yet one would need to do its own custom build of it. That said I do have such a build running with an uptime of 19 days now and it all works perfectly. With the two MR42 I have I actually tried both initial installation variants (e.g. the diagnostic mode one not requiring opening the device and the one requiring serial UART access).
What instructions are you using, I have a MR42 sitting on the shelf collecting dust that I would love getting OWRT on. I am also a noob, is it as easy to put OWRT on as the MR16??
Thanks
Please have a look at the merge request which includes full instructions.
Thank you, this is all new to me. I'm not clear on this part.
Option 1:
If you are sure you have set up the TFTP server correctly you can
run this script on the device. This will download and flash the u-boot
image immediately:
`/etc/update_uboot.sh 192.168.1.250 mr42_u-boot.mbn`
Option 2:
If you are unsure the TFTP server is correctly set up you can obtain
the image and flash manually:
1. `cd /tmp`
2. `tftp-hpa 192.168.1.250 -m binary -c get mr42_u-boot.mbn`
3. Confirm file has downloaded correctly and is correct size.
4. The following are the required commands to write the image.
`echo 1 > /sys/devices/platform/msm_nand/boot_layout
mtd erase /dev/mtd1
nandwrite -pam /dev/mtd1 mr42_u-boot.mbn
echo 0 > /sys/devices/platform/msm_nand/boot_layout`
To me those last 4 lines are meant only for option 2, yet outside the box for these 2 options, there is a step that says: * Important: You must observe the output of the nandwrite
command.
Look for the following to verify writing is occurring:emphasized text*
`Writing data to block 0 at offset 0x0
Writing data to block 1 at offset 0x20000
Writing data to block 2 at offset 0x40000`
Option 1 generates these lines we should watch for as well?
Thank you
Yes. The same commands are used in both cases, but doing option 2 allows the user to interactively check they have got it right. Do option 2 unless you are absolutely sure its safe.
BTW follow the instructions in the commit and not the PR message. The PR message will be lost once merged.
I am also stuck where you are. I got the three lines of output and couldn't load the @sumo files. I further tried to manually push the sysupgrade version to use the sysupgrade command but it said it was an invalid image. Also the ubirmvol command from the cleanup script doesn't exist on my unit.
Got it all sorted, found the repo and the files required.
Tried this a few times, running into some snags:
Once the LED start blinking, how fast do I need to press reset after releasing? Like double clicking on a mouse, or slower? I wait and wait, tried a few different ways, LED doesn't turn blue - how long should this take, is it immediate?
I proceeded to go on anyway, and was able to load and see the following:
`Writing data to block 0 at offset 0x0
Writing data to block 1 at offset 0x20000
Writing data to block 2 at offset 0x40000`
However, confused about the next step...
I need some clarity here. How long does one hold the reset button, is it just for 1 or 2 seconds, and then it's released after I see a light, or do I need to hold it until I see a solid white LED?
Can anyone chime in who is trying this, in particular with the blue light timing?
Thanks
@solarbeat and @False are you guys getting this blue light? I am not able to get this blue light hitting reset twice.
The orange LED is solid, then starts flashing white, this is when I stop pushing reset, and then hit reset twice. However the LED does NOT turn blue.
I am able to telnet and run the commands fine and get the output expected. However, I am having another issue on the next step as @solarbeat.
I pushed through and then tried to also do the sysupgrade with the ITB file only to get this error:
root@OpenWrt:/tmp# sysupgrade openwrt-ipq806x-generic-meraki_mr42-initramfs-fit-uImage.itb
Error: mandatory section(s) missing from "openwrt-ipq806x-generic-meraki_mr42-initramfs-fit-uImage.itb". Abort...
Image check 'platform_check_image' failed.
root@OpenWrt:/tmp#
I'm getting a blinking white light after orange, regardless of how many times I press. I just hold it longer to get it. If I do nothing, orange.
I get the same error as you for the sysupgrade.
The FW version of my MR42 was MR 25.13 when I pulled it, I made a note to write this down.
If anyone can say (over this version you need a UART) it would be great to know (I don't have a UART and have no idea where to get one)
Any chance you recall or had it noted what FW version your MR42s were running? TY
Yes, I do keep logs of anything I do. However, I do not know what exact proprietary Cisco Meraki versions those would align to.
1st unit:
U-Boot 2012.07-00012-g6a9e9dc-dirty [local,local] (Oct 14 2015 - 13:10:45)
Linux version 3.4.110 (mprokos@lams) (gcc version 4.8.3 (GCC) ) #2 SMP Wed Jan 13 14:13:02 PST 2016
Linux version 3.4.110 (mprokos@lams) (gcc version 4.8.3 (GCC) ) #4 SMP Wed Jan 13 14:11:57 PST 2016
ONFI probe : Found an ONFI compliant device MX30UF1G18AC
bootsh build 24-189947M-gf4598ac1-mprokos
2nd unit:
U-Boot 2012.07-gb6f2d34-dirty [local,local] (Mar 29 2016 - 08:32:34)
Linux version 3.4.110 (mprokos@lams) (gcc version 4.8.3 (GCC) ) #4 SMP Tue Jan 5 12:59:51 PST 2016
Linux version 3.4.110+ (meraki@buildbot106.meraki.com) (gcc version 4.8.3 (GCC) ) #3 SMP Tue Feb 9 20:33:42 PST 2016
ONFI probe : Found an ONFI compliant device S34MS01G2
bootsh build T-189080M-g9e3d697b-mprokos
I believe you guys are not really running proper initramfs OpenWrt but rather still that diagnostic mode one from Cisco Meraki whose sysupgrade, of course, does not quite accept a proper sysupgrade image.