Joined: 10 Apr 2021
|Posted: Sun Apr 11, 2021 14:09 Post subject: Flashing the Linksys EA6350 v2 in 2021: A layman's journey
|Hello dd-wrt forum! This post serves as a documentation of how I flashed my Linksys EA6350 v2 router from stock to dd-wrt. The goal of this post is to provide further information about flashing dd-wrt on the EA6350 v2, and provide another success story to flashing the rotuer.
But first, a few warnings:
* If you are the proud owner of a Linksys EA6350 v3, do NOT follow these steps. Your router is based on a Qualcomm chipset rather than a Broadcom chipset, which is what the v1 and v2 are. If you follow these steps or use the same image using a Linksys EA6350 v3 rather than v2, you will most probably ruin your router. Hopefully not permanently, but the point stands. This is not the thread you're looking for, my friend.
* While most of the information I've found seems to show that the v1 can be flashed using the same method, I can not confirm this myself and doing so is at your own risk. I'm fairly certain the v1 can be flashed using Linksys' GUI without serial (see resources below).
* During this, you will have to solder some sort of connector/cable to the serial pinouts on the inside of the rotuer. Most of the things you can mess up in software/flashing the firmware are generally reversible, but this is not one of them. If you are not confident in your soldering skills, please find a friend, family member or professional who can do that bit for you. Granted there are only three pin holes you need to solder in order to get access to serial, doing this incorrectly can cause irreversible damage to your router! Accidentally bridging two connector points is a fairly easy thing to do and if you i.e. bridge the VCC and Tx points, you might end up frying your router. Seriously, if you value this router at all and you're not 100% sure you can do it yourself, get someone else to do it. And yes, you should absolutely solder the serial pinouts to something. Just holding the pins from your adapter/raspberry pi in place with tape or whatever else is NOT sufficient, as it will garble the data going back and forth.
... And with the scary stuff out of the way, here are some info points!
Router model: Linksys EA6350 v2
Stock firmware: at this time the rpi I used for logging is off the network, will be added later heh.
DD-Wrt firmware: beta r46316 (9th of April 2021), linksys-ea6350-webflash.bin
Tutorial used: The oft-linked to tutorial by mengalva in the EA6350 support thread (bless). I only deviated from these steps in that I used a Raspberry Pi Model B (non-plus) for my serial connection rather than an USB to TTL adapter. The reason being none were readily available for purchase in my area for a reasonable price, and AliExpress generally takes about a month to ship things to my part of the world. Mengalva might only have put two posts on these forums ever, but their tutorial surely have let many a EA6350 v2 owner unlock the true potential of their router. For that we are ever grateful.
* The EA6350 support thread which contains a LOT of information about the first three hardware versions of the EA6350 (not the latest v4), although not so much about the EA6350 v3. It's not a Broadcom chipset and as such does not belong in this forum section (sad). In this thread you will find the step-by-step tutorial I linked to earlier posted by mengalva, which is how I flashed my router.
* The Peacock Thread. No, I'm not kidding. It might be from 2009 but a lot of the information here is still very much valid. Granted most of the stuff about spesific releases and revisions are not, everything else is. Give it a read and THEN decide which points are outdated and which are not.
* The dd-wrt wiki entry for the EA6300, which explains how the EA6350v2 needs to be flashed with the serial method.
* The release post for the revision I flashed on my router, where I posted my success in flashing it as well as some details on my deployment and minor issues.
* A mirror of the original WikiDevi article about the EA6350v2, where you will find a picture of the insides of it with the serial pins circled in red. Interestingly, the article (as well as the specs listed in the supported routers list) states that the v2 has a CPU clock of 1GHz. However, CFE and dd-wrt itself insists mine is running at 800MHz. Not sure what that's about, but I don't think it really matters. I've yet to see the router spike above 20%, I'm actually considering underclocking it to 600MHz to pull the temps down from the stable 75c it's at right now. I'll update this thread if anything horrible happens as a result
* This eLinux article about using the Raspberry Pi's serial connection, and how to get a terminal running via serial. This article also covers if you have the rpi 3, which has a bluetooth radio. The bluetooth radio, if memory serves me right, occupies the serial port by default and you have to reconfigure it if you want to use that. I used the screen utility with
this command to get a console running, as well as log everything it did to a file. Note: Rename that file to something else before you start a new screen session, or it will be overwritten.
Here's what I did in a step-by-step manner:
0. I read myself blind on anything and everything I could find about the Linksys EA6350 and its hardware versions. I discovered that mine was the one that needed to be ripped open and soiled with soldering tin. Hurray.
1. I found out which of the bazillion different pins on my rpi's GPIO were ground, Tx and Rx via the elinux article I linked earlier. Then I planned out how I would actually connect my router to these pins, and landed on using the fan cable from a computer fan I no longer wanted.
2. I unscrewed the screws hidden under the routers' feet and broke open the router. Sidenote: The numerous plastic clips on the inside made the cover a PAIN to pry open. Don't be shy on using a bit of force, maybe even a plasic wedge of some sort, to pry it open. Some of the clips will probably break, but as long as you work your way carefully enough there will be enough of them left over to put it back on. Besides, it's screwed into place to the plastic clips are kinda redundant.
3. I soldered the Tx, Rx and GND pinouts to the cable, then unsoldered it as I realized I had to sneak in the cable through the air vents BEFORE I soldered it stuck. And then soldered it back on. Whoopsie!
4. I set up a serial terminal on the Raspberry Pi using screen so I could get a look at the boot-up log from the router, as well as get into CFE by spamming CTRL-C during boot. I used this script to get the terminal going. Then, I ran every CFE info-like command in the book to get a log of what the state of the router was before I flashed, in case I had to un-brick it with some help. For reference, here are all the logs: full boot log - CFE devinfo show - CFE nvram show - CFE printenv - CFE show clocks - CFE show devices - CFE show heap - CFE show memory
You will also find them zipped up in a file attached.
5. I disconnected power to the router and plugged my Windows machine with tftp64 into one of the LAN ports. I set it to be a tftp client and selected the firmware I linked to above, and prepared to Set it. See the tutorial I linked to earlier for more. Then I connected the serial cable to the Raspberry Pi and spun up a serial screen.
6. I booted the router up and spammed CTRL-C on the Raspberry Pi serial session. When I got into CFE, I typed in
Then immediately afterwards, I pressed "Set" on the tftp window on my Windows machine, and the router started downloading and programming the image. Once it was done programming the first sector, I typed in
|flash -noheader : nflash0.trx |
in the CFE session and pressed Set once again in tftp.
|flash -noheader : nflash0.trx2 |
7. I rebooted the router and watched the serial connection report that indeed, dd-wrt was now booting up!
And that would be all! I think I got everything down. I hope this can be of assistance to any would-be dd-wrt users who are unsure what to do. I'm more than happy to answer any questions I have, and I'll answer them to the best of my ability!
|Zip containing nearly all logs I made via the serial connection. Also contains the screen script I used on the Raspberry Pi to establish that serial connection.
|| linksys ea6350 v2 logs and more.zip
|| 37.99 KB
|| 10 Time(s)
Linksys EA6350v2 - dd-wrt r46316 (Client repeater)
Cisco WAP371 - Stock (AP)
TP-Link Archer C2 v1 - OpenWRT (gathering dust)