OpenWrt support for Linksys MX4200

Did you install OpenWrt on both partitions before sysupgrading: https://github.com/openwrt/openwrt/pull/13432 ?
After 3 failed starts you should be switched back to your previous partition.

This router has 2 independent rootfs_data partitions, you lose your settings after installation. There is a PR allowing installation on the current partition: https://github.com/openwrt/openwrt/pull/14720

1 Like

ok so 3 failed boots seems to get it to come back (although no indication of what it is or isnt doing). Could see previous as had console cable connected but this unit hasnt even been opened.
I can only presume to v2 snapshot isnt ok as had tried sysupgrade without saving config, yet when it finally came back it was still with the previous config and still on OpenWrt SNAPSHOT r24632-82670f94b4
I had only ever flashed 1 partition so am a little unsure as to why it didnt reboot with stock firmware (unless each flashing process alternates the partition and in which case I have killed the 2nd partition which was stock and it reverts back to the last working)

So now check the current partition:

fw_printenv -n boot_part

and install OpenWrt on the second one using this command:

mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4200v2-squashfs-factory.bin alt_kernel

or

mtd -r -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4200v2-squashfs-factory.bin kernel

You can also modify bootcmd to be able to start initramfs image from USB:

w_setenv bootusb 'usb start && usbboot $loadaddr 0 && bootm $loadaddr'
w_setenv bootcmd 'run bootusb; if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi'

USB preparation:

dd bs=1M if=openwrt-qualcommax-ipq807x-linksys_mx4200v2-initramfs-uImage.itb of=/dev/sda

Hey guys, I have a linksys provided router by my isp (community fibre in London) and I would like to know what version of the mx4200 I have (if I have that version at all). How can I know this?
image
This is all it says in my firmware update page.

Edit: it was on the bottom of my router. It says the model number is: SPNMX42
Is this the same as an mx4200? and if it is, what version would it be? v1 or v2

Edit 2: did a little more research and the SPNMX42 is the same as an MX4200 V2. not sure 100% but saw this on another forum and can link it if requested

ok, researched a bit more and actually read this forum.

what should I do to install openwrt on my router? should I use snapshot build or use the other build 25.03? can someone give me a short guide on what to do

should I just wait until openwrt supports it on the stable branch?

So it was definitely dead !

Format: Log Type - Time(microsec) - Message - Optional Info
Log Type: B - Since Boot(Power On Reset),  D - Delta,  S - Statistic
S - QC_IMAGE_VERSION_STRING=BOOT.BF.3.3.1-00163
S - IMAGE_VARIANT_STRING=HAACANAZA
S - OEM_IMAGE_VERSION_STRING=CRM
S - Boot Config, 0x000002e5
B -       203 - PBL, Start
B -      2740 - bootable_media_detect_entry, Start
B -      3448 - bootable_media_detect_success, Start
B -      3453 - elf_loader_entry, Start
B -      6120 - auth_hash_seg_entry, Start
B -      6363 - auth_hash_seg_exit, Start
B -     68336 - elf_segs_hash_verify_entry, Start
B -    131192 - PBL, End
B -    144478 - SBL1, Start
B -    197213 - GCC [RstStat:0x10, RstDbg:0x600000] WDog Stat : 0x4
B -    203770 - pm_device_init, Start
B -    326746 - PM_SET_VAL:Skip
D -    122488 - pm_device_init, Delta
B -    329156 - pm_driver_init, Start
D -      5337 - pm_driver_init, Delta
B -    335530 - clock_init, Start
D -      2135 - clock_init, Delta
B -    339495 - boot_flash_init, Start
D -     13298 - boot_flash_init, Delta
B -    356545 - boot_config_data_table_init, Start
D -      3233 - boot_config_data_table_init, Delta - (575 Bytes)
B -    363987 - Boot Setting :  0x00000618
B -    367921 - CDT version:2,Platform ID:8,Major ID:1,Minor ID:0,Subtype:13
B -    374967 - sbl1_ddr_set_params, Start
B -    378688 - CPR configuration: 0x30c
B -    382165 - cpr_init, Start
B -    384940 - Rail:0 Mode: 5 Voltage: 800000
B -    390217 - CL CPR settled at 752000mV
B -    393023 - Rail:1 Mode: 5 Voltage: 880000
B -    397201 - Rail:1 Mode: 7 Voltage: 888000
D -     16561 - cpr_init, Delta
B -    404094 - Pre_DDR_clock_init, Start
B -    408120 - Pre_DDR_clock_init, End
B -    411414 - DDR Type : PCDDR4
B -    418155 - do ddr sanity test, Start
D -      1067 - do ddr sanity test, Delta
B -    421937 - DDR: Start of HAL DDR Boot Training
B -    426603 - DDR: End of HAL DDR Boot Training
B -    432368 - DDR: Checksum to be stored on flash is 627526504
B -    442585 - Image Load, Start
D -    225548 - QSEE Image Loaded, Delta - (1377492 Bytes)
B -    668194 - Image Load, Start
D -        61 - SEC Image Loaded, Delta - (0 Bytes)
B -    675880 - Image Load, Start
D -     10736 - DEVCFG Image Loaded, Delta - (26221 Bytes)
B -    686707 - Image Load, Start
D -     22113 - RPM Image Loaded, Delta - (86660 Bytes)
B -    708911 - Image Load, Start
D -     93086 - APPSBL Image Loaded, Delta - (569730 Bytes)
B -    802119 - QSEE Execution, Start
D -        61 - QSEE Execution, Delta
B -    807945 - USB D+ check, Start
D -         0 - USB D+ check, Delta
B -    814319 - SBL1, End
D -    672159 - SBL1, Delta
S - Flash Throughput, 6681 KB/s  (2061350 Bytes,  308502 us)
S - DDR Frequency, 600 MHz
S - Core 0 Frequency, 800 MHz


U-Boot 2016.01 (Jun 01 2022 - 14:28:34 +0800)

GMTK U-Boot ver: 1.0.03  ([IPQ8174].[SPF11.5].[ED])

DRAM:  smem ram ptable found: ver: 1 len: 4
1 GiB
NAND:  Could not find nand_gpio in dts, using defaults
ONFI device found
ID = 1590acad
Vendor = ad
Device = ac
qpic_nand: changing oobsize to 64 from 128 bytes
SF: Unsupported flash IDs: manuf ff, jedec ffff, ext_jedec ffff
ipq_spi: SPI Flash not found (bus/cs/speed/mode) = (0/0/48000000/0)
512 MiB
MMC:   <NULL>: 0
In:    serial@78B3000
Out:   serial@78B3000
Err:   serial@78B3000
machid: 801000d
Card did not respond to voltage select!
eth0 MAC Address from ART is not valid
eth1 MAC Address from ART is not valid
eth2 MAC Address from ART is not valid
eth3 MAC Address from ART is not valid
eth4 MAC Address from ART is not valid
eth5 MAC Address from ART is not valid
Setting bus to 0
Valid chip addresses: 58
Hit any key to stop autoboot:  0

MX4200v2 boot_ver=[1.0.03]
#### auto_recovery ####
enabled:yes, boot_part:1, boot_part_ready:3
boot count        : 3
next record       : 42
***WARNING: BOOT_COUNT_TO_RECOVERY
update boot_count to 1...OK
Saving Environment to NAND...
Erasing NAND...
Erasing at 0x1020000 -- 100% complete.
Writing to NAND... OK
#### auto_recovery: boot_part=[2] ####

NAND read: device 0 offset 0xa680000, size 0x600000
 6291456 bytes read: OK
## Loading kernel from FIT Image at 44000000 ...
   Using 'config@1' configuration
   Trying 'kernel-1' kernel subimage
     Description:  ARM64 OpenWrt Linux-6.6.23
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x440000e8
     Data Size:    5247089 Bytes = 5 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x41000000
     Entry Point:  0x41000000
     Hash algo:    crc32
     Hash value:   80f2dae2
     Hash algo:    sha1
     Hash value:   8bc38c68581e2a7d7df5eb8a77b1c2bf42f4b969
   Verifying Hash Integrity ... crc32+ sha1+ OK
## Loading fdt from FIT Image at 44000000 ...
   Using 'config@1' configuration
   Trying 'fdt-1' fdt subimage
     Description:  ARM64 OpenWrt linksys_mx4200v2 device tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x4450129c
     Data Size:    45625 Bytes = 44.6 KiB
     Architecture: AArch64
     Hash algo:    crc32
     Hash value:   014ce620
     Hash algo:    sha1
     Hash value:   3dfea8f62713a5b8732969786a0170f449508573
   Verifying Hash Integrity ... crc32+ sha1+ OK
   Booting using the fdt blob at 0x4450129c
   Uncompressing Kernel Image ... OK
   Loading Device Tree to 4a3f1000, end 4a3ff238 ... OK
Using machid 0x801000d from environment

Starting kernel ...

Jumping to AARCH64 kernel via monitor
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 6.6.23 (builder@buildhost) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 13.2.0 r25735-004c853019) 13.2.0, GNU ld (GNU Binutils) 2.40.0) #0 SMP Tue Apr  2 14:19:39 2024
[    0.000000] Machine model: Linksys MX4200v2
[    0.000000] OF: reserved mem: 0x0000000040000000..0x0000000040ffffff (16384 KiB) nomap non-reusable nss@40000000
[    0.000000] OF: reserved mem: 0x000000004a400000..0x000000004a5fffff (2048 KiB) nomap non-reusable tzapp@4a400000
[    0.000000] OF: reserved mem: 0x000000004a600000..0x000000004a9fffff (4096 KiB) nomap non-reusable bootloader@4a600000
[    0.000000] OF: reserved mem: 0x000000004aa00000..0x000000004aafffff (1024 KiB) nomap non-reusable sbl@4aa00000
[    0.000000] OF: reserved mem: 0x000000004ab00000..0x000000004abfffff (1024 KiB) nomap non-reusable smem@4ab00000
[    0.000000] OF: reserved mem: 0x000000004ac00000..0x000000004affffff (4096 KiB) nomap non-reusable memory@4ac00000
[    0.000000] OF: reserved mem: 0x000000004b000000..0x0000000050efffff (97280 KiB) nomap non-reusable wcnss@4b000000
[    0.000000] OF: reserved mem: 0x0000000050f00000..0x0000000050ffffff (1024 KiB) nomap non-reusable q6_etr_dump@50f00000
[    0.000000] OF: reserved mem: 0x0000000051000000..0x00000000510fffff (1024 KiB) nomap non-reusable m3_dump@51000000
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000040000000-0x000000007fffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x0000000040ffffff]
[    0.000000]   node   0: [mem 0x0000000041000000-0x000000004a3fffff]
[    0.000000]   node   0: [mem 0x000000004a400000-0x00000000510fffff]
[    0.000000]   node   0: [mem 0x0000000051100000-0x000000007fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000007fffffff]
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.0
[    0.000000] percpu: Embedded 18 pages/cpu s35752 r8192 d29784 u73728
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] alternatives: applying boot alternatives
[    0.000000] Kernel command line: init=/sbin/init rootfstype=squashfs ubi.mtd=24,2048 ubi.block=0,0 root=/dev/ubiblock0_0 rootwait ro mtdparts=qcom_nand.0:0x100000@0x0(0:SBL1),0x100000@0x100000(0:MIBIB),0x80000@0x200000(0:BOOTCONFIG),0x80000@0x280000(0:BOOTCONFIG1),0x300000@0x300000(0:QSEE),0x300000@0x600000(0:QSEE_1),0x80000@0x900000(0:DEVCFG),0x80000@0x980000(0:DEVCFG_1),0x80000@0xa00000(0:APDP),0x80000@0xa80000(0:APDP_1),0x80000@0xb00000(0:RPM),0x80000@0xb80000(0:RPM_1),0x80000@0xc00000(0:CDT),0x80000@0xc80000(0:CDT_1),0x80000@0xd00000(0:APPSBLENV),0x100000@0xd80000(0:APPSBL),0x100000@0xe80000(0:APPSBL_1),0x80000@0xf80000(0:ART),0x40000@0x1000000(u_env),0x20000@0x1040000(s_env),0x20000@0x1060000(devinfo),0x9600000@0x1080000(kernel),0x9000000@0x1680000(rootfs),0x9600000@0xa680000(alt_kernel),0x9000000@0xac80000(alt_rootfs),0x200000@0x13c80000(sysdiag),0x80000@0x13e80000(0:ETHPHYFW),0xb800000@0x13f00000(syscfg),0x900000@0x1f700000(0:WIFIFW) root=/dev/ubiblock0_0
[    0.000000] Unknown kernel command line parameters "mtdparts=qcom_nand.0:0x100000@0x0(0:SBL1),0x100000@0x100000(0:MIBIB),0x80000@0x200000(0:BOOTCONFIG),0x80000@0x280000(0:BOOTCONFIG1),0x300000@0x300000(0:QSEE),0x300000@0x600000(0:QSEE_1),0x80000@0x900000(0:DEVCFG),0x80000@0x980000(0:DEVCFG_1),0x80000@0xa00000(0:APDP),0x80000@0xa80000(0:APDP_1),0x80000@0xb00000(0:RPM),0x80000@0xb80000(0:RPM_1),0x80000@0xc00000(0:CDT),0x80000@0xc80000(0:CDT_1),0x80000@0xd00000(0:APPSBLENV),0x100000@0xd80000(0:APPSBL),0x100000@0xe80000(0:APPSBL_1),0x80000@0xf80000(0:ART),0x40000@0x1000000(u_env),0x20000@0x1040000(s_env),0x20000@0x1060000(devinfo),0x9600000@0x1080000(kernel),0x9000000@0x1680000(rootfs),0x9600000@0xa680000(alt_kernel),0x9000000@0xac80000(alt_rootfs),0x200000@0x13c80000(sysdiag),0x80000@0x13e80000(0:ETHPHYFW),0xb800000@0x13f00000(syscfg),0x900000@0x1f700000(0:WIFIFW)", will be passed to user space.
[    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 258048
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: area num 4.
[    0.000000] software IO TLB: mapped [mem 0x000000007ac00000-0x000000007ec00000] (64MB)
[    0.000000] Memory: 820364K/1048576K available (8256K kernel code, 894K rwdata, 2500K rodata, 1472K init, 290K bss, 228212K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] workqueue: name exceeds WQ_NAME_LEN. Truncating to: events_freezable_power_efficien
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv2m: range[mem 0x0b00a000-0x0b00affc], SPI[448:479]
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 and mmio timer(s) running at 19.20MHz (virt/virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[    0.000000] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[    0.000104] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000)
[    0.000117] pid_max: default: 32768 minimum: 301
[    0.005126] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.005140] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.009452] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1.
[    0.009680] rcu: Hierarchical SRCU implementation.
[    0.009685] rcu:     Max phase no-delay instances is 1000.
[    0.010594] smp: Bringing up secondary CPUs ...
[    0.011255] Detected VIPT I-cache on CPU1
[    0.011358] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.012023] Detected VIPT I-cache on CPU2
[    0.012093] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.012748] Detected VIPT I-cache on CPU3
[    0.012813] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.012882] smp: Brought up 1 node, 4 CPUs
[    0.012890] SMP: Total of 4 processors activated.
[    0.012896] CPU features: detected: 32-bit EL0 Support
[    0.012900] CPU features: detected: CRC32 instructions
[    0.012967] CPU features: emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching
[    0.012974] CPU: All CPU(s) started at EL1
[    0.012977] alternatives: applying system-wide alternatives
[    0.023560] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.023585] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.025310] pinctrl core: initialized pinctrl subsystem
[    0.027141] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.027768] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[    0.027811] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.027845] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.028241] thermal_sys: Registered thermal governor 'step_wise'
[    0.028299] cpuidle: using governor menu
[    0.028552] ASID allocator initialised with 65536 entries
[    0.054569] qcom,cpr4-apss-regulator b018000.cpr4-ctrl: CPR valid fuse count: 4
[    0.056842] Modules: 29376 pages in range for non-PLT usage
[    0.056850] Modules: 520896 pages in range for PLT usage
[    0.060078] SCSI subsystem initialized
[    0.060284] usbcore: registered new interface driver usbfs
[    0.060332] usbcore: registered new interface driver hub
[    0.060382] usbcore: registered new device driver usb
[    0.060791] qcom_scm: convention: smc arm 64
[    0.062584] clocksource: Switched to clocksource arch_sys_counter
[    0.066535] NET: Registered PF_INET protocol family
[    0.066699] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.069668] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)
[    0.069691] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.069707] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.069793] TCP bind hash table entries: 8192 (order: 6, 262144 bytes, linear)
[    0.070067] TCP: Hash tables configured (established 8192 bind 8192)
[    0.070168] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.070219] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.070761] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.070802] PCI: CLS 0 bytes, default 64
[    0.072447] workingset: timestamp_bits=46 max_order=18 bucket_order=0
[    0.073257] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.073265] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.077096] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[    0.079355] qcom-qmp-usb-phy 78000.phy: supply vdda-phy not found, using dummy regulator
[    0.079513] qcom-qmp-usb-phy 78000.phy: supply vdda-pll not found, using dummy regulator
[    0.080731] qcom-qusb2-phy 79000.phy: supply vdd not found, using dummy regulator
[    0.080878] qcom-qusb2-phy 79000.phy: supply vdda-pll not found, using dummy regulator
[    0.080921] qcom-qusb2-phy 79000.phy: supply vdda-phy-dpdm not found, using dummy regulator
[    0.081080] qcom-qusb2-phy 79000.phy: Registered Qcom-QUSB2 phy
[    0.089227] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.093168] msm_serial 78b1000.serial: msm_serial: detected port #1
[    0.093210] msm_serial 78b1000.serial: uartclk = 19200000
[    0.093533] 78b1000.serial: ttyMSM1 at MMIO 0x78b1000 (irq = 20, base_baud = 1200000) is a MSM
[    0.094014] msm_serial 78b3000.serial: msm_serial: detected port #0
[    0.094047] msm_serial 78b3000.serial: uartclk = 3686400
[    0.094362] 78b3000.serial: ttyMSM0 at MMIO 0x78b3000 (irq = 21, base_baud = 230400) is a MSM
[    0.094398] msm_serial: console setup on port #0
[    0.094438] printk: console [ttyMSM0] enabled
[    1.040387] msm_serial: driver initialized
[    1.049615] loop: module loaded
[    1.051229] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xac
[    1.051572] nand: Hynix NAND 512MiB 1,8V 8-bit
[    1.058187] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    1.063274] 29 fixed-partitions partitions found on MTD device qcom_nand.0
[    1.069987] Creating 29 MTD partitions on "qcom_nand.0":
[    1.076846] 0x000000000000-0x000000100000 : "0:sbl1"
[    1.083907] 0x000000100000-0x000000200000 : "0:mibib"
[    1.088719] 0x000000200000-0x000000280000 : "0:bootconfig"
[    1.093463] 0x000000280000-0x000000300000 : "0:bootconfig1"
[    1.098593] 0x000000300000-0x000000600000 : "0:qsee"
[    1.106652] 0x000000600000-0x000000900000 : "0:qsee_1"
[    1.111567] 0x000000900000-0x000000980000 : "0:devcfg"
[    1.114222] 0x000000980000-0x000000a00000 : "0:devcfg_1"
[    1.119307] 0x000000a00000-0x000000a80000 : "0:apdp"
[    1.124805] 0x000000a80000-0x000000b00000 : "0:apdp_1"
[    1.129696] 0x000000b00000-0x000000b80000 : "0:rpm"
[    1.134710] 0x000000b80000-0x000000c00000 : "0:rpm_1"
[    1.139424] 0x000000c00000-0x000000c80000 : "0:cdt"
[    1.144677] 0x000000c80000-0x000000d00000 : "0:cdt_1"
[    1.149340] 0x000000d00000-0x000000d80000 : "0:appsblenv"
[    1.154600] 0x000000d80000-0x000000e80000 : "0:appsbl"
[    1.160400] 0x000000e80000-0x000000f80000 : "0:appsbl_1"
[    1.165530] 0x000000f80000-0x000001000000 : "0:art"
[    1.170400] 0x000001000000-0x000001040000 : "u_env"
[    1.174856] 0x000001040000-0x000001060000 : "s_env"
[    1.179550] 0x000001060000-0x000001080000 : "devinfo"
[    1.184467] 0x000001080000-0x00000a680000 : "kernel"
[    1.331705] 0x000001680000-0x00000a680000 : "rootfs"
[    1.468235] mtd: setting mtd22 (rootfs) as root device
[    1.468612] mtdsplit: no squashfs found in "rootfs"
[    1.472279] 0x00000a680000-0x000013c80000 : "alt_kernel"
[    1.619318] 0x00000ac80000-0x000013c80000 : "alt_rootfs"
[    1.755947] 0x000013c80000-0x000013e80000 : "sysdiag"
[    1.758348] 0x000013e80000-0x000013f00000 : "0:ethphyfw"
[    1.760911] 0x000013f00000-0x00001f700000 : "syscfg"
[    1.939900] 0x00001f700000-0x000020000000 : "0:wififw"
[    1.959477] spmi spmi-0: PMIC arbiter version v2 (0x20010000)
[    1.978066] i2c_dev: i2c /dev entries driver
[    1.985279] sdhci: Secure Digital Host Controller Interface driver
[    1.985323] sdhci: Copyright(c) Pierre Ossman
[    1.990357] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.996567] remoteproc remoteproc0: releasing cd00000.q6v5_wcss
[    2.003075] NET: Registered PF_INET6 protocol family
[    2.007104] Segment Routing with IPv6
[    2.011391] In-situ OAM (IOAM) with IPv6
[    2.015063] NET: Registered PF_PACKET protocol family
[    2.018961] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    2.024040] 8021q: 802.1Q VLAN Support v1.8
[    2.064779] qcom,cpr4-apss-regulator b018000.cpr4-ctrl: CPR valid fuse count: 4
[    2.065153] cpr4_ipq807x_apss_read_fuse_data: apc_corner: speed bin = 0
[    2.070907] cpr4_ipq807x_apss_read_fuse_data: apc_corner: CPR fusing revision = 1
[    2.077568] cpr4_ipq807x_apss_read_fuse_data: apc_corner: CPR misc fuse value = 0
[    2.085189] cpr4_ipq807x_apss_read_fuse_data: apc_corner: Voltage boost fuse config = 0 boost = disable
[    2.092698] cpr3_mem_acc_init: apc: not using memory accelerator regulator
[    2.101809] cpr4_ipq807x_apss_calculate_open_loop_voltages: apc_corner: fused      SVS: open-loop= 704000 uV
[    2.108788] cpr4_ipq807x_apss_calculate_open_loop_voltages: apc_corner: fused      NOM: open-loop= 808000 uV
[    2.118771] cpr4_ipq807x_apss_calculate_open_loop_voltages: apc_corner: fused    TURBO: open-loop= 864000 uV
[    2.128574] cpr4_ipq807x_apss_calculate_open_loop_voltages: apc_corner: fused   STURBO: open-loop= 944000 uV
[    2.138436] cpr4_ipq807x_apss_calculate_target_quotients: apc_corner: fused      SVS: quot[ 7]= 743, quot_offset[ 7]=   0
[    2.148196] cpr4_ipq807x_apss_calculate_target_quotients: apc_corner: fused      NOM: quot[ 7]= 945, quot_offset[ 7]= 200
[    2.159046] cpr4_ipq807x_apss_calculate_target_quotients: apc_corner: fused    TURBO: quot[ 7]=1042, quot_offset[ 7]=  95
[    2.169980] cpr4_ipq807x_apss_calculate_target_quotients: apc_corner: fused   STURBO: quot[ 7]=1192, quot_offset[ 7]= 150
[    2.181128] cpr3_regulator_init_ctrl: apc: Default CPR mode = closed-loop
[    2.183985] cpufreq: cpufreq_online: CPU0: Running at unlisted initial frequency: 800000 KHz, changing to: 1017600 KHz
[    2.200568] remoteproc remoteproc0: cd00000.q6v5_wcss is available
[    2.209629] ubi0: attaching mtd24
[    2.432843] ubi0 error: ubi_attach: bad image sequence number 1702401277 in PEB 474, expected 1712067579
[    2.432900] Erase counter header dump:
[    2.441399]  magic          0x55424923
[    2.444972]  version        1
[    2.448690]  ec             2
[    2.451727]  vid_hdr_offset 2048
[    2.454688]  data_offset    4096
[    2.457978]  image_seq      1702401277
[    2.461191]  hdr_crc        0xe1d85afc
[    2.464756] erase counter header hexdump:
[    2.468600] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd24, error -22
[    2.472602] UBI error: cannot attach m▒[    2.484380] Waiting for root device /dev/ubiblock0_0...
[   33.112621] l11: disabling

looking at the various mtd strings doing the rounds I wondered if when flashing with mtd, the intention is to flash the current boot image or the alternative one ?

I effectively flashed the kernel and alt_kernal on my stock v2 mx4200 and after some swearing and 3 x power cycle with failed boot it switched and I get a vanilla install = ok working.

I repeated this on my already flashed v2 and got the above boot error. After even more swearing nad opening and resoldering console cable, I can see mtd24 isnt booting which is what @SpectreDev was reporting ~ September last year (unsure how this got resolved). Clearly my v old image had issues with sysupgrade / flashing.
What I didnt twig, was that there are 2 fixes to switch partition (maybe depending on what you are running ? unsure). Instead of 3 x failed boots and then swap, there is also power cycle within 5 seconds.
Low and behold this now booted (again to vanilla).

Now with the current snapshot - do we have a valid upgrade path or do we have to deviate to stock on the backup partition and then flash openwrt over it to function ?

I believe there are some differences with 25.03 preventing a full upgrade - other are far better positioned to comment though.
Regarding getting to snapshot

If you have an isp locked mx4200 (seems most are) you need to de-isp it by flashing the MX4200_v1.0.12.209581 to it first
Then you can jump to generic v2 mx4200 (I used FW_MX4200_2.0.6.211172_prod.img)
Then you can flash snapshot (openwrt-qualcommax-ipq807x-linksys_mx4200v2-squashfs-factory.bin)

thanks, i saw u needed to go to retail firmware. do you know if the snapshot is daily drivable and does anyone know when mx4200 is coming out with official support? also, if I ever need to send the router back is there a way I can rollback to the isp provided firmware?

daily drivable - yes. I had been running a very beta firmware with uptime of 100+ days without issue. If you want all singing and dancing features and pushing performance boundaries then I would say not.

If you want to 100% keep warranty status then any firmware which isnt the isp locked one (if thats what you likely have) would technically invalidate it and if they REALLY wanted to check they could probably tell (that said that is probably quite unlikely).
From memory (I haveny actually gone looking), ISP locked versions of the firmware arent readily available - there was some discussion about pulling them from the router but dont know if that worked.

It seems to me that your problem is caused by sysupgrading the partition with the OEM firmware (without first wiping the partition and installing the OpenWrt image via mtd).

1 Like

Can't you make 2 partitions? 1 with my isp firmware and 1 with OpenWrt installed? And then when I want to switch can I just ssh into OpenWrt and boot into the other partition somehow? if I could do this, it would be the thing that gives me 100% assurance that I can use openwrt.

yes that is how modern Linksys devices work. (either 3 failed boots - naturally or power cycling / power cycling during first 5 seconds of bootup) will toggle the primary / backup partition.

so now seeing the same 5dbm power issues others are reporting with current snapshot build (have a suspicion this wasn't the case previously as lad had recently starting whinging about wifi signal upstairs). All radios set to GB all showing 5dbm.
2 x ap - both v2 one recently converted fros tock, ther other been running for a while.
I have seen interesting issues on the one recently flashed from stock as radio2 wasnt playing.(would see it but wouldnt connect). one previously on openwrt had working radio2 fine - assume this is due to it being setup previously ?
Any advice on tweaking bdf's on current build for better tx power ?

Fix is already prepared: OpenWrt support for Linksys MX4200 - #732 by lytr

reading that, the fix is for the regdomain to be patched thus ignoring what's set in pre cal data and using what is set in Luci instead.
I presume, this will filter into the snapshot at some point ?

Is there any process to incorporate this into a current image or just have to wait until the next snapshot is available with it ?

You can build the image yourself or modify the files manually (these are just scripts).

having read up and messed quite a bit today, currently have something which seems ok following your 3191136 build.

Interesting this was that system path were slightly different and needed tweaking (kept old config)

snaptshot shows
option path 'platform/soc@0/c000000.wifi'

your build shows
option path 'platform/soc/c000000.wifi'

running 2 Ap- 1 with snaptshot one with yours and will compare. no idea how but snatshot one is running radio 2 still too :slight_smile:

interesting observation, 5ghz radios for both channels are now up, however they took ages (5 min or longer) to come online.
Signal is miles more too.
looking at inssider, have snapshot ap in front of me on lest signal than your build ~ 20 foot away on other side of house.

Snapshot is using kernel 6.6 now. Hence this change.

You can try this new build: https://github.com/testuser7/openwrt/releases/tag/qualcommax-6bf3c56

1 Like