Linksys WRT54GL

From DD-WRT Wiki

Jump to: navigation, search

To find other WRT54* model wiki pages see here.
Image:linksys_wrt54gl_front_mini.jpg Image:linksys_wrt54gl_back_mini.jpg

Contents

[edit] Hardware Specifications

  • Platform: Broadcom MIPS
  • CPU: Broadcom BCM5452 at 200 MHz (130nm process)
    • overclocking is supported in DD-WRT
    • Use `cat /proc/cpuinfo` to verify BogoMIPS. Default output:
system type             : Broadcom BCM947XX
processor               : 0
cpu model               : BCM3302 V0.8
BogoMIPS                : 199.47
[...]
  • Flash: 4 MB NAND, single chip
  • System Memory: 16 MB 16-bit DDR SDRAM
  • Wireless Radio: Broadcom BCM43xx 802.11b/g
  • Antenna: Dual folding, removable, rotating antennas
    • NOTE: (26 Sep 2009) Non-removable molded antennas may have been used in the past a year or two
  • Network Switch: (4) 10/100 LAN + (1) 10/100 WAN, Auto MDX/MDI-X (Integrated in CPU)
  • Serial / JTAG / USB: Yes / Yes / No


[edit] Firmware

See the DD-WRT FAQ for build info and download links.

NOTE: Check the Peacock announcement for recommended builds, and also research build threads.

Q: Why can't I directly upgrade from a stock Linksys firmware to DD-WRT versions other than MICRO or MINI?

A: Stock Linksys firmware on the WRT54GLv1.x won't accept firmware over 3MB, or it will show the error: "Upgrade are failed!" [sic]. The micro or mini versions of DD-WRT must be flashed BEFORE flashing the standard, voip, or vpn versions. Hard reset the router to restore firmware defaults BEFORE AND AFTER upgrading, even to micro or mini DD-WRT builds.

Q: Is there a limit to how many times routers can be flashed with firmware?

A: Flash memory does have a lifespan, like an SD card or USB flash drive, and depends upon NAND vs. NOR flash, but at least 100,000 write cycles is common. This is why limiting JFFS and script writes is recommended.

[edit] Build Size

DD_WRT boot log MTD partition layout:

Creating 5 MTD partitions on "Physically mapped flash":
0x00000000-0x00040000 : "cfe"
0x00040000-0x003f0000 : "linux"
0x00124c00-0x003d0000 : "rootfs"
mtd: partition "rootfs" doesn't start on an erase block boundary -- force read-only
0x003f0000-0x00400000 : "nvram"
0x003d0000-0x003f0000 : "ddwrt"

Thus the linux partition size limit is 0x3F0000-0x40000 = 3866624 bytes = 3776 KB

[edit] Installation from Linksys firmware

Before starting, read the build info and Peacock announcement linked above.

  • Recommended: check the MD5 HASH of the firmware after downloading - a bad hash can mean a bad firmware download (and flashing a bad firmware can brick your device). See Hashes & Checksums.
  • DO NOT try to load a MEGA build on this router, as they are ~8MB.
  1. Use the MINI (or MICRO) generic build (broadcom folder) for initial flash from the Linksys firmware
    • A trailed build (with wrt54g in the name) is NOT required except for TFTP upgrades (see below).
  2. Do a hard reset then login to the Linksys GUI at http://192.168.1.1
  3. Use the firmware upgrade web interface to update your router with dd-wrt. DO NOT close your browser or interrupt the process until you are sure it has completed.
  4. After ~3 minutes, the WLAN light will turn on. Access dd-wrt at http://192.168.1.1 and set a password.

[edit] Upgrade from DD-WRT

  1. Compare different build versions' features here. If larger versions' features aren't needed, the available memory will be increased by using the smallest version with the needed features.
    • MEGA - As stated before on this page, the WRT54GL cannot support MEGA, so don't try.
    • MICRO, MINI, STANDARD (e.g. VoIP or VPN) versions - continue with the following steps:
      1. Power cycle the router, then hard reset after boot
      2. Install the desired generic dd-wrt build, from the broadcom folder, via the GUI
      3. Wait again for the process to complete and the lights to return to normal (3-5 minutes)
      4. Power cycle again, then hard reset after boot
      5. Set a password then configure dd-wrt

[edit] TFTP Upgrade

To upgrade via TFTP, a trailed build with wrt54g in the name is required, which has a header with hardware info.

[edit] TFTP Recovery

For a router that it stuck with a flashing power light with no GUI access, but responds to pings, TFTP of the Linksys firmware is required (NOT DD-WRT!) to rescue it. This occurs most commonly from NOT using a MICRO or MINI build for initial flash. Instructions on restoring with TFTP are here.


[edit] 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 or HxD
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 completed, it should reboot. If it doesn't, 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 the new CFE.BIN file is verified on the unit, hard reset again and let it boot, then load a NEWD2_mini.bin or K26_mini.bin build (or any other "generic" NEWD2 or K26 build under 3.7M).