[HOWTO] Installing OpenWrt on Cisco Meraki MX60

MX60 does not (only soldering pads for one). MX60W does:

1 Like

The slot is wired for PCIe only. It is not suitable for most LTE modems since they require a USB bus.

2 Likes

I was thinking more replacing the pcie card with mt76 devices.

1 Like

I can't boot modern builds for some reason

## Booting kernel from Legacy Image at 00800000 ...
   Image Name:    initramfs
   Created:      2024-08-28  23:26:32 UTC
   Image Type:   PowerPC Linux Multi-File Image (gzip compressed)
   Data Size:    4394876 Bytes =  4.2 MB
   Load Address: 00000000
   Entry Point:  00000000
   Contents:
      Image 0: 4374347 Bytes =  4.2 MB
      Image 1: 32 Bytes =  0 kB
      Image 2: 20480 Bytes = 20 kB
   Verifying Checksum ... OK
## Loading init Ramdisk from multi component Legacy Image at 00800000 ...
## Flattened Device Tree from multi component Image at 00800000
   Booting using the fdt at 0xc2bfbc
   Uncompressing Multi-File Image ... OK
WARNING: legacy format multi component image overwritten
   Loading Ramdisk to 1fb57000, end 1fb57020 ... OK
fdt_initrd: FDT_ERR_NOSPACE


edit: needed to run

setenv meraki_loadaddr 1000000

1 Like

Just got the MX60W and a little annoyed to see that all 4 LAN ports appear to be on what appears to be a swconfig switch, without lan1, lan2... interfaces. Can this target use DSA?

Think the answer is this PR https://github.com/openwrt/openwrt/pull/14037

That's me. Faster iperf. No idea about switching.

Thanks for the contribution. Seems to work great for my use case - using DSA to run as a regular switch. I noticed a couple of boot errors during Ethernet bring-up after building your branch for my MX60 but once booted the code seemed good.

One of them should be fixed in the next push.

The other one is a PPC kernel issue that's mostly harmless.

2 Likes

When installing openwrt on Cisco Meraki MX60 I failed even though I followed all the instructions on the wiki page. Even though I repeated the installation process several times.

First of all, when I execute the commands as in point 5 of the directive here

It return with these errors.

root@OpenWrt:/# ubirmvol /dev/ubi0 -N part1
ubirmvol: error!: cannot find UBI volume "part1"
          error 2 (No such file or directory)
root@OpenWrt:/# ubirmvol /dev/ubi0 -N part2
ubirmvol: error!: cannot find UBI volume "part2"
          error 2 (No such file or directory)
root@OpenWrt:/# ubirmvol /dev/ubi0 -N storage
ubirmvol: error!: cannot find UBI volume "storage"
          error 2 (No such file or directory)

Cannot find part1, part2 and storage partitions in UBI.

When I look at which sections are in UBI, I get the following output

root@OpenWrt:/# ubinfo /dev/ubi0 -a
ubi0
Volumes count:                           5
Logical eraseblock size:                 129024 bytes, 126.0 KiB
Total amount of logical eraseblocks:     8174 (1054642176 bytes, 1005.7 MiB)
Amount of available logical eraseblocks: 0 (0 bytes)
Maximum count of volumes                 128
Count of bad physical eraseblocks:       0
Count of reserved physical eraseblocks:  160
Current maximum erase counter value:     107
Minimum input/output unit size:          2048 bytes
Character device major/minor:            250:0
Present volumes:                         0, 1, 2, 3, 4

Volume ID:   0 (on ubi0)
Type:        dynamic
Alignment:   1
Size:        82 LEBs (10579968 bytes, 10.0 MiB)
State:       OK
Name:        recovery
Character device major/minor: 250:1
-----------------------------------
Volume ID:   1 (on ubi0)
Type:        dynamic
Alignment:   1
Size:        31 LEBs (3999744 bytes, 3.8 MiB)
State:       OK
Name:        kernel
Character device major/minor: 250:2
-----------------------------------
Volume ID:   2 (on ubi0)
Type:        dynamic
Alignment:   1
Size:        1 LEBs (129024 bytes, 126.0 KiB)
State:       OK
Name:        board-config
Character device major/minor: 250:3
-----------------------------------
Volume ID:   3 (on ubi0)
Type:        dynamic
Alignment:   1
Size:        32 LEBs (4128768 bytes, 3.9 MiB)
State:       OK
Name:        rootfs
Character device major/minor: 250:4
-----------------------------------
Volume ID:   4 (on ubi0)
Type:        dynamic
Alignment:   1
Size:        7864 LEBs (1014644736 bytes, 967.6 MiB)
State:       OK
Name:        rootfs_data
Character device major/minor: 250:5

If I somehow ignore these errors and do squashfs-sysupgrade upgrade after booting with initramfs, I keep getting the recovery mode page.

uboot printenv output is as follows.

=> printenv
bootdelay=1
baudrate=115200
loads_echo=
preboot=echo;echo Set serverpath and run meraki_netboot to netboot;echo
nload=${netloadmethod} 200000 ${serverpath}u-boot-nand.bin
nupdate=nand erase 0 0x00200000 ;nand write 200000 0 0x00100000
nupd=run nload nupdate
kernel_addr=fc000000
fdt_addr=fc1e0000
ramdisk_addr=fc200000
pciconfighost=1
pcie_mode=RP:RP
netdev=eth0
netloadmethod=dhcp
ethact=ppc_4xx_eth0
ethaddr=00:01:73:01:23:41
boardtype=pcie
mtd_addr_r=0x4000000
kernel_size=0x400000
fdt_size=0x25000
meraki_bootargs=setenv bootargs root=/dev/ram console=ttyS0,${baudrate} ubi.mtd=ubi MERAKI_BOARD=buck mtdoops.mtddev=oops ${extra_bootargs}
meraki_bootfile=buck.bin
meraki_bootlinux=bootm ${meraki_loadaddr_kernel} ${meraki_loadaddr_ramdisk} ${meraki_loadaddr_fdt}
meraki_boot=run meraki_ubi meraki_bootargs ; run meraki_load1 meraki_checkpart meraki_bootlinux; run meraki_load2 meraki_checkpart2 meraki_bootlinux
meraki_checkpart=meraki checkpart ${meraki_loadaddr}
meraki_checkpart2=meraki checkpart ${meraki_loadaddr} skiphash
meraki_netboot=run meraki_load_net meraki_bootargs meraki_checkpart2 meraki_bootlinux
meraki_part_fdt_index=0
meraki_loadaddr_fdt=800400
meraki_loadaddr_kernel=810000
meraki_loadaddr_ramdisk=a00000
meraki_load1=ubi read ${meraki_loadaddr} part1
meraki_load2=ubi read ${meraki_loadaddr} part2
meraki_load_net=${netloadmethod} ${meraki_loadaddr} ${serverpath}${meraki_bootfile}
meraki_ubi=ubi part ubi
meraki_ubifile=buck-ubi.bin
meraki_ubi_loadfile=${netloadmethod} 200000 ${serverpath}${meraki_ubifile}
meraki_ubi_update_nand=nand erase 0x00240000 0x3fdc0000 ; nand write 200000 0x00240000 ${filesize}
meraki_ubi_update=run meraki_ubi_loadfile meraki_ubi_update_nand
meraki_update_part1=run meraki_ubi meraki_load_net meraki_write1
meraki_update_part2=run meraki_ubi meraki_load_net meraki_write2
meraki_write1=ubi write ${meraki_loadaddr} part1 ${filesize}
meraki_write2=ubi write ${meraki_loadaddr} part2 ${filesize}
mtdids=nand0=nand0
mtdparts=mtdparts=nand0:0x00200000@0(firmware),0x00040000@0x00200000(panic),0x3fdc0000@0x00240000(ubi)
serverpath=10.1.30.240:tftpboot/
ipaddr=192.168.1.1
serverip=192.168.1.101
gatewayip=192.168.1.1
netmask=255.255.255.0
factory_cmdline=setenv bootargs root=/dev/ram ramdisk_size=${factory_ramdisk_size} rw ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:off panic=1 console=ttyS1,${baudrate}
factory_ramdisk_file=uRamdisk
factory_bootfile=uImage
factory_fdt_file=bluestone.dtb
factory_kernel_addr_r=0x400000
factory_fdt_addr_r=0x800000
factory_mtd_addr_r=0x4000000
factory_ramdisk_size=0x200000
factory_boot=tftp ${factory_kernel_addr_r} ${factory_bootfile};tftp ${factory_fdt_addr_r} ${factory_fdt_file};tftp ${factory_mtd_addr_r} ${factory_ramdisk_file};run factory_cmdline;bootm ${factory_kernel_addr_r} ${factory_mtd_addr_r} ${factory_fdt_addr_r}
partition=nand0,0
mtddevnum=0
mtddevname=firmware
bootargs=console=ttyS0,115200 rootfstype=squashfs mtdoops.mtddev=oops
owrt_load1=ubi read ${meraki_loadaddr} kernel
owrt_load2=ubi read ${meraki_loadaddr} recovery
lede_bootkernel=bootm ${meraki_loadaddr_kernel} - ${meraki_loadaddr_fdt}
owrt_bootkernel=bootm ${meraki_loadaddr}
owrt_bootargs=setenv bootargs console=ttyS0,${baudrate} rootfstype=squashfs mtdoops.mtddev=oops
owrt_boot=run meraki_ubi owrt_bootargs; run owrt_load1 meraki_checkpart lede_bootkernel; run owrt_load2 owrt_bootkernel
owrt510_boot=run meraki_ubi owrt_bootargs; run owrt_load1 owrt_bootkernel; run owrt_load2 owrt_bootkernel
meraki_loadaddr=1000000
bootcmd=run owrt_boot
stdin=serial
stdout=serial
stderr=serial
ver=U-Boot 2009.08-00048-ga5d8f06 Meraki MX60 (Oct 14 2011 - 21:30:08)

Environment size: 3653/131067 bytes

Here is the boot log in case it helps in solving the problem.

U-Boot 2009.08-00048-ga5d8f06 Meraki MX60 (Oct 14 2011 - 21:30:08)

CPU:   AMCC PowerPC  UNKNOWN (PVR=12c41c83) at 800 MHz (PLB=200, OPB=100, EBC=100 MHz)
       Bootstrap Option D - Boot ROM Location NAND wo/ECC 2k page (8 bits), booting from NAND
       32 kB I-Cache 32 kB D-Cache
Board: Buckminster - Meraki Buckminster Cloud Managed Router
============================
BoardID: 1 0
Reset Button Status: 1
============================
SDR0_PERCLK=0x40000300
I2C:   ready
DRAM:  512 MB
NAND:  1024 MiB
I2c read: failed 4
I2c read: failed 4
I2c read: failed 4
Net:   ppc_4xx_eth0
Initializing Bluestone Ethernet Port ...
Disabling port 0
Disabling port 1
Disabling port 2
Disabling port 3
ENET Speed is 1000 Mbps - FULL duplex connection (EMAC0)
*** ERROR: ping address not given
RESET is un-pushed

Set serverpath and run meraki_netboot to netboot

Hit any key to stop autoboot:  0
Creating 1 MTD partitions on "nand0":
0x000000240000-0x000040000000 : "mtd=2"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size:   131072 bytes (128 KiB)
UBI: logical eraseblock size:    129024 bytes
UBI: smallest flash I/O unit:    2048
UBI: sub-page size:              512
UBI: VID header offset:          512 (aligned 512)
UBI: data offset:                2048
UBI: attached mtd1 to ubi0
UBI: MTD device name:            "mtd=2"
UBI: MTD device size:            1021 MiB
UBI: number of good PEBs:        8174
UBI: number of bad PEBs:         0
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     5
UBI: available PEBs:             79
UBI: total number of reserved PEBs: 8095
UBI: number of PEBs reserved for bad PEB handling: 81
UBI: max/mean erase counter: 108/97
Volume kernel found at volume id 1
read 0 bytes from volume 1 to 1000000(buf address)
Read [3999744] bytes
UBI: fixable bit-flip detected at PEB 5027
UBI: schedule PEB 5027 for scrubbing
UBI: fixable bit-flip detected at PEB 5029
UBI: schedule PEB 5029 for scrubbing
Unexpected magic number 27051956
Volume recovery found at volume id 0
read 0 bytes from volume 0 to 1000000(buf address)
Read [10579968] bytes
UBI: fixable bit-flip detected at PEB 4430
UBI: schedule PEB 4430 for scrubbing
UBI: fixable bit-flip detected at PEB 4437
UBI: schedule PEB 4437 for scrubbing
UBI: fixable bit-flip detected at PEB 4438
UBI: schedule PEB 4438 for scrubbing
UBI: fixable bit-flip detected at PEB 4614
UBI: schedule PEB 4614 for scrubbing
UBI: fixable bit-flip detected at PEB 4616
UBI: schedule PEB 4616 for scrubbing
UBI: fixable bit-flip detected at PEB 4625
UBI: schedule PEB 4625 for scrubbing
## Booting kernel from Legacy Image at 01000000 ...
   Image Name:    initramfs
   Created:      2024-09-23  12:34:46 UTC
   Image Type:   PowerPC Linux Multi-File Image (gzip compressed)
   Data Size:    7558792 Bytes =  7.2 MB
   Load Address: 00000000
   Entry Point:  00000000
   Contents:
      Image 0: 7538262 Bytes =  7.2 MB
      Image 1: 32 Bytes =  0 kB
      Image 2: 20480 Bytes = 20 kB
   Verifying Checksum ... OK
## Loading init Ramdisk from multi component Legacy Image at 01000000 ...
## Flattened Device Tree from multi component Image at 01000000
   Booting using the fdt at 0x17306c8
   Uncompressing Multi-File Image ... OK
   Loading Ramdisk to 1fb57000, end 1fb57020 ... OK
   Loading Device Tree to 00ff8000, end 00ffffff ... OK
[    0.000000] Activating Kernel Userspace Execution Prevention
[    0.000000] Linux version 5.15.167 (builder@buildhost) (powerpc-openwrt-linux-musl-gcc (OpenWrt GCC 12.3.0 r24106-10cc5fcd00) 12.3.0, GNU ld (GNU Binutils) 2.40.0) #0 Mon Sep 23 12:34:46 2024
[    0.000000] Found initrd at 0xdfb57000:0xdfb57020
[    0.000000] Using PowerPC 44x Platform machine description
[    0.000000] -----------------------------------------------------
[    0.000000] phys_mem_size     = 0x20000000
[    0.000000] dcache_bsize      = 0x20
[    0.000000] icache_bsize      = 0x20
[    0.000000] cpu_features      = 0x0000000000000100
[    0.000000]   possible        = 0x0000000040000100
[    0.000000]   always          = 0x0000000000000100
[    0.000000] cpu_user_features = 0x8c008000 0x00000000
[    0.000000] mmu_features      = 0x00000008
[    0.000000] -----------------------------------------------------
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x000000001fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000001fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000001fffffff]
[    0.000000] MMU: Allocated 1088 bytes of context maps for 255 contexts
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 129920
[    0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs mtdoops.mtddev=oops
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Kernel virtual memory layout:
[    0.000000]   * 0xffbdf000..0xfffff000  : fixmap
[    0.000000]   * 0xe1000000..0xffbdf000  : vmalloc & ioremap
[    0.000000] Memory: 506616K/524288K available (7048K kernel code, 656K rwdata, 912K rodata, 3696K init, 245K bss, 17672K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 512, nr_irqs: 512, preallocated irqs: 16
[    0.000000] UIC0 (32 IRQ sources) at DCR 0xc0
[    0.000000] UIC1 (32 IRQ sources) at DCR 0xd0
[    0.000000] UIC2 (32 IRQ sources) at DCR 0xe0
[    0.000000] UIC3 (32 IRQ sources) at DCR 0xf0
[    0.000009] clocksource: timebase: mask: 0xffffffffffffffff max_cycles: 0xb881274fa3, max_idle_ns: 440795210636 ns
[    0.000034] clocksource: timebase mult[1400000] shift[24] registered
[    0.000243] pid_max: default: 32768 minimum: 301
[    0.000933] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.000979] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.007268] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.007334] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.009110] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.009776] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[    0.010465] thermal_sys: Registered thermal governor 'step_wise'
[    0.010953] 256k L2-cache enabled
[    0.011064] PCIE0: Port disabled via device-tree
[    0.011927] PCI: Probing PCI hardware
[    0.017026] SCSI subsystem initialized
[    0.018586] clocksource: Switched to clocksource timebase
[    0.019616] NET: Registered PF_INET protocol family
[    0.019824] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.020696] tcp_listen_portaddr_hash hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.020745] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.020765] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.020820] TCP bind hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.020870] TCP: Hash tables configured (established 4096 bind 4096)
[    0.020988] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.021022] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.021257] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.021322] PCI: CLS 0 bytes, default 32
[    0.026169] dw_dmac 4bffd0800.dma: DesignWare DMA Controller, 2 channels
[    0.402408] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[    0.406903] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.577920] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    0.579216] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.581016] printk: console [ttyS0] disabled
[    0.581117] 4ef600400.serial: ttyS0 at MMIO 0x4ef600400 (irq = 33, base_baud = 462962) is a TI16750
[    1.500311] printk: console [ttyS0] enabled
[    1.504983] Loading iSCSI transport class v2.0-870.
[    1.511998] nand: device found, Manufacturer ID: 0xec, Chip ID: 0xd3
[    1.518353] nand: Samsung NAND 1GiB 3,3V 8-bit
[    1.522815] nand: 1024 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    1.530466] Scanning device for bad blocks
[    6.352844] Unpacking initramfs...
[    6.373870] 4 fixed-partitions partitions found on MTD device 4e4000000.ndfc.nand
[    6.381409] Creating 4 MTD partitions on "4e4000000.ndfc.nand":
[    6.387310] 0x000000000000-0x000000100000 : "u-boot"
[    6.393764] 0x000000100000-0x000000200000 : "u-boot-env"
[    6.399757] 0x000000200000-0x000000240000 : "oops"
[    6.405959] 0x000000240000-0x000040000000 : "ubi"
[    6.420640] PPC 4xx OCP EMAC driver, version 3.54
[    6.425770] MAL v2 /plb/mcmal, 1 TX channels, 1 RX channels
[    6.431600] RGMII /plb/opb/emac-rgmii@ef601500 initialized with MDIO support
[    6.438792] TAH /plb/opb/emac-tah@ef601350 initialized
[    6.444267] /plb/opb/emac-rgmii@ef601500: input 0 in rgmii mode
[    6.465154] switch0: Atheros AR8327 rev. 2 switch registered on 4ef600c00.ethernet
[    7.113208] eth0: EMAC-0 /plb/opb/ethernet@ef600c00, MAC 00:01:73:01:23:41
[    7.120113] eth0: found Atheros AR8216/AR8236/AR8316 PHY (0x00)
[    7.126251] i2c_dev: i2c /dev entries driver
[    7.130842] ibm-iic 4ef600700.i2c: using standard (100 kHz) mode
[    7.138722] booke_wdt: powerpc book-e watchdog driver loaded
[    7.162332] NET: Registered PF_INET6 protocol family
[    7.169261] Segment Routing with IPv6
[    7.172996] In-situ OAM (IOAM) with IPv6
[    7.176994] NET: Registered PF_PACKET protocol family
[    7.182118] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    7.195186] 8021q: 802.1Q VLAN Support v1.8
[    7.199455] drmem: No dynamic reconfiguration memory found
[    7.207830] UBI: auto-attach mtd3
[    7.211194] ubi0: attaching mtd3
[    9.342895] ubi0: scanning is finished
[    9.367083] ubi0: attached mtd3 (name "ubi", size 1021 MiB)
[    9.372712] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes
[    9.379576] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 512
[    9.386255] ubi0: VID header offset: 512 (aligned 512), data offset: 2048
[    9.393031] ubi0: good PEBs: 8174, bad PEBs: 0, corrupted PEBs: 0
[    9.399108] ubi0: user volume: 5, internal volumes: 1, max. volumes count: 128
[    9.406300] ubi0: max/mean erase counter: 108/97, WL threshold: 4096, image sequence number: 274434990
[    9.415575] ubi0: available PEBs: 0, total reserved PEBs: 8174, PEBs reserved for bad PEB handling: 160
[    9.425002] ubi0: background thread "ubi_bgt0d" started, PID 210
[    9.432583] block ubiblock0_3: created from ubi0:3(rootfs)
[    9.438216] clk: Disabling unused clocks
[    9.460941] Freeing unused kernel image (initmem) memory: 3696K
[    9.466878] This architecture does not have kernel memory protection.
[    9.473357] Run /init as init process
[    9.907961] init: Console is alive
[    9.911806] init: - watchdog -
[    9.923531] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    9.932947] gpio-keys plb:opb:keys: skipping button Reset button (only gpio buttons supported)
[    9.947647] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    9.965348] init: - preinit -
ip: SIOCSIFHWADDR: Address not available
[   10.125512] eth0: link is up, 1000 FDX
[   10.155667] random: procd: uninitialized urandom read (4 bytes read)
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[   12.290436] procd: - early -
[   12.293492] procd: - watchdog -
[   12.869001] procd: - watchdog -
[   12.872430] procd: - ubus -
[   12.880981] random: ubusd: uninitialized urandom read (4 bytes read)
[   12.925643] random: ubusd: uninitialized urandom read (4 bytes read)
[   12.932390] random: ubusd: uninitialized urandom read (4 bytes read)
[   12.941173] procd: - init -
Please press Enter to activate this console.
[   13.364881] kmodloader: loading kernel modules from /etc/modules.d/*
[   13.431291] Loading modules backported from Linux version v6.1.110-0-g5f55cad62cc9d
[   13.438984] Backport generated by backports.git v6.1.110-1-0-g965f73fc
[   13.645440] PPP generic driver version 2.4.2
[   13.659255] NET: Registered PF_PPPOX protocol family
[   13.728908] kmodloader: done loading kernel modules from /etc/modules.d/*
[   14.505717] urngd: v1.0.2 started.
[   15.012183] random: jshn: uninitialized urandom read (4 bytes read)
[   15.166121] random: jshn: uninitialized urandom read (4 bytes read)
[   15.502405] random: jshn: uninitialized urandom read (4 bytes read)
[   15.978859] random: crng init done
[   15.982285] random: 24 urandom warning(s) missed due to ratelimiting
[   25.848787] Atheros AR8216/AR8236/AR8316 4ef600c00.ethernet:00: Port 1 is up
[   35.704068] eth0: link is up, 1000 FDX
[   35.747024] br-lan: port 1(eth0.1) entered blocking state
[   35.752487] br-lan: port 1(eth0.1) entered disabled state
[   35.758152] device eth0.1 entered promiscuous mode
[   35.762968] device eth0 entered promiscuous mode
[   35.877915] br-lan: port 1(eth0.1) entered blocking state
[   35.883373] br-lan: port 1(eth0.1) entered forwarding state
[   36.729173] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready

Is there anybody help me?

I think I had the same error. I read the output of ubinfo and (after backing up all blocks via the initramfs live image to my computer) I decided that the likely ubi volumes from the old OS were the ones labelled kernel, rootfs recovery and rootfs_data and those were probably not needed so I removed those.
Then I was able to create a new recovery ubi volume with the initramfs for recovery and run the sysupgrade.

1 Like

Hello, just to say I had the same problem. Solved it by using an old firmware combination, whuch uses "tar" file extention for sysupgrade file. I used "openwrt-18.06.4-apm821xx-nand-meraki_mx60-squashfs-sysupgrade.tar" . for "openwrt-18.06.4-apm821xx-nand-meraki_mx60-initramfs-kernel.bin". Worked like a charm. Before that I tried number of newer versions, where sysupgrade has a bin extention and always booting from the newly flashed sysupgrade.bin failed with something like: xz decompression failed". It seems to me, that MX60W has a problem to decompress in right manner the sysupgrade.bin file and write it down as new firmware. I noticed, that if you take the sysupgrade.bin file in 7zip windows program and unzip it, you see three files: CONTROL. Kernel and Root. Than you could add them to an archive with "tar" extention. Thus you will get a sysupgrade.tar archive file, instead of sysupgrade.bin compressed archive. You may try to use it for upgrade. I haven't tryed this yet, because my router works just fine with the old firmware. Please set us know if this worked, if you would try it. Cheers.

Thank you so much for sharing your experience. I wish you had shared this suggestion 1 month ago :slight_smile: I think I broke the device while tinkering to find a solution and I am sure I need a nand programmer to recover it. I may ask for help again as soon as I solve this problem :slight_smile:

I am so sorry your device broke down. What are the sympthoms? Doesn't boot when powered? Hope you fix it, or even find one cheap on ebay. I will be happy to help with openwrt flashing. Cheers.

Just FYI to both posters @Miro1 and @asuz. The original instructions required a serial cable. Have you checked the output of the bootloader?

Hello, is there anybody have full dump of the nand ? I mess it up and need to reprogram

This user may have one readily available:

@asuz I believe that the u-boot of meraki mx60 is enough for you:

This is gzipped u-boot region of meraki mx60, with sha256 0d2b18e693a396240ab75f9b81f1cf5bba36515a4f87812bdba58674d076e823 meraki-mx60-u-boot.rom.gz

1 Like

This time, I broke my own record and rendered the device unusable, so I think the only solution is to reprogram the nand. I can't even access uboot from console pins.