Cisco Meraki MX64/MX65 image support

Sounds fair. However, it mentions to only support SLC NAND devices up to 4 Gbit while the MX65 has an 8 Gbit. Not sure whether that is a hard limit though. Plus I don't know anything about the software side of things for that programmer. Likely Windows only but clicking on their link gives a 404.

Maybe they do have at least console-only Linux software. And BTW that one is USD 40.- new here plus the socket USD 18.- if I am not mistaken.

https://www.embeddedcomputers.net/products/FlashcatUSB_XPORT/

Likely Windows only but clicking on their link gives a 404

Glad you checked. The 404 is enough to make me not want to bother with it, and any windows requirement will be a refusal as I don't have any computers that will ethically run win10 or 11 and using a VM tends to be a bit of a hassle when trying to pass-through USB devices unless I buy a dedicated (not MB based) controller just for the VM to use. IMO, using linux or BSD on one's workstation is all around less hassle when working with embedded devices that also run some manner of linux or BSD.

Anyway, I looked into the NAND a bit closer and obtained the spec sheet for it: [download link], confirming it needs a "48-pin TSOP type 1, CPL" compatible device.

As far as supported NAND compatibility with the FlashcatUSB_XPORT, here's some conversion of part numbers. The "(A)" below is assumed as SLC on both "supported" and "mx65 boot listed" since it's the only option in the Micron spec sheet, but the MX65 explicitly has "A" in that sequence of part numbering, where as the FlashcatUSB_XPORT page lists the supported Micron NAND part number without the "A". Some additional "single value option" values are also assumed in the part number from Flashcat, which I've listed below.

When converting and comparing the rest of the part number values between MX65 boot output and the supported Micron NAND, it seems the only difference is 2 die supported by Flashcat vs 1 die being used on the MX65 NAND.

FlashcatUSB_XPORT Supported NAND:

  • Listed: MT29F8G08DAA (4Gbit):
  • Spec Chart: MT29F8G08-(A)[D]-{A}(C)%A%
  • (A) = SLC implied as only option
  • [D] = 2 Die
  • {A} = 3.3V
  • (C) = implied "feature set C" as only option
  • %A% = Async interface

MX65 boot output part number for NAND:

  • Listed: MT29F8G08ABACA
  • Spec Chart: MT29F8G08-(A)[B]-{A}(C)%A%
  • (A) = SLC explicitly listed
  • [B] = 1 Die
  • {A} = 3.3V
  • (C) = explicitly listed "feature set C"
  • %A% = Async interface

So, 1 die vs 2 die being the only difference on those part numbers, I assume it mean the FlashcatUSB_XPORT is an appropriate device to purchase. Is that a valid assumption to make here?

Edit: looked around on their products page a bit longer and I see that the full part number for the MX65 NAND is supported by the FlashcatUSB-Mach1, so I'll purchase that one.

Awesome, thanks for those links. Downloading now and will give them a try.

Parts update... the following are on their way to get this bricked NAND back to hopefully operational status. I'll keep working on the two non-bricked MX64 units in the interim, but right now the one thing I'm having a challenging time locating is the UNI-48-CLIP device itself.

If anyone knows of a USA based supplier that has the UNI-48-CLIP in stock please let me know. Aliexpress is ok in some cases but the delivery timelines conflict with some summer plans an I'd like to get cracking on this NAND sooner than August.

1 Like

Hello,

Thank you for the hard work.

I build the latest image, MX64 it is working, but I cant update

pakages

Executing package manager

Upgrading base-files on root from 1489-r19794-d14cfa3eca to 1491-r20023-21825af2da... Downloading https://downloads.openwrt.org/snapshots/targets/bcm53xx/generic/packages/base-files_1491-r20023-21825af2da_arm_cortex-a9.ipk

Errors

umount: tmpfs busy - remounted read-only umount: can't remount tmpfs read-only umount: proc busy - remounted read-only Collected errors: * copy_file: unable to open `/etc/group-opkg.backup': Read-only file system. * file_copy: Failed to copy file /etc/group to /etc/group-opkg.backup. * backup_make_backup: Failed to copy /etc/group to /etc/group-opkg.backup * opkg_install_cmd: Cannot install package base-files. * pkg_write_filelist: Failed to open //usr/lib/opkg/info/base-files.list: Read-only file system.

The opkg install command failed with code 255.

thank you

Quick update on the linked initramfs and sysupgrade files. I added those to the USB drive, rebooted the MX65 with reset held down as usual, got the white LED, released, and the initramfs loads as follows:

reading openwrt-bcm53xx-generic-meraki_mx65-initramfs.bin
..........[more loading time here, dots redacted from paste] ....
10917144 bytes read
## Booting kernel from FIT Image at 90000000 ...
   Using 'config@3' configuration
   Trying 'kernel-1' kernel subimage
     Description:  ARM OpenWrt Linux-5.15.45
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x900000e4
     Data Size:    10898926 Bytes = 10.4 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x60008000
     Entry Point:  0x60008000
     Hash algo:    crc32
     Hash value:   93f563e8
     Hash algo:    sha1
     Hash value:   04e121c2ec18ad996b54765a0e16fd1054739fea
   Verifying Hash Integrity ... crc32+ sha1+ OK

Boot then proceeds to the kernel image and seems to stall at the decompression stage:

## Flattened Device Tree from FIT Image at 90000000
   Using 'config@3' configuration
   Trying 'fdt-1' FDT blob subimage
     Description:  ARM OpenWrt meraki_mx65 device tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x90a6500c
     Data Size:    16334 Bytes = 16 KiB
     Architecture: ARM
     Hash algo:    crc32
     Hash value:   66288068
     Hash algo:    sha1
     Hash value:   5ddfb4ef871bbd96d14156401b47047f54083540
   Verifying Hash Integrity ... crc32+ sha1+ OK
   Booting using the fdt blob at 0x90a6500c
   Uncompressing Kernel Image ...

I've left the system running for >30 min to see if the decompression requires a longer time than I'd expect, but so far it will only sit there on TTY output with no further updates.

FWIW, this is all occurring while the USB drive is plugged during boot.

Boot log available here: https://gitlab.com/-/snippets/2367734

Could you try the link again? I have uploaded another. It may be that the original initramfs was too large.

https://app.box.com/s/ndvtb8yipis0ov6uvkkd0mhigjibdyi9

1 Like

Much better!

BusyBox v1.35.0 (2022-07-08 13:59:30 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r19791+247-f4415f7635
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:/# uname -r
5.10.127
root@OpenWrt:/# date
Fri Jul  8 14:23:13 UTC 2022
root@OpenWrt:/# 
2 Likes

@clayface a couple questions about expected versions of u-boot, initramfs, and kernel after the sysupgrade process.

Sequence of events:

  1. My previous paste of the boot sequence that displays OpenWrt ascii art shows the following versions, which was after copying the latest openwrt-bcm53xx-generic-meraki_mx65-initramfs.bin over to USB and then having the drive in its USB motherboard port during a reboot-reset-hold cycle.
  • U-Boot version: 2012.10 (May 04 2022 - 23:46:39)
  • Snapshot version: r19791+247-f4415f7635
  • Kernel version: 5.10.127
  1. After booting the above, I followed the upgrade instructions of copying the openwrt-bcm53xx-generic-meraki_mx65-squashfs.sysupgrade.bin file via scp from a connected laptop (using the 192.168.1.x/24 network addressing as per usual.
  2. Upgrade process completes successfully and I set a root password, then connect ethernet to the first LAN port to the host laptop.
  3. I check the webUI and it shows the typical main page, except at the bottom it lists the running versions as Powered by LuCI custom_mx65 branch (git-22.137.71281-d6dbedd) / OpenWrt SNAPSHOT r19791+44-f4415f7635
  4. Seems fine as far as functionality is concerned, so I remove the usb drive and issue a soft reboot
  5. MX65 boots up and looks good over TTL
  6. Boot cycle completes and displays the ascii art banner, but this time the versions are as follows:
  • U-Boot version: no change there
  • Snapshot version: OpenWrt SNAPSHOT, r19791+44-f4415f7635
  • Kernel version: 5.15.45
  1. After grep'ing the minicom log capture files I see the u-boot version is consistently the same 2012.10 (May 04 2022 - 23:46:39), the only time it was not as such as when the original loader was present (U-Boot 2012.10-00101-g93bc206 (Jun 19 2015 - 12:33:28))

So... before I move on to flashing another MX65 sitting here at my desk, is the above version info expected? Here are the file hashes that correspond to the files on the USB drive that was used, which includes the most recent initramfs from the box.com link.

   1   ā”‚ SHA512(openwrt-bcm53xx-generic-meraki_mx65-initramfs.bin)= 06c8ccbdbd35b85b7ea7ae836739ceb42c9c6809290fbe45b3dd194cf3c5abae68797c3bf94d29a88b4caa743c36e08867ce63b
       ā”‚ 2e2d6bbec14582388ca983bdc
   2   ā”‚ SHA512(openwrt-bcm53xx-generic-meraki_mx65-squashfs.sysupgrade.bin)= a8078d3a4f269a517b1c37b5d67826bd9c75a6876deea88555693f2cf8eef1b57caa831931eaf7ebe02d0f5417f38
       ā”‚ ad9888a27044ceed7cc45b6f4355a04f389
   3   ā”‚ SHA512(openwrt-bcm5862x-generic-meraki_mx65-initramfs-kernel.bin)= c2574a6521cf9e741ab53d57daa89cfc79903516d29439d4d961ab775836942d636e1faa47b341a76d6039bc4e8c0fa
       ā”‚ b8e50aa106fe41b4c84ecd0e626397453
   4   ā”‚ SHA512(uboot_mx65)= 21d4bd6f4a8cf66059eae40d008d09909643210cc5b319978908280a43a65a5a2c52600eeab5c9e273bad3a3e346ada1f540a0401cb2490ac972543cbdbada62
   5   ā”‚ SHA512(uboot_mx65_small)= 5630b0b121975c3913263b2050ebb1302860ecbb6accd401c603ae71d53339bc937244f529a6628a21e259360b3981e00532d90aace785177d2a49b36a0a64a4

Hi all,
I compiled the openwrt from scratch and finally I have my MX65 running but IĀ“m not able to bring up the poe interfaces (LAN11 ,LAN12) .
I would like connect a coupe of Cisco AP on those interfaces but no lucky for he moment.
Any ideas?
Thanks

not able to bring up the poe interfaces (LAN11 ,LAN12)

please post a pastebin link to debug output from these commands:

uname -a > /tmp/dacegar_mx65_debug.log
dmesg >> /tmp/dacegar_mx65_debug.log
ifconfig lan11 >>  /tmp/dacegar_mx65_debug.log
ifconfig lan12 >>  /tmp/dacegar_mx65_debug.log
ethtool lan11 >>  /tmp/dacegar_mx65_debug.log
ethtool lan12 >>  /tmp/dacegar_mx65_debug.log

Afterwards, transfer the debug log via scp from the mx65 to a laptop/workstation and then upload the file contents to a pastebin style site, and provide the URL for review.

Additionally, if you can provide the commands and config you used to build openwrt that would be helpful.

Here you have the pastebin url https://pastebin.com/HuJ6MXWb

What I used to compile was,

  git clone https://github.com/clayface/openwrt
  cd openwrt/
  ./scripts/feeds update -a
  ./scripts/feeds install -a
  make menuconfig
  make -j4 V=sc

Maybe the error was selecting options in make menuconfig?

The PR doesn't include POE support because of the PSE firmware/driver issue. I have patched in what is provided from the Meraki GPL archive in a different branch which you can build instead, until a solution is in place.

This all looks fine. While I suggest you compile your own image with the features you need, you can use this one which is updated from 5.15.45 to 5.15.53.

IĀ“m going to test your image, thanks @clayface

Indeed, I'm setting up a dev environment for openwrt this week along with some build automation. I somehow managed to sit and page through the list of 9000+ packages while keeping track of the additional ones I need along with notes on kernel module requirements for the package installs which failed dep checks. I'll reference your mx65_custom branch as a starting point, unless there are suggestions for an alternate approach.

Can someone give me the procedure for updating Meraki MX64-A0 with locked mtd0 from OpenWrt-BCM5862x image to OpenWrt-BCM53xx image? I tried several times but without success.

hi, how to update u-boot in best way?

Do you have the latest image for the regular MX64? I am having trouble compiling

1 Like

Putting together a build environment is not super-easy! If anyone reputable on this forum has some spare time we would greatly appreciate a set of builds for the three known varieties of Meraki (two versions of MX64 and MX65)! :pray: