Adding OpenWrt support for Linksys EA9200

I have succeeded in creating my own snapshot build for EA9200.
Currently just boots up and shows the OpenWRT landing page. No wireless or anything.
Here is the link if anyone wants to give it a try EA9200

1 Like

I have the first alpha build for EA9200, with working Radio, Switch and other things.
I have forked from hurrian's repo for EA9500 and made necessary changes for 9200.
Let me know your feedbacks

2 Likes

howto flash?

Thank you so much for building this!

I was lucky enough to you have factory firmware 1.1.5 and was able to flash from factory GUI!!! Not sure if you can downgrade if you are on 1.1.7 or 1.1.9. 1.1.5 no longer on Linksys site. Found this:

Older firmware also might be in your alternate boot location which I recall having read loads after 3 failed attempts at normal boot. Power off 10 seconds into boot maybe???

Otherwise, you probably have to go serial cable...

Another reference thread:
https://forum.dd-wrt.com/phpBB2/viewtopic.php?t=280327&postdays=0&postorder=asc&start=15

Hope that helps.

I'm very surprised at your work!

I wonder if there is stock firmware's trx. I don't know why but my 2.4GHz network is disappeared, so I'd like to start again from scratch.

Thanks!

I solved. I could flash stock firmware(1.1.5 ver.) after nvram erase command.

1 Like

Is there a particular reason the work that was done on the EA9200 not included into openwrt branch from jithvk github account?

Best regards
onefreeman

Because it was a hack. When flashed without checking current firmware offset, it could soft brick your device (in 50% cases).
The proper support for Linksys partitioning is in works. First patches were already added, see

kernel: move mtd ofpart accepted patch
bcm53xx: backport NVMEM NVRAM driver
kernel: backport Broadcom NVRAM driver cleanups
bcm53xx: initialize NVRAM from NVMEM driver
kernel: add the latest mtd patch extending ofpart parser

I'm waiting now for:

  1. DTS changes to get accepted upstream
  2. MTD parser to get accepted upstream

You can check my tree meanwhile https://git.openwrt.org/?p=openwrt/staging/rmilecki.git;a=summary

1 Like

wonderful and thank you for sharing I take it that broadcom woke up and said "were sorry for all these years of not sharing" smile.

I looked through some of the work that was done and wasn't ready to try it since the post was done some time back and his work hadn't made it to the snapshot and I couldn't find anything in openwrt sources, this is interesting but will the EA9200 be without wifi or partial support at this time?

Something off topic, I had done a post about the led situation for the R6700v2 and could not post to the patch letting them know that the patch described worked but I couldn't get the led to notice a non-gigabit connection the leds would all be white even though a non-gig connection was connected.

Thanks again for the with this reply.

Best regards
onefreeman

Broadcom doesn't pay me.

Linksys EA9200 has 3 x BCM43602, so it should work with brcmfmac. 5 GHz bands may require some extra work.

1 Like

With the commit 98d456a14e00 ("bcm53xx: backport first 5.13 DTS changes") I believe that Linksys EA9200 partitioning should be supported.

I need someone to flash OpenWrt firmware to the second firmware partition and verify that kernel:

  1. Detects 0x000000200000 as fallback
  2. Detects 0x000002a00000 as firmware

Can someone try it & provide a boot log?

1 Like

If they did you probably be under their control.

I wasn't sure but thank you for confirming that it may work the brcmfmac and I feel that at least development will go forward with some help with the community in some form or another.

Okay i have the EA9200 which is why I am interested in the project but I'm not familiar with how to flash to the second partition?

I'll need a to do some soldering first and is there a image?

Is there a link to download this image?

Best regards
onefreeman

I have the jithvk code from last May on my EA9200 as I mentioned earlier in the thread, but haven't really used it since I got it loaded/working.

Wanting to update to current.

Anything I can do to help this effort along?

@AWD_Guy
I did try the latest release from https://github.com/codekow/ea9x00_openwrt but it didn't work for me.

Maybe someone else had more luck? If not does anyone know if @codekow is active on these forums.

Can someone test the latest snapshot?

https://downloads.openwrt.org/snapshots/targets/bcm53xx/generic/

I can't guarantee it's going to work, so serial console is highly recommended.

if it works, can someone provide me (upload of e-mail it to me) /sys/bus/nvmem/devices/brcm-nvram0/nvmem content, e.g.

cat /sys/bus/nvmem/devices/brcm-nvram0/nvmem > /tmp/nvram.bin

(and then copying /tmp/nvram.bin from the device, e.g. using scp).

1 Like

I didn't want to start a new thread. So I was able to install 22.03.0 and upgraded to 22.03.01 on an EA9200. I had a lot of trouble with the dual boot and tried to flash OpenWRT numerous times from both partitions without success of overwriting the secondary Linksys stock. Lessons from my experience:

I was able to downgrade the Linksys firmware from the Linksys GUI via the restore older firmware command in the GUI. I was on 1.1.7 and after the move it downgraded to 1.1.5 and I was able to flash OpenWRT. Before this nothing worked, tried TFTP and via the GUI with various firmware versions. If you are on 1.1.7 and above it will not let you flash it without serial console access.

I did a trick, don't know how "legit" this is, in order to remain on the Open WRT firmware after multiple boots. I installed nano and edited rc.local to set the value for partialboot to 2 every time it boots and I manually increased the maxpartialboots to 5. I don't know how feasible this is so that's why I'm asking the community. I was afraid to "mtd write" the second partition because I don't know which one it is to be honest. Here are some of my current configs, if anyone needs any info from it or a file cat'ted I'd be happy to help.

gateway:~# nvram show | grep boot
maxpartialboots=5
nvram_reboot=0
boot_wait=on
partialboots=2
bootpartition=1

gateway:~#cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00080000 00020000 "boot"
mtd1: 00100000 00020000 "nvram"
mtd2: 00080000 00020000 "nvram"
mtd3: 02800000 00020000 "failsafe"
mtd4: 05600000 00020000 "firmware"
mtd5: 003fffe4 00020000 "linux"
mtd6: 05200000 00020000 "ubi"

gateway:~# dmesg
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.10.146 (builder@buildhost) (arm-openwrt-linux-muslgnueabi-gcc (OpenWrt GCC 11.2.0 r19777-2853b6d652) 11.2.0, GNU ld (GNU Binutils) 2.37) #0 SMP Fri Oct 7 23:34:56 2022
[    0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Linksys EA9200
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Hit pending asynchronous external abort (FSR=0x00001c06) during first unmask, this is most likely caused by a firmware/bootloader bug.
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000]   HighMem  [mem 0x0000000008000000-0x000000008fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000]   node   0: [mem 0x0000000088000000-0x000000008fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000008fffffff]
[    0.000000] On node 0 totalpages: 65536
[    0.000000]   Normal zone: 288 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 32768 pages, LIFO batch:7
[    0.000000]   HighMem zone: 32768 pages, LIFO batch:7
[    0.000000] percpu: Embedded 14 pages/cpu s27340 r8192 d21812 u57344
[    0.000000] pcpu-alloc: s27340 r8192 d21812 u57344 alloc=14*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1

################################################

Thank you everyone and good luck

1 Like

Sorry for the really late response but has anyone sent you what you had requested?

Hi. I just want to say that I am going to attempt to build this for 22.03.3. Does anyone else have a starting point? Or, should I just start from scratch?

Starting dev here. It is a fork of a fork, but in general looks like a good starting point.

I want to add that you should download firmware version 1.1.5 from Linksys itself and not any 3rd party websites.

https://downloads.linksys.com/downloads/firmware/FW_EA9200_1.1.5.164615_prod.img