OpenWrt 19.07.1 for the Linksys EA9500 v1.0 & 1.1
This is an unofficial build of OpenWrt 19.07.1 for the Linksys EA9500 using the
swconfig driver and configuration system.
Please note that these builds only support the dual-core/BCM47094-based EA9500 revisions 1.0 and 1.1.
The EA9500 v2 uses a different chip and architecture (ARM 64-bit), and is not yet supported.
The Linksys EA9500 has 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).
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.
Linksys' factory firmware checks signatures on uploaded firmwares, and TFTP recovery is disabled in the bootloader , necessitating installation via serial cable.
Note that connecting a serial cable before powering on the EA9500 may occasionally hang the bootloader . If you find that this happens to you, leave the Ground connection floating until after you power on the EA9500.
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
Once OpenWrt is installed, you can flash the router by uploading
sysupgrade-compatible images to LuCI, or by using the
sysupgrade command line tools.
- OpenWrt 19.07.1, released 2020-02-08.
WPA3-SAE, 802.11r, 802.11w, and VHT160 do not function - this is due to the old
brcmfmacdriver included with OpenWrt 19.07.1. It does not (yet) support
BCM4366C0firmware 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.
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's
System -> Startupmenu and enable the startup script if it is disabled.
Sources and build instructions are available on my GitHub: https://github.com/hurrian/ea9500_openwrt.
Pull requests are welcome!
Thanks to npcomplete, who brought up OpenWrt on the EA9500, and for helping me get familiar with the device.