Introduction: Old Dog, New Tricks: Mod a Linksys WRT54G-series Router
Take a plain, ordinary (read: boring, with limited functionality) $60 wireless router and supercharge it with cool features and lots more functionality, control, and diagnostics. There's much more under the hood of these devices than is accessible with the vendor's default firmware versions. Even the updates from the vendor's support website unlock only a fraction of the router's capabilities.
Third-party developers have made firmware upgrades available that unleash a lot more functionality.
"What is this 'firmware' of which you speak?" you ask. Well, that router is really just a fancy pile of switches waiting to be told what to do; that's the hardware. The firmware consists of the start-up instructions that make those switches actually do things. It's called firmware because it's not in the form of traditional "software" -- it's not on a moving disk. It is stored on a non-volatile memory (NVRAM) chip. The good news is: the vendors allow changes to that chip, so if they produce new versions of firmware, you -- the end-user -- can copy another version into NVRAM, letting your old device do new tricks. It also means that the chip can hold other code -- code written by someone other than the original vendor...
Note: I'm working on an updated version of this "-able" using firmware release v.24 SP1. Stay tuned...
Step 1: Assumptions and Preliminary Notes
Assumptions for this Instructable
- Using DD-WRT v23.SP2 firmware images
- Using Linksys WRT54G v1.1 router (serial # prefix CDF2)
- For upgrading from the original Linksys firmware, please use the generic mini version (dd-wrt.vXX_mini_generic.bin) and flash it from the web GUI interface.
- After this first flash upgrade, any other DD-WRT full firmware binary may be applied.
- For flashing via the web GUI interface (after applying the mini firmware), always use the included 'generic' binaries.
- The other Linksys router version-specific binaries are meant to be applied only through tftp upgrades.
- WARNING: Never, and I say never try to clear the nvram by the mtd utility. (mtd erase nvram). This will also delete your hardware MAC addresses which aren't stored in the CFE like in other routers -- the command line mtd utility can permanently brick your router.
Step 2: Prepare the Router for Upgrade
1) Determine the version of the router, to know what the technical details are for your specific model
2) Download the Upgrade firmware version utility from Linksys. This is a TFTP utility needed for upgrading to any DD-WRT firmware type except "generic"
3) Download latest firmware from DD-WRT Downloads page:
3.1) Download the Mini firmware for your specific router model. Mini flash is required for all upgrades, as an interim stage between Linksys firmware and the final DD-WRT firmware configuration.
3.2) The Standard, VPN & VOIP versions have different feature sets, but all share the same core extended functionality.
3.3) If zip files are downloaded, there are different file versions within for the different router models, so be careful which file you select when upgrading.
4) Reset the router to factory defaults. The router's default configuration should now be the following:
4.1) IP address: 192.168.1.1
4.2) Subnet mask: 255.255.255.0
4.3) Username: admin
4.4) Password: admin
Step 3: Connect to the Router
1) Assign the Ethernet port on your laptop/desktop a static address that matches the default factory subnet of the router. Follow these steps to assign a static address. (It's possible to perform the upgrade with a DHCP address, but a static address is more reliable.)
2) Use an Ethernet cable to connect to the router through a 10/100 port for performing the flash upgrade. (It's possible to flash the router via a wireless interface, but it's much more reliable to use a wired connection.) Use a web browser to connect to the router's administration interface using the above credentials.
The result should look something like this:
Step 4: Mod It! Upgrade the Firmware
Use the router's web GUI interface to flash the router to the "mini" firmware. Be sure to use the "generic" mini firmware file when using the web GUI. Apply the firmware and heed the warnings not to shut down the browser window or power off the router until the process has completed.
The firmware upgrade page, with the "mini" generic firmware selected, in the process of upgrading the firmware:
Step 5: Upgrade the Firmware, Cont.
Once the firmware upgrade has completed, the following screen should appear. Wait a minute or 2 before continuing:
Step 6: Upgrade the Firmware, Cont.
Perform a hard reset on the router. It should then restart with the DD-WRT "mini" firmware successfully applied.
The DD-WRT firmware has different login credentials, and the mini firmware upgrade sets the following values:
1. IP address: 192.168.1.1
2. Subnet mask: 255.255.255.0
3. Username: root
4. Password: admin
The default web page displays an overview system information page without requiring a login (Note the current active version in the upper-right of the router's web interface, and the new default router name):
Step 7: Apply the Full Firmware Version
With the "mini" firmware in place, the final firmware upgrade may be applied.
1. Select the Administration tab and log in with the DD-WRT default username and password.
2. Select the Firmware Upgrade tab from the Administration page.
3. Browse to the DD-WRT version of firmware selected to download (Standard, VPN, VOIP) and use the generic binary file.
Step 8: Upgrade Successful!
Wait for the upgrade to transfer. The router will restart, and the following screen will appear:
Step 9: Access the Upgraded Router
Once the router has completed resetting, login with the DD-WRT default credentials, if prompted (some browsers cache credentials):
Step 10: Fully Modded
The router upgrade is now complete!
The mini firmware need only be applied once. It serves as a transition between the Linksys and full DD-WRT binaries. Other DD-WRT firmware images (VPN, VOIP) may be applied using the same process for applying the Standard binary.
The basic setup page should appear, with the new firmware version showing in the upper right:
Step 11: Unbricking a Router
Sometimes a flash upgrade attempt gone awry can disable some components -- such as the 10/100 ports -- and leave other services functional. It may be necessary to configure a static IP address on the default IP subnet to communicate via the 10/100 ports, instead of relying on receiving a DHCP-assigned address.
Note: even though all warnings say never flash the router across a wireless interface, it is possible to do so successfully. I have found that in some cases a bad flash attempt disables the LAN ports; the only option in this instance is to connect to the "bricked" router trough the wireless interface.
Unbricking a WRT54G router
Step 12: DD-WRT Features
- Adjust transmit power -- boost the wireless transmitter up to a whopping 251mW. Note: Please keep in mind that FCC regulations restrict wireless transmit levels for devices like these. Turn up the power incrementally until you get the level of service you need; you do not want to get noticed by the Fed. You could also "drown out" other wireless signals that use the same channel. A lot depends on the antenna configuration used and other factors, so just be careful. If you want more range, check out WDS below.
- Afterburner -- WRT54GS routers support SpeedBooster technology, and with wireless clients that support this feature, wireless performance can be increased significantly.
- QoS -- Use Quality of Service to prioritize types of network traffic. Let some applications have more bandwidth than ohers!
- Dynamic DNS -- Even without a static IP address from your service provider, you can access your router with a DNS name. dyndns.com provides a free service to associate a DNS name with your router (There are other DDNS providers, as well). If you need to get to your router from the outside world, dynamic DNS lets you have a consistent name that stays the same, even when its dynamic address changes (which it will, frequently).
- Advanced routing features -- Configure your router as a border router using BGP or OSPF routing protocols.
- VLANs! -- establish virtual network segments using VLAN IDs and create more sophisticated network configurations.
- WDS -- Wireless Distribution System allows your router to talk to other routers as access points. This means you can extend the range of your network by letting routers talk with each other as bridges, resulting in wider network coverage.
- WEP, WPA and WPA2wireless security methods
- RADIUS authentication -- provide for strong network authentication by accessing an external server to verify credentials.
- Virtual Private Network access -- reach your internal network resources from the outside world using a secure VPN tunnel. (This requires the VPN firmware version)
- UPnP -- Universal Plug and Play allows applications to automatically setup port forwardings.
- Command shell -- Add specific startup and/or firewall commands to be run when the router starts up to create even more customized configurations
Oh yeah, make sure you back up your configuration before trying new features, just in case.
Just remember, your mileage may vary...
Step 13: Additional Resources
- Upgrade firmware version utility, from Linksys. Actually a TFTP utility, it's a very useful tool for upgrading Linksys router firmware.
- TFTPD32.EXE -- An outstanding utility, it includes a TFTP server daemon and client. It also has DHCP, SNTP and SYSLOG server functionality.
- The "Ask LinkSys" link under Support Tools on the Linksys website. Choose "Technical Support" under the Support tab. The "Ask LinkSys' option is on the left. The Tech Support page is helpful for walking through lots of different issues and finding support documents quickly.