Meraki MX64 Uboot not loading bin file

Hi,

I am trying to install OpenWrt from Clayface instructions :

After trying many USB drives and formatting combos I got on the serial and find out that the u-boot is trying to load a different file name:
openwrt-bcm53xx-generic-meraki_mx64-initramfs.bin
and not the bcm5862x I was expecting... it goes without saying that I have tried to rename the file but with no result:

(Re)start USB...
USB:   Before reset, USB clk enable register is: 000002dd
Before reset, USB clk enable register is: 000002dd
usb2_reset_state is: 00000000
Register 1212 NbrPorts 2
USB EHCI 1.00
scanning bus for devices... 2 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
reading openwrt-bcm53xx-generic-meraki_mx64-initramfs.bin
................................................................................................................
225063 bytes read
Wrong Image Format for bootm command
ERROR: can't get kernel image!

so now I am not able to continue, nor to find a bmc53xx initramfs file... any suggestion on what could I have done wrong and how to move forward?

here some environment info:

u-boot> printenv
baudrate=115200
bootargs=console=ttyS0,115200n8 earlyprintk
bootcmd=run soc_dtscheck; mx64init; run ubi_checkboot; run usb_checkboot; run meraki_checkboot
bootdelay=3
bootfile=uImage
config_dts=config@4
disable_ubi_boot=0
enable_meraki_boot=0
enable_usb_boot=1
initramfs_filename=openwrt-bcm53xx-generic-meraki_mx64-initramfs.bin
initramfs_filename_a0=openwrt-bcm53xx-generic-meraki_mx64_a0-initramfs.bin
ipaddr=192.168.0.1
loadaddr=0x90000000
meraki_bootkernel1=nand read 0x60008000 0x100000 0x300000; bootbk 0x60008000 bootkernel1
meraki_bootkernel2=nand read 0x60008000 0x500000 0x300000; bootbk 0x60008000 bootkernel2
meraki_checkboot=if test $enable_meraki_boot = 1; then run meraki_bootkernel2; run meraki_bootkernel1; fi
mtddevname=ubi
mtddevnum=0
mtdids=nand0=nand_iproc.0
mtdparts=mtdparts=nand_iproc.0:0x3F700000@0x800000(ubi)
partition=nand0,0
soc_dtscheck=if test -n config_dts; then getsocrev; if test $? = 1 ; then setenv config_dts config@4; else setenv config_dts config@2; fi; fi
stderr=serial
stdin=serial
stdout=serial
ubi_boot=ubi part ubi && ubi read ${loadaddr} kernel && bootm ${loadaddr}#${config_dts}
ubi_checkboot=if test $disable_ubi_boot != 1; then run ubi_boot ; fi
usb_checkboot=if test $enable_usb_boot = 1; then usbload; fi

Environment size: 1313/262140 bytes

do you really want an AP with crippled wifi ? seems rather pointless ...

The device can be used as a wired only router and has 2GB of RAM which is not bad. The full discussion of adding support is in the following thread:

There have been a few changes between Clayface initial work and the device getting official support. To install OpenWrt you will need to use a recent OpenWrt initramfs and not Clayface file. Unfortunately OpenWrt does not supply the initramfs in the download section so you will have to build your own.

The full install instructions are over here:

@XXmode1XX I just checked the wiki page in @frollic post and near the end of the page are 2 download links to pre-compiled initramfs files. You should be able to complete the install using one of those.

1 Like

Eureka!

the bin form the Clayface git are not readable from the U-boot installed...

so I re-wrap the bin with this command:

mkimage -A arm -O linux -T kernel -C none \
  -a 0x80001000 -e 0x80001000 \
  -n "OpenWrt MX64" \
  -d openwrt-bcm5862x-generic-meraki_mx64-initramfs-kernel.bin \
  openwrt-mx64.uImage

then I saved it on the USB stick and load it manually on memory

usb start
fatload usb 0:1 0x80000000 openwrt-mx64.uImage
bootm 0x80000000

then I have transfer the squashfs bin with a Wget ( you will need to set up a local webserver) and proceed with the sysupgrade...