| Model | Launch Date | S/N | OpenWrt Supported | Model Specific Notes |
|---|---|---|---|---|
| EA4500 | April 2012 | 12A106 | Trunk (as of r47458) | runs a bit warm |
| E4200 v2 | October 2011 | 01C106 | Trunk (as of r47458) | - |
| EA4500 v3 | Not supported | WikiDevi |
The Linksys EA4500 and E4200 v2 share identical hardware. OEM source code available at: http://support.linksys.com/en-us/gplcodecenter
Caution: The wireless seems to have problems with WiFi-stability on connections to certain client chipsets, e.g. Apple-devices. See this thread on OpenWRT developers forum.
| Model | SoC | Ram | Flash | Network | Wireless | USB | Serial | JTag |
|---|---|---|---|---|---|---|---|---|
| EA4500 | Marvell Feroceon 88F6282 @1200Mhz | 128MiB | 128MiB | 1 WAN + 4x LAN (GBit) | 88W8366 & 88W8063 [an 3x3:3] + 88W8366 & 88W8063 [bgn 3x3:3] | Yes | Yes | Yes |
| E4200 v2 | Marvell Feroceon 88F6282 @1200Mhz | 128MiB | 128MiB | 1 WAN + 4x LAN (GBit) | 88W8366 & 88W8063 [an 3x3:3] + 88W8366 & 88W8063 [bgn 3x3:3] | Yes | Yes | Yes |
| EA4500 v3 | Qualcomm Atheros QCA9558 @720MHz | 128MiB | 128MiB | 1 WAN + 4x LAN (GBit) | AR9580 [an 3x3:3] + QCA9558 [bgn 3x3:3] | Yes | ? | ? |
The EA4500 has a dual firmware layout: working and backup partitions. It boots from the working partition in normal operation. Firmware flashes occur on the backup partition and the EA4500 shall reboot from the backup partition following from a firmware flash. The backup partition becomes the new working partition when the reboot was successful. The former working partition becomes the new backup partition.
Note: No need for a 30/30/30 reset on this device. In the event of a bad flash, the router shall obviously fail to reboot but don't despair. After three consecutive failed reboots, the router then reverts back to its former working partition and boots normally. Based on this understanding, both EA4500 and E4200 v2 shall always have a partition with a working firmware.
As of r47458 both EA4500 and E4200 v2 are fully supported. These boards are identified by the codename "Viper." The factory.bin image can be flashed directly from the Linksys web interface. Upgrading between OpenWrt images is accomplished with the sysupgrade.tar image.
Prebuilt trunk snapshots offer the most straightforward installation and they are available now: https://downloads.openwrt.org/snapshots/trunk/kirkwood/generic/
← Installing openwrt-kirkwood-linksys-viper-squashfs-factory.bin from the Linksys classic web interface
← Installing openwrt-kirkwood-linksys-viper-squashfs-factory.bin from the Linksys cloud web interface
Unfortunately there is no sysupgrade support (not a defect) on Chaos Calmer builds hence do not open a ticket. Flash back to stock Linksys firmware first before installing current trunk builds. See ForumSee Candyhouse comment
Build with:
This will produce the images:
openwrt-kirkwood-linksys-viper-squashfs-factory.bin openwrt-kirkwood-linksys-viper-squashfs-sysupgrade.tar
None so please feel free to start one.
There is currently no way to get OpenWrt onto EA4500 other than using serial console (it is perhaps possible using tftp server in bootloader). How to get that connected you can read later on in this text.
Also, in current https://downloads.openwrt.org/snapshots/trunk/kirkwood/ there are no images for EA4500. So just git clone openwrt repo and compile the images for EA4500 yourself.
In menuconfig you select:
Now you "make" it and expose following files:
Connect to EA4500 via serial console and power it on. Break u-boot pressing any key during startup. Run "printenv" and adjust your ip and tftp server ip if needed. Then boot initramfs:
Viper» tftpboot ${loadaddr} openwrt-kirkwood-ea4500-uImage-initramfs; setenv bootargs $(console) root=/dev/ram rw; bootm ${loadaddr}
Now in booted OpenWrt, we need to flash OpenWrt into NAND. You need to get the network working first. Then you do:
# cd /tmp
# wget http://yourserver/openwrt-kirkwood-ea4500-rootfs.ubi
# wget http://yourserver/openwrt-kirkwood-ea4500-uImage
# ubiformat /dev/mtd3
# ubiformat /dev/mtd3 -f openwrt-kirkwood-ea4500-rootfs.ubi
# mtd erase kernel
# mtd write openwrt-kirkwood-ea4500-uImage kernel
After this you reboot the device, break u-boot again and set u-boot to boot OpenWrt from NAND:
Viper» setenv owrt_bootargs_root ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs rw
Viper» setenv owrt_boot nand read.e \${loadaddr} 0x200000 0x200000 \; setenv bootargs \$(console) \$(owrt_bootargs_root) \; bootm \${loadaddr}
Viper» setenv bootcmd run owrt_boot
Viper» setenv auto_recovery no
Viper» saveenv
There is another way to Flash your device, without using a serial connection.
Prepare:
The flashing process:
fw_setenv bootcmd 'run owrt_usb; run nandboot'
fw_setenv owrt_usb 'usb start; sleep 5;ext2load usb 0:1 ${loadaddr} /uImage; setenv bootargs $(console) $(mtdparts) root=/dev/ram rw; bootm ${loadaddr}'
mkdir /sda1 && mount /dev/sda1 /sda1 (no mistake it does not boot without it)
reboot
mkdir /sda1 && mount /dev/sda1 /sda1 && cd /sda1 ubiformat /dev/mtd3 && ubiformat /dev/mtd3 -f openwrt-kirkwood-ea4500-rootfs.ubi
mtd erase kernel
mtd write openwrt-kirkwood-ea4500-uImage kernel
fw_setenv bootcmd 'run owrt_usb; run owrt_boot'
fw_setenv owrt_usb 'usb start; sleep 5;ext2load usb 0:1 ${loadaddr} /uImage; setenv bootargs $(console) root=/dev/ram rw; bootm ${loadaddr}'
fw_setenv owrt_boot 'nand read.e ${loadaddr} 0x200000 0x200000; setenv bootargs $(console) ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs rw; bootm ${loadaddr}'
fw_setenv auto_recovery no
reboot
The stock layout (of the 128MiB flash chip):
| Offset | Size | Name |
|---|---|---|
| 0x0 | 0x80000 | uboot |
| 0x80000 | 0x4000 | u_env |
| 0x84000 | 0x4000 | s_env |
| 0x200000 | 0x1a00000 | kernel |
| 0x200000 | 0x1a00000 | rootfs |
| 0x1c00000 | 0x1a00000 | alt_kernel |
| 0x1c00000 | 0x1a00000 | alt_rootfs |
| 0x3600000 | 0x4a00000 | syscfg |
A recommended layout for OpenWRT is to specify the kernel and rootfs settings, leaving everything else alone so as to remain compatible with the stock firmware.
| Offset | Size | Name |
|---|---|---|
| 0x0 | 0x80000 | uboot |
| 0x80000 | 0x4000 | u_env |
| 0x200000 | 0x200000 | kernel |
| 0x400000 | 1c00000 | rootfs |
Method 1: You can flash a Linksys firmware image directly from the LuCI web interface.
Method 2: This works too if you had flashed a firmware image from the stock Linksys web interface.
Cut the power to the router while the router is booting up. The router white LED shall blink rapidly and that's when you cut the power–inducing a failed boot. After 3 failed boots, the EA4500 then boots from the backup partition and reverts back to its Linksys firmware. See Forum
$ binwalk FW_EA4500_2.1.41.164606.img
DECIMAL HEXADECIMAL DESCRIPTION
——————————————————————————–
0 0x0 uImage header, header size: 64 bytes, header CRC: 0x304ABA3A, created: Thu Dec 4 10:03:26 2014, image size: 2692508 bytes, Data Address: 0x8000, Entry Point: 0x8000, data CRC: 0xF906CF22, OS: Linux, CPU: ARM, image type: OS Kernel Image, compression type: none, image name: "Linux-2.6.35.8"
16636 0x40FC gzip compressed data, maximum compression, from Unix, last modified: Thu Dec 4 10:03:25 2014
2752512 0x2A0000 JFFS2 filesystem, little endian
21603204 0x149A384 Zlib compressed data, compressed, uncompressed size >= 606
Break u-boot and do:
Viper» tftpboot 0x2000000 FW_EA4500_2.1.41.164606.img
Viper» nand erase 0x200000 0x1500000
Viper» nand write 0x2000000 0x200000 0x1500000
Viper» resetenv
Viper» reset
Note that for different versions size may differ.
| Bootloader tftp server IPv4 address | 192.168.1.10 |
→ Basic configuration After flashing, proceed with this.
Set up your Internet connection, configure wireless, configure USB port, etc.
Note: A minimal build of openwrt does not include wpad-mini or an equivalent; be sure you install a daemon that can apply your access point settings, or wireless will appear not to work.
The default network configuration is:
| Interface Name | Description | Default configuration |
|---|---|---|
| br-lan | LAN & WiFi | 192.168.1.1/24 |
| eth0 | LAN ports (1 to 4) | None |
| eth1 | WAN port | DHCP |
| wlan0 | WiFi (2.4GHz) | Disabled |
| wlan1 | WiFi (5GHz) | Disabled |
Note: Due to the unfortunate lack of DFS support in the current mwl8k driver, there are only four available channels in the 5GHz radio:
The Linksys EA4500 has two buttons: reset and wps. Here, we merely list the button names, so they can be used in the below Howto:
| Button Name | Event | Notes |
|---|---|---|
| reset | Factory Reset | Functional with Trunk (install kmod-gpio-button-hotplug) |
| wps | Wifi Protected Setup | Non-functional but configurable |
→ hardware.button on howto use and configure the hardware button(s).
The Linksys EA4500 has two LEDs.
| LED | LED Name |
|---|---|
| health | viper:white:health |
| pulse | viper:white:pulse |
Examples:
1. To turn off [viper:white:health] LED.
echo "0" > /sys/class/leds/viper\:white\:health/brightness
2. To turn back on [viper:white:health] LED.
echo "1" > /sys/class/leds/viper\:white\:health/brightness
| Instruction set: | ARM |
| Vendor: | Marvell |
| Bootloader: | U-Boot |
| System-On-Chip: | Feroceon 88F6282 |
| CPU @Frq | Feroceon A88FR131 @1200MHz |
| Flash size: | 128 MiB |
| Flash Chip: | Hynix NAND 128MiB 3,3V 8-bit (H27U1G8F2BTR-BC) |
| RAM size: | 128 MiB |
| RAM Chip: | |
| Wireless No1: | Marvell 88W8366 v48 for 2Ghz |
| Wireless No2: | Marvell 88W8366 v48 for 5Ghz |
| Switch: | Marvell 88E617x (Gigabit, VLAN) |
| USB: | Yes 1 x 2.0 |
| Serial: | Yes |
| JTAG: | Yes |
Note: This will void your warranty!
http://kelvyntaylor.blogspot.cz/2012/07/how-to-open-cisco-linksys-ea4500-router.html
There are 4 screws on the bottom of the case, hidden under 4 glued-on rubber feet parts. Pry off the rubber feet with a small screwdriver and remove the screws, then simply pull the top off.
→ port.serial general information about the serial port, serial port cable, etc.
The serial port is located at J5.
| PIN | ID |
|---|---|
| 1 | Vcc 3.3V |
| 2 | |
| 3 | RX |
| 4 | |
| 5 | TX |
| 6 | GND |
Pin number 1 is the one next to the annoying white led. The TX pin on the board should be connected to the RX pin of the serial console in order to see what the board is transmitting. Speed (baud) 115200, Data bits 8, Stop bits 1, Parity none.
→ port.jtag general information about the JTAG port, JTAG cable, etc.
J6 sure looks like a JTAG port, but it hasn't been tried.
I made speedtests on ea4500, with and without Hardware acceleration.
root@OpenWrt:~# openssl version OpenSSL 1.0.2d 9 Jul 2015 root@OpenWrt:~# cat /etc/openwrt* DISTRIB_ID='OpenWrt' DISTRIB_RELEASE='Bleeding Edge' DISTRIB_REVISION='r47048' DISTRIB_CODENAME='designated_driver' DISTRIB_TARGET='kirkwood/generic' DISTRIB_DESCRIPTION='OpenWrt Designated Driver r47048' DISTRIB_TAINTS='no-all busybox' r47048 The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes md2 0.00 0.00 0.00 0.00 0.00 mdc2 0.00 0.00 0.00 0.00 0.00 md4 3614.59k 13155.71k 40154.88k 82702.89k 119297.37k md5 2994.14k 10903.94k 32719.82k 63922.69k 87788.90k hmac(md5) 4297.61k 14745.64k 40264.68k 71031.47k 89935.47k sha1 2286.73k 6357.91k 13247.40k 18140.26k 20289.68k rmd160 2635.41k 8843.94k 21350.66k 33435.84k 40041.50k rc4 50884.17k 60723.26k 63786.18k 64388.64k 64114.77k des cbc 7995.83k 8292.22k 8369.58k 8383.15k 8419.40k des ede3 2915.85k 2967.69k 2971.40k 2988.91k 2988.16k idea cbc 0.00 0.00 0.00 0.00 0.00 seed cbc 10014.92k 11021.93k 11305.39k 11424.96k 11435.92k rc2 cbc 9154.69k 9537.15k 9645.48k 9674.57k 9680.21k rc5-32/12 cbc 0.00 0.00 0.00 0.00 0.00 blowfish cbc 15157.95k 16288.66k 16599.47k 16648.53k 16729.21k cast cbc 15755.71k 17617.17k 18220.69k 18466.59k 18437.46k aes-128 cbc 11286.92k 12637.83k 13044.23k 13104.79k 13173.18k aes-192 cbc 10032.72k 11134.38k 11382.31k 11489.96k 11468.80k aes-256 cbc 9017.68k 9850.91k 10136.39k 10201.86k 10175.61k camellia-128 cbc 0.00 0.00 0.00 0.00 0.00 camellia-192 cbc 0.00 0.00 0.00 0.00 0.00 camellia-256 cbc 0.00 0.00 0.00 0.00 0.00 sha256 2602.28k 6190.93k 11073.84k 13849.43k 14875.24k sha512 636.55k 2548.15k 3653.84k 4976.37k 5581.44k whirlpool 590.72k 1193.91k 1883.58k 2218.78k 2358.30k aes-128 ige 11260.38k 13537.57k 14226.38k 14464.17k 14175.72k aes-192 ige 9986.76k 11785.34k 12299.08k 12483.52k 12288.00k aes-256 ige 9004.48k 10398.14k 10860.09k 10991.28k 10806.82k ghash 8710.31k 9013.22k 9067.61k 9125.93k 9099.17k
And with acceleration of the kirkwood SOC: (found only following working?)
openssl speed -evp $cipher -elapsed type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes aes-128-cbc 378.76k 1469.89k 5105.83k 13443.41k 22227.63k des-cbc 766.65k 2490.47k 5656.32k 7903.91k 9368.92k des-ede3-cbc 671.50k 1745.49k 2902.27k 3492.18k 3655.10k Second Run: type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes aes-128-cbc 378.78k 1470.17k 5104.04k 13461.85k 22238.55k des-cbc 767.17k 2477.67k 5644.63k 8239.10k 9366.19k des-ede3-cbc 670.47k 1737.75k 2910.29k 3493.55k 3664.55k
More ciphers aviable using Boris Patch. Awsome benefit by using DMA.
Test was made "scping" 250mb of non compressable random into Routers /dev/null. Numbers are in Megabytes/s
| Cipher | Speedresult with mv_cesa | Speedresult without mv_cesa |
|---|---|---|
| 3des-cbc | 2.5MB/s | 2.2MB/s |
| blowfish-cbc | 6.0MB/s | 6.0MB/s |
| cast128-cbc | 6.3MB/s | 6.3MB/s |
| arcfour | 8.6MB/s | 8.6MB/s |
| arcfour128 | 8.6MB/s | 8.1MB/s |
| arcfour256 | 8.9MB/s | 8.6MB/s |
| aes128-cbc | 6.8MB/s | 5.3MB/s |
| aes192-cbc | 6.8MB/s | 5.1MB/s |
| aes256-cbc | 6.8MB/s | 4.8MB/s |
| rijndael-cbc@lysator.liu.se | 6.6MB/s | 4.7MB/s |
| aes128-ctr | 5.3MB/s | 5.4MB/s |
| aes192-ctr | 5.0MB/s | 5.1MB/s |
| aes256-ctr | 4.7MB/s | 4.8MB/s |
| aes128-gcm@openssh.com | 4.0MB/s | 3.9MB/s |
| aes256-gcm@openssh.com | 3.8MB/s | 3.6MB/s |
| chacha20-poly1305@openssh.com | 10.9MB/s | 11.40MB/s |
So as you can see aes-*-cbc ist mainly affected.
Some of the uBoot customizations made by the vendor can lead to confusion. Once you have access to the serial console, it's recommended to set bootdelay=3 (or whatever) and auto_recovery=off, after which whatever is in bootcmd will actually be run after the timeout.
The Marvell bootloader has some differences with respect to computing checksums of the u-boot environment flash partition, making modification of the environment via the standard OpenWRT tools a problem. It appears that the Sheeva U-Boot Tools should work, if you find it necessary to work with the environment from the OS (e.g., fw_printenv and fw_setenv.)
__ __ _ _ | \/ | __ _ _ ____ _____| | | | |\/| |/ _` | '__\ \ / / _ \ | | | | | | (_| | | \ V / __/ | | |_| |_|\__,_|_| \_/ \___|_|_| _ _ ____ _ | | | | | __ ) ___ ___ | |_ | | | |___| _ \ / _ \ / _ \| __| | |_| |___| |_) | (_) | (_) | |_ \___/ |____/ \___/ \___/ \__| ** WNC BOARD: Viper R2.2 LE ** ** For Development Only. Not For Demo ** U-Boot 1.1.4 (Sep 15 2011 - 15:46:36) Marvell version: 3.5.9 U-Boot code: 00600000 -> 0067FFF0 BSS: -> 006CFB20 Soc: 88F6282 A1CPU running @ 1200Mhz L2 running @ 400Mhz SysClock = 400Mhz , TClock = 200Mhz DRAM (DDR2) CAS Latency = 6 tRP = 6 tRAS = 18 tRCD=6 DRAM CS[0] base 0x00000000 size 128MB DRAM Total size 128MB 16bit width Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done NAND:128 MB Flash: 0 kB CPU : Marvell Feroceon (Rev 1) u_env Offset: 00080000 s_env Offset: 000a0000 Streaming disabled Write allocate disabled Module 0 is RGMII USB 0: host mode PEX 0: PCI Express Root Complex Interface PEX interface detected Link X1 PEX 1: PCI Express Root Complex Interface PEX interface detected Link X1 Net: egiga0 [PRIME], egiga1 Hit any key to stop autoboot: 0 NAND read: device 0 offset 0x200000, size 0x200000 Reading data from 0x3ff800 -- 100% complete. 2097152 bytes read: OK ## Booting image at 02000000 ... Image Name: ARM OpenWrt Linux-3.14.26 Created: 2014-12-30 15:59:55 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1633276 Bytes = 1.6 MB Load Address: 00008000 Entry Point: 00008000 Verifying Checksum ... OK OK Starting kernel ... Uncompressing Linux... done, booting the kernel. [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 3.14.26 (jirka@nanopsycho) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r43795) ) #2 Tue Dec 30 16:59:33 CET 2014 [ 0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977 [ 0.000000] CPU: VIVT data cache, VIVT instruction cache [ 0.000000] Machine model: Linksys EA4500 [ 0.000000] Memory policy: Data cache writeback [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 [ 0.000000] Kernel command line: console=ttyS0,115200 ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs rw [ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes) [ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) [ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) [ 0.000000] Memory: 125192K/131072K available (3238K kernel code, 172K rwdata, 916K rodata, 133K init, 181K bss, 5880K reserved) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) [ 0.000000] vmalloc : 0xc8800000 - 0xff000000 ( 872 MB) [ 0.000000] lowmem : 0xc0000000 - 0xc8000000 ( 128 MB) [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB) [ 0.000000] .text : 0xc0008000 - 0xc0416d5c (4156 kB) [ 0.000000] .init : 0xc0417000 - 0xc04384d4 ( 134 kB) [ 0.000000] .data : 0xc043a000 - 0xc0465034 ( 173 kB) [ 0.000000] .bss : 0xc0465034 - 0xc0492488 ( 182 kB) [ 0.000000] NR_IRQS:114 [ 0.000014] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 21474836475ns [ 0.000133] Calibrating delay loop... 1196.85 BogoMIPS (lpj=5984256) [ 0.090085] pid_max: default: 32768 minimum: 301 [ 0.090191] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.090209] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.092219] CPU: Testing write buffer coherency: ok [ 0.092513] Setting up static identity map for 0x11168 - 0x111a4 [ 0.094169] pinctrl core: initialized pinctrl subsystem [ 0.095067] regulator-dummy: no parameters [ 0.095531] NET: Registered protocol family 16 [ 0.095861] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.098245] cpuidle: using governor ladder [ 0.098303] Kirkwood: MV88F6282-Rev-A1. [ 0.098442] Feroceon L2: Enabling L2 [ 0.098480] Feroceon L2: Cache support initialised. [ 0.098912] [Firmware Info]: /ocp@f1000000/ethernet-controller@72000/ethernet0-port@0: local-mac-address is not set [ 0.098956] [Firmware Info]: /ocp@f1000000/ethernet-controller@76000/ethernet1-port@0: local-mac-address is not set [ 0.111652] bio: create slab <bio-0> at 0 [ 0.112817] SCSI subsystem initialized [ 0.113577] usbcore: registered new interface driver usbfs [ 0.113728] usbcore: registered new interface driver hub [ 0.113900] usbcore: registered new device driver usb [ 0.115310] Switched to clocksource orion_clocksource [ 0.117107] NET: Registered protocol family 2 [ 0.117810] TCP established hash table entries: 1024 (order: 0, 4096 bytes) [ 0.117833] TCP bind hash table entries: 1024 (order: 0, 4096 bytes) [ 0.117852] TCP: Hash tables configured (established 1024 bind 1024) [ 0.117901] TCP: reno registered [ 0.117914] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.117935] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.118092] NET: Registered protocol family 1 [ 0.119375] futex hash table entries: 256 (order: -1, 3072 bytes) [ 0.119844] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.119855] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.120097] msgmni has been set to 244 [ 0.120741] io scheduler noop registered [ 0.120752] io scheduler deadline registered (default) [ 0.122145] kirkwood-pinctrl f1010000.pinctrl: registered pinctrl driver [ 0.122798] mvebu-pcie pcie-controller.1: PCI host bridge to bus 0000:00 [ 0.122816] pci_bus 0000:00: root bus resource [io 0x1000-0xfffff] [ 0.122828] pci_bus 0000:00: root bus resource [mem 0xe0000000-0xf0000000] [ 0.122840] pci_bus 0000:00: root bus resource [bus 00-ff] [ 0.123382] PCI: bus0: Fast back to back transfers disabled [ 0.123397] pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring [ 0.123410] pci 0000:00:02.0: bridge configuration invalid ([bus 00-00]), reconfiguring [ 0.124029] PCI: bus1: Fast back to back transfers disabled [ 0.124659] PCI: bus2: Fast back to back transfers disabled [ 0.124769] pci 0000:00:01.0: BAR 8: assigned [mem 0xe0000000-0xe00fffff] [ 0.124785] pci 0000:00:02.0: BAR 8: assigned [mem 0xe0100000-0xe01fffff] [ 0.124801] pci 0000:01:00.0: BAR 0: assigned [mem 0xe0000000-0xe000ffff 64bit] [ 0.124827] pci 0000:01:00.0: BAR 2: assigned [mem 0xe0010000-0xe001ffff 64bit] [ 0.124851] pci 0000:00:01.0: PCI bridge to [bus 01] [ 0.124864] pci 0000:00:01.0: bridge window [mem 0xe0000000-0xe00fffff] [ 0.124881] pci 0000:02:00.0: BAR 0: assigned [mem 0xe0100000-0xe010ffff 64bit] [ 0.124907] pci 0000:02:00.0: BAR 2: assigned [mem 0xe0110000-0xe011ffff 64bit] [ 0.124930] pci 0000:00:02.0: PCI bridge to [bus 02] [ 0.124942] pci 0000:00:02.0: bridge window [mem 0xe0100000-0xe01fffff] [ 0.197741] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled [ 0.199094] f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 33, base_baud = 12500000) is a 16550A [ 0.700336] console [ttyS0] enabled [ 0.705802] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xf1 [ 0.712181] nand: Hynix H27U1G8F2BTR-BC [ 0.716047] nand: 128MiB, SLC, page size: 2048, OOB size: 64 [ 0.721736] Scanning device for bad blocks [ 0.790434] 4 ofpart partitions found on MTD device orion_nand [ 0.796305] Creating 4 MTD partitions on "orion_nand": [ 0.801474] 0x000000000000-0x000000080000 : "u-boot" [ 0.807444] 0x000000080000-0x0000000a0000 : "u-boot environment" [ 0.814356] 0x000000200000-0x000000400000 : "kernel" [ 0.820253] 0x000000400000-0x000002000000 : "root" [ 0.826636] libphy: orion_mdio_bus: probed [ 0.830964] mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4 [ 0.839200] mv643xx_eth_port mv643xx_eth_port.0 eth0: port 0 with MAC address c8:d7:19:1c:da:7d [ 0.848667] mv643xx_eth_port mv643xx_eth_port.1 eth1: port 0 with MAC address c8:d7:19:1c:da:7e [ 0.857555] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 0.864109] ehci-pci: EHCI PCI platform driver [ 0.868735] ehci-platform: EHCI generic platform driver [ 0.874168] ehci-orion: EHCI orion driver [ 0.878319] orion-ehci f1050000.ehci: EHCI Host Controller [ 0.883846] orion-ehci f1050000.ehci: new USB bus registered, assigned bus number 1 [ 0.891646] orion-ehci f1050000.ehci: irq 24, io mem 0xf1050000 [ 0.915326] orion-ehci f1050000.ehci: USB 2.0 started, EHCI 1.00 [ 0.922100] hub 1-0:1.0: USB hub found [ 0.925915] hub 1-0:1.0: 1 port detected [ 0.930416] usbcore: registered new interface driver usb-storage [ 0.938279] TCP: cubic registered [ 0.941614] NET: Registered protocol family 17 [ 0.946349] 8021q: 802.1Q VLAN Support v1.8 [ 0.951633] regulator-dummy: disabling [ 0.955835] UBI: attaching mtd3 to ubi0 [ 0.987855] UBI: scanning is finished [ 0.997894] UBI: attached mtd3 (name "root", size 28 MiB) to ubi0 [ 1.004015] UBI: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes [ 1.010858] UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 512 [ 1.017515] UBI: VID header offset: 512 (aligned 512), data offset: 2048 [ 1.024243] UBI: good PEBs: 224, bad PEBs: 0, corrupted PEBs: 0 [ 1.030197] UBI: user volume: 1, internal volumes: 1, max. volumes count: 128 [ 1.037372] UBI: max/mean erase counter: 5/4, WL threshold: 4096, image sequence number: 1236864779 [ 1.046465] UBI: available PEBs: 0, total reserved PEBs: 224, PEBs reserved for bad PEB handling: 20 [ 1.055807] UBI: background thread "ubi_bgt0d" started, PID 763 [ 1.062015] mvsw6171 10.mvsw6171: Found MV88E617x at f1072004.mdio-bu:10 [ 1.068763] mvsw6171 10.mvsw6171: Using indirect addressing [ 1.074540] drivers/rtc/hctosys.c: unable to open rtc device (rtc0) [ 1.096462] UBIFS: background thread "ubifs_bgt0_0" started, PID 766 [ 1.117066] UBIFS: recovery needed [ 1.211296] UBIFS: recovery completed [ 1.215055] UBIFS: mounted UBI device 0, volume 0, name "rootfs" [ 1.221117] UBIFS: LEB size: 129024 bytes (126 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes [ 1.230303] UBIFS: FS size: 24385536 bytes (23 MiB, 189 LEBs), journal size 9033728 bytes (8 MiB, 71 LEBs) [ 1.240004] UBIFS: reserved for root: 0 bytes (0 KiB) [ 1.245082] UBIFS: media format: w4/r0 (latest is w4/r0), UUID DC074FD1-9FF7-403E-82C6-3AA8230030F9, small LPT model [ 1.256070] VFS: Mounted root (ubifs filesystem) on device 0:10. [ 1.262488] Freeing unused kernel memory: 132K (c0417000 - c0438000) procd: Console is alive procd: - preinit - [ 2.436465] random: mktemp urandom read with 1 bits of entropy available Press the [f] key and hit [enter] to enter failsafe mode Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level mounting /dev/root procd: - early - procd: - ubus - procd: - init - Please press Enter to activate this console. [ 10.375574] NET: Registered protocol family 10 [ 10.411140] ip6_tables: (C) 2000-2006 Netfilter Core Team [ 10.454460] Loading modules backported from Linux version master-2014-11-04-0-gf3660a2 [ 10.462446] Backport generated by backports.git backports-20141023-2-g4ff890b [ 10.471528] ip_tables: (C) 2000-2006 Netfilter Core Team [ 10.488079] nf_conntrack version 0.5.0 (1958 buckets, 7832 max) [ 10.514295] xt_time: kernel timezone is -0000 [ 10.560714] cfg80211: Calling CRDA to update world regulatory domain [ 10.585918] cfg80211: World regulatory domain updated: [ 10.591087] cfg80211: DFS Master region: unset [ 10.595476] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) [ 10.605268] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A) [ 10.613320] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A) [ 10.621367] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A) [ 10.629415] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A) [ 10.637465] cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s) [ 10.646995] cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s) [ 10.655119] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A) [ 10.663171] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A) [ 10.731171] Marvell TOPDOG(R) 802.11 Wireless Network Driver version 0.13 [ 10.738036] PCI: enabling device 0000:00:01.0 (0140 -> 0143) [ 10.765365] PCI: enabling device 0000:00:02.0 (0140 -> 0143) [ 10.805442] PPP generic driver version 2.4.2 [ 10.811256] NET: Registered protocol family 24 [ 11.557548] ieee80211 phy0: Command RF_ANTENNA error 0x2 [ 11.562892] ieee80211 phy0: failed to set # of RX antennas [ 11.569408] ieee80211 phy0: Command RF_ANTENNA error 0x2 [ 11.574761] ieee80211 phy0: failed to set # of TX antennas [ 11.580295] ieee80211 phy0: 88w8366 v48, c8d7191cda7f, STA firmware 4.1.0.3 [ 11.598785] ieee80211 phy1: Command RF_ANTENNA error 0x2 [ 11.604130] ieee80211 phy1: failed to set # of RX antennas [ 11.631509] ieee80211 phy1: Command RF_ANTENNA error 0x2 [ 11.636892] ieee80211 phy1: failed to set # of TX antennas [ 11.642408] ieee80211 phy1: 88w8366 v48, c8d7191cda81, STA firmware 4.1.0.3 procd: - init complete - [ 13.967317] mv643xx_eth_port mv643xx_eth_port.0 eth0: link up, 1000 Mb/s, full duplex, flow control disabled [ 13.985181] device eth0 entered promiscuous mode [ 13.993460] br-lan: port 1(eth0) entered forwarding state [ 13.998946] br-lan: port 1(eth0) entered forwarding state [ 14.022121] mv643xx_eth_port mv643xx_eth_port.1 eth1: link up, 1000 Mb/s, full duplex, flow control disabled [ 15.995320] br-lan: port 1(eth0) entered forwarding state BusyBox v1.22.1 (2014-12-29 17:19:59 CET) built-in shell (ash) Enter 'help' for a list of built-in commands. _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- CHAOS CALMER (Bleeding Edge, r43797) ----------------------------------------------------- * 1 1/2 oz Gin Shake with a glassful * 1/4 oz Triple Sec of broken ice and pour * 3/4 oz Lime Juice unstrained into a goblet. * 1 1/2 oz Orange Juice * 1 tsp. Grenadine Syrup ----------------------------------------------------- root@OpenWrt:/#
The EA4500 runs a bit warm hence it may not reboot when warm (hot). It's important for the EA4500 to stay cool with a fan blowing cool air straight at it during flashing and rebooting to avoid any complication. See discussion in Linksys Community See Forum
The factory firmware EA4500 uses ap8x as wireless driver. The source code is contained in the GPL package. It is uses different kernel API and is only tested & targetted older kernel versions.