Unofficial OpenWrt (swconfig) for the Linksys EA9500 and EA9400, v1.0 & 1.1
Current release: OpenWrt 19.07.4
Learn about OpenWrt
Learn about changes in OpenWrt 19.07.4
These are my unofficial builds of OpenWrt for the Linksys EA9500 and EA9400 using the swconfig
driver and configuration system.
Please note that these builds only support the dual-core/BCM47094-based EA9500/EA9400 revisions 1.0 and 1.1.
The EA9500/EA9400 v2 uses a different chip and architecture (ARM 64-bit), and is not yet supported.
Why swconfig
?
The Linksys EA9500 and EA9400 have an unusual network switch layout, with a BCM53012
switch directly connected to the CPU ports and half the ethernet ports (WAN+LAN4,7,8) and a BCM53125
switch serving the other half of the ethernet ports (LAN1,2,5,6).
With swconfig
, you can configure the ports connected to the BCM53012
just like any other OpenWrt device with an internal switch, and treat the BCM53125
like a dumb switch.
Learn more about the EA9500/EA9400's hardware quirks on npcomplete's blog.
First-Time Installation
Linksys' factory firmware checks signatures on uploaded firmwares, and TFTP recovery is disabled in the bootloader , necessitating installation via serial cable.
Refer to this guide for disassembly, and this guide for flashing via serial.
Note that connecting a serial cable before powering on the EA9500/EA9400 may occasionally hang the bootloader . If you find that this happens to you, leave the Ground connection floating until after you power on the router.
Assuming your TFTP server is at 192.168.1.10
, you can flash an image by running the following in the CFE serial prompt:
flash -noheader 192.168.1.10:/openwrt.trx nflash0.trx
And then set that partition to boot by default using:
nvram set bootpartition=0 && nvram set partialboots=0 && nvram commit
Please check if clear_partialboot
is enabled after installation - see Known Issues below
Upgrades
Once OpenWrt is installed, you can flash the router by uploading sysupgrade
-compatible images to LuCI, or by using the sysupgrade
command line tools.
Download
Date | Release | Changes |
---|---|---|
2020-09-16 | OpenWrt 19.07.4 | Updated to 19.07.4, removed the flash partitions patch as it caused sysupgrade to malfunction. |
2020-06-17 | OpenWrt 19.07.3 rev2 | Now supports Linksys EA9400, and separates builds with and without the flash partitions patch. If you could not boot EA9500 with 19.07.2 revision 3 or 19.07.3 revision 1, please try the builds without the flash partitions patch. |
2020-05-23 | OpenWrt 19.07.3 | New packages ubimounter and luci-app-ubimounter to automatically mount a ubifs filesystem on the extra space in flash |
2020-04-13 | OpenWrt 19.07.2 | Now supports using the extra space at the end of the flash |
2020-02-08 | OpenWrt 19.07.1 | Updated sources to 19.07.1 |
Known Issues
-
WPA3-SAE, 802.11r, 802.11w, and VHT160 do not function - this is due to the old
brcmfmac
driver included with OpenWrt 19.07.1. It does not (yet) supportBCM4366C0
firmware revisions beyond the one known to ship with the OEM firmware. Hopefully backported drivers from Linux 5.5 arrive soon, which will likely resolve this pain point. - Seemingly random wireless radio crashes - also due to old, buggy firmware and general Broadcom stuff. So far, this seems to mostly affect the 2.4GHz radio. Link to GitHub issue
-
Lack of hardware flow offload acceleration - the
swconfig
driver in this platform isn't wired up for hardware flow offload using native tagging, this is an issue fixed in the DSA version of this firmware. Link to GitHub issue -
clear_partialboot may not run after installation - this startup script is used to reset the failsafe boot counter for the second boot partition on the EA9500, and due to packaging it may not be enabled by default. Check LuCI'sResolved in 19.07.2 rev 3System -> Startup
menu and enable the startup script if it is disabled.
Sources
Sources and build instructions are available on my GitHub: https://github.com/hurrian/ea9500_openwrt.
Pull requests are welcome!
Credits
Thanks to npcomplete, who brought up OpenWrt on the EA9500, and for helping me get familiar with the device.