You have a larger nand and a different partition layout:

  • MX4200:
[    0.869707] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xac
[    0.874593] nand: ONFI 10-Compliant Hynix H27S4G8F2EDA-BC
[    0.881172] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 128
[    0.886603] 29 ofpart partitions found on MTD device qcom_nand.0
  • MX4300:
[    0.869443] nand: device found, Manufacturer ID: 0x01, Chip ID: 0xa3
[    0.874331] nand: ONFI 10-Compliant AMD/Spansion S34MS08G2
[    0.880954] nand: 1024 MiB, SLC, erase size: 256 KiB, page size: 4096, OOB size: 256
[    0.886367] 32 ofpart partitions found on MTD device qcom_nand.0

Try booting the initramfs image.

And you have a 2GB RAM:

[    0.000000] Memory: 1983284K/2009088K available (5217K kernel code, 311K rwdata, 1772K rodata, 264K init, 362K bss, 25804K reserved, 0K cma-reserved, 245760K highmem)

What is the likelihood of OpenWRT being able to run on these LN1301 (MX4300) variants based on the above serial output ? Likely ?

If you have serial access than you can try to start MX4200v2 initramfs image. You can do that from USB:

usb start
usbboot $loadaddr 0
bootm $loadaddr

USB preparation:

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

MX4200v2 and MX4300 use exactly the same BDF files.

I have prepared a test build for MX4300: https://github.com/testuser7/openwrt/releases/tag/qualcommax-b7a04fd

The build has not been tested, I do not have such a device.
It is best to check it works on the initramfs image (WiFi should work).

2 Likes

Would a donation of a new Linksys LN1301 help? if so how do i donate?

Hello @lytr.

I do not have one of these LN1301 / MX4300 devices, and I'm not savvy enough to attempt serial connection either. I asked because this device is getting a lot of traction on deal sites in USA because of the unusually low price (probably clearance sale due to eventual EOL but idk tbh) and seems to be very similar to the hardware specs of MX4200.

Booting initramfs with USB works, but flashing squashfs-factory.bin does not work.

Initramfs log: https://gist.github.com/jzjsuper/2f4173b35fec29658dc0964de7a3f821 (opkg failed because it was not connected to the Internet)
squashfs-factory log: https://gist.github.com/jzjsuper/7236708ae7a991931123ab1ef6f2f4cb

Can you check from initramfs if MAC addresses for LAN/WAN/WiFi are correct (similar to that one on the sticker)?

Yes, the mac address in wan is the one on the bottom sticker of the router.

There is a new build: https://github.com/testuser7/openwrt/releases/tag/qualcommax-671ce50
If you want to install this build from initramfs than you need to use mtd not sysupgrade: https://openwrt.org/toh/linksys/mx4200_v1_and_v2#mtd

Addresses for lan2 and lan3 need to be corrected.
What about WiFi? You can just change disabled to 0 in /etc/config/wireless and run wifi command.

Does fw_printenv works?

initramfs still works and squashfs-factory still doesn't work. I tried to install with both OEM firmware and mtd and the results seem to be the same.
Boot log for new initramfs: https://gist.github.com/jzjsuper/3e96f7446eeb5b246cf652b6ea19fec9
Boot log for new squashfs-factory: https://gist.github.com/jzjsuper/f81aff93c91531839e8db79ef3e12b9f

WiFi works, I can connect my laptop and it's 802.11ax.

fw_printenv works:

root@OpenWrt:~# fw_printenv
altkern=c180000
auto_recovery=yes
baudrate=115200
boot_part=2
boot_part_ready=3
bootargs=console=ttyMSM0,115200n8
bootcmd=if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi
bootdelay=2
bootpart1=set bootargs $partbootargs && nand read $loadaddr $prikern $kernsize && bootm $loadaddr
bootpart2=set bootargs $partbootargs2 && nand read $loadaddr $altkern $kernsize && bootm $loadaddr
eth1addr=d8:ec:5e:94:e5:61
eth2addr=d8:ec:5e:94:e5:62
ethaddr=d8:ec:5e:94:e5:61
fdt_high=0x4A400000
fdtcontroladdr=4a97db30
flash_type=2
flashimg=tftpboot $loadaddr $image && nand erase $prikern $imgsize && nand write $loadaddr $prikern $filesize
flashimg2=tftpboot $loadaddr $image && nand erase $altkern $imgsize && nand write $loadaddr $altkern $filesize
image=tortuga.img
imgsize=af40000
ipaddr=192.168.1.1
kernsize=800000
loadaddr=44000000
machid=801000d
maxpartialboots=3
mtdids=nand0=nand0
netmask=255.255.255.0
partbootargs=init=/sbin/init rootfstype=squashfs ubi.mtd=22,2048 ubi.block=0,0 root=/dev/ubiblock0_0 rootwait ro
partbootargs2=init=/sbin/init rootfstype=squashfs ubi.mtd=24,2048 ubi.block=0,0 root=/dev/ubiblock0_0 rootwait ro
prikern=1240000
serverip=192.168.1.100
soc_hw_version=200d0200
soc_version_major=2
soc_version_minor=0
stderr=serial@78B3000
stdin=serial@78B3000
stdout=serial@78B3000

That's crazy. Surely it can't be accurate and probably including VM? Figured these are supposed to be identical to MX4200v1 so the OEM logs should look similar. But no... it shows 512M

[    0.000000] Memory: 424012K/436224K available (5156K kernel code, 307K rwdata, 1736K rodata, 264K init, 329K bss, 12212K reserved, 0K cma-reserved, 0K highmem)

@jzjsuper can you paste the output from /proc/meminfo?

Just got a LN1301, here's the bootup log with stock FW.


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 -       201 - PBL, Start
B -      2735 - bootable_media_detect_entry, Start
B -      4042 - bootable_media_detect_success, Start
B -      4046 - elf_loader_entry, Start
B -      8222 - auth_hash_seg_entry, Start
B -      8468 - auth_hash_seg_exit, Start
B -     70306 - elf_segs_hash_verify_entry, Start
B -    133162 - PBL, End
B -    147925 - SBL1, Start
B -    201117 - GCC [RstStat:0x10, RstDbg:0x600000] WDog Stat : 0x4
B -    207766 - pm_device_init, Start
B -    332053 - PM_SET_VAL:Skip
D -    123769 - pm_device_init, Delta
B -    334463 - pm_driver_init, Start
D -      5337 - pm_driver_init, Delta
B -    340837 - clock_init, Start
D -      2135 - clock_init, Delta
B -    344802 - boot_flash_init, Start
D -     17964 - boot_flash_init, Delta
B -    366518 - boot_config_data_table_init, Start
D -      4178 - boot_config_data_table_init, Delta - (575 Bytes)
B -    373899 - Boot Setting :  0x00000618
B -    378017 - CDT version:2,Platform ID:8,Major ID:1,Minor ID:0,Subtype:13
B -    384940 - sbl1_ddr_set_params, Start
B -    388783 - CPR configuration: 0x30c
B -    392169 - cpr_init, Start
B -    394944 - Rail:0 Mode: 5 Voltage: 784000
B -    400190 - CL CPR settled at 736000mV
B -    403027 - Rail:1 Mode: 5 Voltage: 880000
B -    407205 - Rail:1 Mode: 7 Voltage: 888000
D -     16561 - cpr_init, Delta
B -    414098 - Pre_DDR_clock_init, Start
B -    418124 - Pre_DDR_clock_init, End
B -    421418 - DDR Type : PCDDR3
B -    427152 - do ddr sanity test, Start
D -      1067 - do ddr sanity test, Delta
B -    431910 - DDR: Start of HAL DDR Boot Training
B -    436638 - DDR: End of HAL DDR Boot Training
B -    442341 - DDR: Checksum to be stored on flash is 410379977
B -    452650 - Image Load, Start
D -    216520 - QSEE Image Loaded, Delta - (1374928 Bytes)
B -    669261 - Image Load, Start
D -        61 - SEC Image Loaded, Delta - (0 Bytes)
B -    676947 - Image Load, Start
D -     12048 - DEVCFG Image Loaded, Delta - (26148 Bytes)
B -    689086 - Image Load, Start
D -     23088 - RPM Image Loaded, Delta - (86660 Bytes)
B -    712205 - Image Load, Start
D -     91805 - APPSBL Image Loaded, Delta - (585496 Bytes)
B -    804132 - QSEE Execution, Start
D -        61 - QSEE Execution, Delta
B -    809958 - USB D+ check, Start
D -         0 - USB D+ check, Delta
B -    816332 - SBL1, End
D -    670725 - SBL1, Delta
S - Flash Throughput, 6896 KB/s  (2074479 Bytes,  300784 us)
S - DDR Frequency, 466 MHz
S - Core 0 Frequency, 800 MHz


U-Boot 2016.01-v0.20.256.210611_11.3csu2 (Jun 14 2021 - 23:17:51 +0800)

DRAM:  smem ram ptable found: ver: 1 len: 4
2 GiB
board_env_offset=1000000, board_env_size= 40000
board_devinfo_offset=1200000, board_devinfo_size=40000
board_senv_offset=1100000, board_senv_size=100000
NAND:  Could not find nand_gpio in dts, using defaults
ONFI device found
ID = 2690a32c
Vendor = 2c
Device = a3
qpic_nand: changing oobsize to 160 from 224 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)
1024 MiB
MMC:   <NULL>: 0
readenv offset=ox1000000
[devinfo_relocate] devinfo_relocate[152] malloced DEVINFO at 4a683680
[devinfo_relocate_spec] ret: 0 , total: 262144 , CONFIG_DEVINFO_SIZE: 262144
In:    serial@78B3000
Out:   serial@78B3000
Err:   serial@78B3000
machid: 801000d
Card did not respond to voltage select!
eth3 MAC Address from ART is not valid
eth4 MAC Address from ART is not valid
eth5 MAC Address from ART is not valid
#################################
######### auto_recovery #########
#################################
 ===  enabled:1,  ===  boot_part:1,    ===  maxpartialboots:3
boot_count_buffer_size = 4096, total number = 256
i=20, offset = 0x1114000, last_offset = 0x1113000
Updating boot_count...
boot->Count:2 ,boot->CheckSum:20110813, offset:0x1114000
#### ~~~~~~~~~~~~~ ####
#### auto_recovery check ####
Hit any key to stop autoboot:  0

Net:   MAC0 addr:80:69:1a:22:b4:d
PHY ID1: 0x4d
PHY ID2: 0xd0b1
EDMA ver 1 hw init
Num rings - TxDesc:1 (0-0) TxCmpl:1 (7-7)
RxDesc:1 (15-15) RxFill:1 (7-7)
ipq807x_edma_alloc_rings: successfull
ipq807x_edma_setup_ring_resources: successfull
ipq807x_edma_configure_rings: successfull
ipq807x_edma_hw_init: successfull

In u-boot, (press carriage return to stop autoboot)
printenv yields:


altkern=c180000
auto_recovery=yes
baudrate=115200
boot_part=1
bootargs=console=ttyMSM0,115200n8
bootcmd=if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi
bootdelay=2
bootpart1=set bootargs $partbootargs && nand read $loadaddr $prikern $kernsize && bootm $loadaddr
bootpart2=set bootargs $partbootargs2 && nand read $loadaddr $altkern $kernsize && bootm $loadaddr
eth1addr=80:69:1a:22:b4:d
eth2addr=80:69:1a:22:b4:e
ethact=eth0
ethaddr=80:69:1a:22:b4:d
fdt_high=0x4A400000
fdtcontroladdr=4a97db30
flash_type=2
flashimg=tftpboot $loadaddr $image && nand erase $prikern $imgsize && nand write $loadaddr $prikern $filesize
flashimg2=tftpboot $loadaddr $image && nand erase $altkern $imgsize && nand write $loadaddr $altkern $filesize
image=tortuga.img
imgsize=af40000
ipaddr=192.168.1.1
kernsize=800000
loadaddr=44000000
machid=801000d
maxpartialboots=3
mtdids=nand0=nand0
netmask=255.255.255.0
partbootargs=init=/sbin/init rootfstype=squashfs ubi.mtd=22,2048 ubi.block=0,0 root=/dev/ubiblock0_0 rootwait ro
partbootargs2=init=/sbin/init rootfstype=squashfs ubi.mtd=24,2048 ubi.block=0,0 root=/dev/ubiblock0_0 rootwait ro
prikern=1240000
serverip=192.168.1.100
soc_hw_version=200d0200
soc_version_major=2
soc_version_minor=0
stderr=serial@78B3000
stdin=serial@78B3000
stdout=serial@78B3000

Environment size: 1423/262140 bytes

In the boot text, it does say there are 2 gigs of DRAM and 1 gig of (qpic_nand)

Probably not too useful, here's the fdt from u-boot

IPQ807x# fdt addr 4a97db30
IPQ807x# fdt list /
/ {
        #address-cells = <0x00000001>;
        #size-cells = <0x00000001>;
        machid = <0x0801000d>;
        config_name = "config@oak03";
        chosen {
        };
        aliases {
        };
        memory {
        };
        serial@78B3000 {
        };
        serial@78B0000 {
        };
        timer {
        };
        spi {
        };
        nand-controller@79B0000 {
        };
        xhci@8a00000 {
        };
        xhci@8c00000 {
        };
        i2c@78b6000 {
        };
        pci@20000000 {
        };
        pci@10000000 {
        };
        sdhci@07824000 {
        };
        ess-switch {
        };
};

Booting via usb from https://github.com/testuser7/openwrt/releases/tag/qualcommax-671ce50

procinfo

root@OpenWrt:/# cat /proc/cpuinfo
processor       : 0
BogoMIPS        : 38.40
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 1
BogoMIPS        : 38.40
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 2
BogoMIPS        : 38.40
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 3
BogoMIPS        : 38.40
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

meminfo

root@OpenWrt:/# cat /proc/meminfo
MemTotal:        1914796 kB
MemFree:         1834568 kB
MemAvailable:    1813156 kB
Buffers:               0 kB
Cached:            29868 kB
SwapCached:            0 kB
Active:            32492 kB
Inactive:              0 kB
Active(anon):      32492 kB
Inactive(anon):        0 kB
Active(file):          0 kB
Inactive(file):        0 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:          2632 kB
Mapped:             4532 kB
Shmem:             29868 kB
KReclaimable:       6328 kB
Slab:              20828 kB
SReclaimable:       6328 kB
SUnreclaim:        14500 kB
KernelStack:        1712 kB
PageTables:          552 kB
SecPageTables:         0 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      957396 kB
Committed_AS:      39796 kB
VmallocTotal:   257687552 kB
VmallocUsed:        9652 kB
VmallocChunk:          0 kB
Percpu:              480 kB
1 Like

It's just a matter of time. I got mine today. Other qualified people are working on it. Come back in a couple of weeks.

I can confirm these LN1301 (MX4300) are 2GB RAM and 1G NAND. Way better than I was expecting. The PCB is like the MX4200v1.

If I was in the US I'd be buying these instantly. Currently $20 at Walmart.

Imagine getting a 2GB RAM and 1 GB NAND Tri band wifi 6 router for $20. Even in 3 years that would be close to a pipe dream. How on earth can Linksys afford to do this? Just shows how much profit these companies are making at normal rrp.

I had forgotten they were still available through Walmart, thanks for reminding me, snagged two :slight_smile:

seems like no brainer at walmart, 20 and free shipping geez

Thanks for confirming the 2Gb ram and 1gb NAND.

I just ordered 2 more on top of the two I already had on the way...

I already have 2 mx5300 and a dl-wrx36 but for $20 is insane.

For anyone trying to disassemble the LN1301 (MX4300), prying the top off is very difficult. Just get a narrow Philips driver and stick it through the holes at an off-angle. I had to wrench them out with a pair of pliers, but it was still easier than trying to pry the clips off the top, and I would have marked up the seams while doing it.

The serial header is just like in the Wiki for the MX4200 v1: The white JST PH 6P at the bottom.

I plan on installing serial connectors to dangle out of the vent holes on bottom of the housing for easy access, after I buy a few bundles of assemblies off Aliexpress.

My boot logs and env looks exactly like what jzjsuper posted previously.

1 Like

New test build: https://github.com/testuser7/openwrt/releases/tag/qualcommax-de4be02