Linksys WRT54GL v1.0

Overview
WRT54GL v1.0 serial numbers start with CL7A.

Links of Interest
WRT54G series on Wikipedia Linksys WRT54Gxx page on the DD-WRT wiki WRT54G page on the OpenWrt wiki

Flashing dd-wrt
Supported by dd-wrt as of = ?


 * 1) Do a hard reset
 * You can HARD RESET by holding down the reset button on the back of the router for 30 seconds, then pulling the power cord for 30 seconds while STILL holding the reset button, and then plugging in the power cord for a final 30 seconds while STILL holding the reset button. You will hold the reset button in for 90 seconds without releasing it. Then release the reset button and wait for the router to finish doing whatever it's going to do. Usually the WLAN light will come on close to last in the boot sequence. Sometimes, however, the POWER light will keep flashing for a good while. Either way, once you're sure the router has done its thing, power cycle the router, by unplugging and replugging the power connector in the back of the router. There's no need to wait between unplugging and replugging.
 * 1) Download and install the dd-wrt.v24-12548_NEWD_mini.bin build
 * You should check the MD5 HASH of the firmware after downloading it, see Hashes & Checksums. Turn off and disable your firewall, turn off and disable your antivirus, and sign into your linksys router with Internet Explorer only, **DO NOT USE FIREFOX** (Mac users: use Safari instead of Firefox), and use the firmware upgrade web interface to update your router with dd-wrt. DO NOT close your browser, DO NOT interrupt the process, be EXTREMELY PATIENT, even after the firmware is already supposedly upgraded. Wait around for a while, and make sure it settles down and is definitely finished doing whatever it's going to do. The router needs time to rebuild the NVRAM after it has been flashed, and if you interrupt this you will regret it!
 * 1) Decide if you would like to keep the MICRO or MINI version, or upgrade to the STANDARD, VOIP, or VPN versions. DO NOT try to load a MEGA build on this router (see above). If you are keeping MICRO or MINI, you are done, otherwise, continue
 * Read about the different versions' features here: What is DD-WRT?. If you won't be needing the features in the larger versions such as standard, you may be able to increase the responsiveness of your router by getting the smallest version that includes the features you need. Also, you can always update to a larger version later if down the line you need the extra features.
 * 1) Do a hard reset
 * 2) Install the version of dd-wrt you want (again, you can't use MEGA... really)
 * 3) Do a hard reset
 * 4) Check for recommended builds here.

Flashing OpenWrt
Please insert instructions here

Flashing Tomato
Supported by TomatoUSB as of = 54/NoUSB-Std (4MB flash)

Please insert instructions here

Reverting

 * 1) Read the peacock announcement found here: http://www.dd-wrt.com/phpBB2/viewtopic.php?t=51486
 * 2) Do a Hard reset or 30/30/30 on the router according to note 1 of the peacock announcement (30/30/30)
 * 3) Set a static IP on your computer to 192.168.1.7. Subnet mask should be 255.255.255.0.
 * 4) Connect the lan cable from your computer to a LAN port of your router. Make sure your router is plugged in. Nothing should be connected to your computer or the router except the LAN cable between them. Turn your firewall and any wireless computer connections OFF.
 * 5) Power cycle the router (uplug the power from the router for 30 seconds and then plug it back in)
 * 6) Open your browser to 192.168.1.1 by putting that in the browser address window of your browser. You should open the Linksys webgui and NOT a page that says Management Mode. If you see management mode, power cycle the router again.
 * 7) Enter your username and password
 * 8) Go to administration and firmware upgrade
 * 9) Navigate to the folder that you are using, and select WRT54G_v4.21.1_fw.bin once you've unzipped it.
 * 10) Hit upgrade
 * 11) When you get a success, wait FIVE FULL minutes.
 * 12) When you can again access the Linksys webgui using a browser at 192.168.1.1, do another Hard reset or 30/30/30 on the router.
 * 13) Reset your computer Ethernet connection to auto IP and auto DNS

JTAG Pinouts
nTRST  1o o2	GND TDI  3o o4	GND TDO  5o o6	GND TMS  7o o8	GND TCK  9o o10	GND nSRST 11o o12  N/C

Using Universal JTAG Adapter

white   1o o2	 black red   3o o4	 GND blue   5o o6	 GND green   7o o8	 GND yelow   9o o10  GND orange 11o o12  N/C


 * /noemw /nocwd switches required

JTAG Recovery
JTAG:


 * 1) Backup CFE x2 (Compare the files, they must match exactly or there is something wrong with your JTAG setup)
 * 2) Erase Wholeflash x2
 * 3) Flash CFE
 * 4) Unplug Power
 * 5) Unplug JTAG Cable

TFTP:


 * 1) Set Rig ip static 192.168.1.10
 * 2) Plug network cable from rig to port 1
 * 3) Get TFTP ready, server ip - 192.168.1.1, Password - blank, file - dd-wrt.v24_mini_wrt54g.bin
 * 4) Plug in power
 * 5) As soon as windows says "connected" hit upgrade. May have to use a network hub to make sure windows is always connected.
 * 6) Hard Reset 30\30\30

Serial Pinouts
VCC 1 o o 2  VCC TX1 3 o o 4  TX0 RX1 5 o o 6  RX0 N/C 7 o o 8  N/C GND 9 o o 10 GND

Serial Recovery
Modified Redhawk0 instructions
 * 1) Connect Serial cable
 * 2) Start one of the programs from above
 * 3) Get TFTP ready with file selected
 * 4) Use dd-wrt.v24_mini_wrt54g.bin
 * 5) Connect power to the router
 * 6) start a rapid fire Cntl-C as you plug the router to power
 * 7) type "nvram erase" w/o quotes, hit enter
 * 8) type "flash -noheader : flash1.trx" w/o quotes, this starts the tftp daemon, hit enter
 * 9) but have tftp.exe ready
 * 10) Click go or start on TFTP
 * 11) give it 5 minutes after it finishes
 * 12) then power cycle....hard reset...then config
 * 13) when it stops spitting out txt in the serial consol....hit the enter key...you should get a login prompt...at that point, power cycle it, Hard reset or 30/30/30...then config
 * 14) you'll see it boot up

vlan Info

 * VLAN Support

Defaults
"/proc/switch/eth0" exists

1 2 3 4 | case labels 3 2 1 0 | nvram port numbers

root@DD-WRT:~# nvram show | grep vlan.ports vlan1ports=4 5 vlan0ports=3 2 1 0 5* size: 19872 bytes (12896 left) root@DD-WRT:~# nvram show | grep port.vlans port5vlans=0 1 16 port4vlans=0 port3vlans=0 port2vlans=0 port1vlans=0 port0vlans=1 size: 19872 bytes (12896 left) root@DD-WRT:~# nvram show | grep vlan.hwname vlan1hwname=et0 vlan0hwname=et0 size: 19872 bytes (12896 left) root@DD-WRT:~# lsmod Module Size Used by ip_nat_pptp 2560 0 (unused) ip_conntrack_pptp 3036 1 ip_nat_proto_gre 1664 0 (unused) ip_conntrack_proto_gre 2584 0 [ip_nat_pptp ip_conntrack_pptp] etherip 5104 0 (unused) switch-robo 5356 0 (unused) switch-core 6352 0 [switch-robo] root@DD-WRT:~# ls /proc/switch eth0 root@DD-WRT:~# cat /proc/switch/eth0/vlan/0/ports 0 1 2 3 5t* root@DD-WRT:~# cat /proc/switch/eth0/vlan/1/ports 4 5t root@DD-WRT:~# cat /proc/switch/eth0/vlan/2/ports 4 root@DD-WRT:~#

nvram commands
root@DD-WRT:~# nvram set vlan1ports="3 4 5" root@DD-WRT:~# nvram set vlan0ports="2 1 0 5*" root@DD-WRT:~# nvram commit root@DD-WRT:~# reboot

nvram
Port 1 moved to WAN vlan root@DD-WRT:~# nvram show | grep vlan.ports vlan0ports=2 1 0 5* vlan1ports=3 4 5 size: 19850 bytes (12918 left) root@DD-WRT:~# nvram show | grep port.vlans port5vlans=0 1 16 port3vlans=0 port1vlans=0 size: 19850 bytes (12918 left) port4vlans=0 port2vlans=0 port0vlans=1 root@DD-WRT:~# nvram show | grep vlan.hwname vlan1hwname=et0 size: 19850 bytes (12918 left) vlan0hwname=et0 root@DD-WRT:~#

GUI
Port 4 moved to WAN vlan root@DD-WRT:~# nvram show | grep vlan.ports vlan1ports=4 5 vlan0ports=3 2 1 0 5* size: 20005 bytes (12763 left) root@DD-WRT:~# nvram show | grep port.vlans port5vlans=0 1 16 port4vlans=1 18 19 port3vlans=0 18 19 port2vlans=0 18 19 port1vlans=0 18 19 port0vlans=1 18 19 size: 20005 bytes (12763 left) root@DD-WRT:~# nvram show | grep vlan.hwname vlan1hwname=et0 vlan0hwname=et0 size: 20005 bytes (12763 left) root@DD-WRT:~#

Hardware
system type            : Broadcom BCM947XX processor              : 0 cpu model              : BCM3302 V0.8 BogoMIPS               : 199.47 wait instruction       : no microsecond timers      : yes tlb_entries            : 32 extra interrupt vector : no hardware watchpoint     : no VCED exceptions         : not available VCEI exceptions        : not available unaligned_instructions : 1501948 dcache hits            : 3604983805 dcache misses          : 1069308396 icache hits            : 1669945160 icache misses          : 616661321 instructions           : 0
 * Platform: Broadcom MIPS
 * CPU: Broadcom BCM5452 at 200 MHz (130nm construction) Broadcom Product Page
 * overclocking support in DD-WRT (verified in v24 SP1)
 * /proc/cpuinfo output
 * Flash: 4 MB NAND, single chip
 * System Memory: 16 MB 16-bit DDR SDRAM
 * USB: None
 * Wireless Radio: Broadcom BCM43xx 802.11b/g
 * Antenna: Dual folding, removable, rotating antennas (NOTE: it has been reported as of September 26, 2009, that for up to a year and a half ago until the present, the version of the WRT54GL you have acquired in that time period may have molded antennas which are NOT REMOVABLE)
 * Network Switch: (4) 10/100 LAN + (1) 10/100 WAN, Auto MDX/MDI-X (Integrated in CPU)
 * Serial pinout: Yes
 * JTAG pinout: Yes

Other install notes
If you are upgrading from the web interface, you should use the GENERIC versions. If you are upgrading via TFTP, you need the versions that contain headers with hardware info in them.

EKO build 12548 Newd_Mini.bin is the recommended build for this router. It works well. You can also upgrade to 12548 Newd_Std.bin AFTER you have put on the mini version. Here is a link to the mini version download: ftp://dd-wrt.com/others/eko/V24_TNG/svn12548/dd-wrt.v24-12548_NEWD_mini.bin.

Troubleshooting
If you make the mistake of not upgrading with the MICRO or MINI version first, you will end up with a router that has a flashing power light. You will be able to ping the router, but will not be able to access the web interface. You will then have to TFTP the LINKSYS firmware (NOT THE DD-WRT FIRMWARE) back on to the router to rescue it. You can connect your modem directly to your computer, and download the Linksys firmware from their site. Once you have rescued your router by restoring the Linksys firmware, you can then try upgrading to DD-WRT again (if you're still up for it!). THIS TIME, use the micro or mini version first!

Instructions on restoring your router are here: Recover from a Bad Flash

A few quotes from the following link: http://forums.whirlpool.net.au/forum-replies-archive.cfm/686075.html

Q: I'm a bit worried about how many times routers can be re-flashed with firmware - is there a limit?? A: There really isn't a limit to number of times you can flash. (within reason) Flash memory does have a life. Like your usb stick, 100,000 times or 10,000 times, I don't remember but it is alot, otherwise they would be useless.

Don't go and flash your router 10,000 times and test this person's assertion literally. But it appears that a few extra flashes here and there are not going to turn your router into a paperweight. So there's no need to worry about switching from micro to mini or mini to standard, or in reverse, as your needs change.

Running NEWD2 and/or K26 on the GL model
WARNING This is ONLY for those that can recover using JTAG, '''and is an unnecessary hack for people who want to try the k26 driver. (God only knows why a person would on this router.)''' If this goes wrong...you MUST use JTAG to recover...you've been warned...you are altering the CFE of the router. The WRT54GL router must already have dd-wrt installed before you begin this process.

1 -First start by backing up your current CFE.BIN file and keep it in a safe place

2- Enable ssh services in the dd-wrt configuration at 192.168.1.1. This is REQUIRED for WinSCP to work (step9)

3- Next you will need to download the "new" CFE for the WRT54GL model located here. This is an altered CFE.BIN from a WRT54G-TM

4- Obtain a Hex Editor like xvi32

5- Edit your et0macaddr (located at 10CAh) to match your router's MAC address (exa. currently 00:14:BF:00:00:01)

6- Edit your new cfe il0macaddr (located at 1154h) to your router's MAC address plus one (exa. currently 00:14:BF:00:00:02)

7- Save your edited file and call it K26-CFE.BIN

8- Hard reset your GL router using the 30/30/30 method

9- Using WinSCP upload the modified CFE (named K26-CFE.BIN) to the routers /tmp directory.

10- Log into your router and issue the following commands on the command line.

mtd unlock cfe

mtd write K26-CFE.BIN cfe

When it completes it should reboot itself. - there has been a report that it did not reboot itself...if it doesn't reboot by itself...manually reboot it.

11- Verify you have the new cfe by backing up the CFE again.

12- verify the original K26-CFE.BIN file and this new cfe.bin file are identical (you can use the "comp" command in windows to compare them)

12- Once you have verified the new CFE.BIN file is on the unit, hard reset the unit again, let it boot up, then load up the a NEWD2_mini.bin build or K26_mini.bin build. (or any other "generic" NEWD2 or K26 build that is under 3.7M in size)

Hardware Modification

 * WRT54GL Memory & Flash Mod

Comments
[Comment added 18/03/08 [Matt]]

I bought a WRT54GL-UK this week....and flashed the firmware. After the flash, the device reboots constantly! Tried soft reset/hard reset. If I disconnect all wired lan connection, and use only wifi....the device is fine. If I kill the radio, then use the wired lan, device is fine. If I enable the radio with the wired lan on.....the device goes insane. Should I be afraid?

"[Comment added 25/6/2008 [jas3]]"

No, Matt. You don't need to be afraid. But you need to rever to the micro version, then do a hard reset, then upgrade to standard, then do another hard reset. That should fix the problem with your NVRAM that is likely causing your reboots.

"[Comment added 05/07/2008 [broadbandwizard]]"

I just bought two WRT54GL routers and after burning them in a couple of weeks, I flashed v24 generic mini onto one of them. I had configured both, so I reset the target router with the software reset from the GUI, then I did the 30 second pushbutton reset because there have been so many warnings. It loaded and works perfectly, although I still cannot find the "use local time" check box. I have continued to read about installation and operation, and I find that I was supposed to hold the reset button for 30 seconds after the successful flash. I did not do that, but it appears to be working fine. My question: What problem (if any) is lurking inside my router because I did not do the after firmware install reset?

DD-WRT makes a decent router into something fantastic.

"[Comment added 07/07/2008 [rickm]]"

I tried to upgrade a WRT54G V4 (clearly marked and SN starts with CDFA) but kept getting "Upload are failed!". I then started nosing around and saw that it had v4.3.0 Linksys firmware, whereas I know that the latest for the WRT54G V4 was supposed to be 2.3.1. This was actually a WRT54GL router, cleverly disguised as a WRT54G. I then tried flashing the GL firmware (mini) and it worked. I then tried to flash with the mega and that failed, so flashed it with the standard and it worked. Just something to watch for.

"[Comment added 02/08/2009 [kfir]]"

I tried to upgrade a WRT54GL v1.1 from DD-WRT v.23 sp2 to v.24 sp1, due to bugs in the former version (after ~10 hours i got replies for about half the packets). Anyway, I followed all directions (hard reset, etc), but ended up with a semi-working router. Some menu and sub-menu items are named "undefined" in the GUI, and I do not have all the original menu tabs. I tried hard-resetting, but it does not change. Reloading the same firmware (dd-wrt.v24_std_generic.bin) and even downgrading back to (dd-wrt.v23_generic.bin) fail, with an error message (something like "Upgrade Failed") that pops up 10-15 minutes after I clicked "Update". I now plan to try reverting the router back to Linksys original FW, but still a bit concerned about bricking it altogether.

"[Comment added 02/08/2009 [kfir]]"

Does the dd-wrt have a way of knowing I posted a comment about it? ;-) 10 minutes after my previous comment, the router started showing a normal-looking bug-free v24 sp1 GUI, without any intervention by anyone. I guess this new version has some AI built into it... ;-)

"[Comment added 05/06/2009 [akopts]]"

It is not always true that "there are no special requirements". I spent hours trying to flash my WRT54GL v1.1 with mini, micro, at different LAN speed, from different browsers, and it always ended up with "Upgrade are failed". Finally, I was advised to use device specific firmware, and it worked, but not via GUI, only via TFTP.

"[Comment added 16/07/2009 [Magmatrix]]"

My WRT54GL 1.1 said "upgrades are failed" every time i tried to flash it with dd-wrt.v24_mini_generic.bin. I had to use dd-wrt.v24_mini_wrt54g.bin, probably because the WRT54GL looks at the header to make sure it is marked as a WRT54 file. Using "tftp -i 192.168.1.1 PUT dd-wrt.v24_mini_wrt54g.bin" solved the problem.

"[Comment added 08/14/2009 [BobofVA]]"

I just purchased a NIB WRT54GL V1.1 (CL7C). It came with down level Linksys firmware on it, 4.30.11. I upgraded it to Linksys 4.30.12, the latest. This is recommended in the procedures as a precursor to installation of any DD-WRT release, thus I followed that advice. I then reset the router using the button on the back. Next I installed dd-wrt.v24_mini_generic.bin. There is some disagreement in prior comments about whether or not std can be flashed directly. I saw no disadvantage, other than time, with flashing mini first. That flash completed successfully. I reset the router using the button on the back. Last, I flashed dd-wrt.v24_std_generic.bin. This also completed successfully. All flashes were performed using the web interface. The biggest hassle was dd-wrt insisting I change the id/password to something other than the default before it would let me access the menus.

"[Comment added 02/08/2010 [RobWala]]"

I just bought a WRT54GL and would like to flash it with the dd-wrt.v24-12548_NEWD_mini.bin (the recommended build for this router according to this WIKI). I cannot find the MD5 checksum for this file here anywhere - am I missing it or is it not posted for this particular build? Does anybody have a checksum handy for this file? I've never tried this process before and I want to make I've got a good file to work with! Thanks in advance.

"[Comment added 02/19/2010 [Rogueelite]]"

@Robwala - I would suggest using the v2.4 SP1 Release of the Mini, and Standard builds if this is your first time to attempt the flash. Both have MD5 hashes available on the dd-wrt wiki.

"[Comment added 19/03/2010 [lledmouse]]"

Hi, I have been able to successfully upgrade the firmware with this guide. I have used v24 preSP2 build 13064 (which was the recommended one in the router database page). Firstly, I used micro_generic and then standard_generic. I waited at least 2 minutes after each firmware upgrade and I did a 30/30/30 reset before and after each firmware upgrade. Everything as the guide suggested. Regards.

[Comment added 06/10/2012 [Oz]]

I want to do revert my WRT54GL v1.1 from DD-WRT to Linksysy firmware, the firmware file of linksys is 3.2MB. More than 3 MB. Is that okay? I'm afraid if i'ts fail. Thank you.