|Chose to Eat Cookies|
|The Muhammad Ali of Routers|
Linksys came out with many different versions of this router as time rolled on. I have one of the best: a Version 3 with a staggering 16 Meg of flash and 4 Meg of RAM. Later versions halved the amounts of flash and RAM, forcing subsequent versions of custom firmware to cut back on features to make room.
I don't remember when I did it, but my first cut at custom firmware was DD-WRT. I picked this because it had more features than I would ever use, was well supported, and had a nice GUI to control everything. Sadly, DD-WRT doesn't seem to remember where it came from anymore, and you can't build the whole shebang from source. Want to modify the GUI? Be prepared to jump through some nasty hoops to do so. Development of DD-WRT has also slowed to a trickle: the last release for my router was in 2009, and that was to fix a software vulnerability.
Screw this. Time to switch, and switch I did. Yesterday I put OpenWrt and the Gargoyle "router management utility" on it and the process was relatively painless. Note that I said relatively painless. There were a few bumps in the road that tripped me up briefly. This is what got me going.
- I went to this page on the Gargoyle website and chose the Firmware Image for the Broadcom architecture for the latest stable branch of the code. This image has the OpenWrt firmware rolled in already. Nice.
- The brcm47xx-squashfs file was what I needed, but should I download the .trx or the .bin version? According to the install guide...
If you are installing from another third-party firmware such as DD-WRT or Tomato, you should also use the .trx file.
Sounded to me like I need to download the .trx version. Turns out this was wrong. More on that in a second.
- The Installation Guide on the OpenWrt Wiki told me that all I should have to do was "Open the WebUI of the original firmware with your web browser and install the OpenWrt firmware image file using the "Firmware Upgrade" option of the original firmware." Easy peasy. I backed up my DD-WRT settings from the GUI and then tried to load the .trx file. DD-WRT greeted me with
Incorrect Image File
Not good. That is when I started Googling around and started reading about all the people that had troubles upgrading to OpenWrt from DD-WRT. The problems people were having were broken charts in Gargoyle and wireless that just plain didn't work afterwards. This got me a little nervous because this is the only router I have, and botching this upgrade would make me very grumpy. But no guts, no glory. I proceeded onward.
- This post suggested resetting to factory defaults within DD-WRT before doing the upgrade. This made sense to me: clearing the NVRAM in the router before going to a new firmware version would let OpenWrt start with a clean slate. Resetting to defaults caused the router to reboot into DD-WRT, after which I had to re-login with the default password of "password". I'd have never guessed.
- The next step was to rename the .trx file to .bin and again use the DD-WRT "Firmware Upgrade" option, against the advice of the installation guide. DD-WRT happily accepted this file. Several nerve-racking minutes passed while the router re-flashed and rebooted itself. I pointed my browser to 192.168.1.1 and...
- But I wasn't through yet. Wireless wasn't working. I dug around the GUI a bit and saw that it was disabled by default. I enabled that, set the SSID and security stuff, and saved my changes. This caused the router to reboot and... still no wireless. This is what I had read about and I was starting to get a little nervous again. I unplugged the router's power supply for 30 seconds, plugged it back in, and it worked! Yay me!
A question you might be asking yourself is why I am still playing around with such an underpowered, ancient router that only supports the B & G standards. Well, when all you have 2 Mbits/sec of downstream bandwidth and 128 kbits/sec of upstream bandwidth, Wireless G is all you need. But more than that, this thing is completely and utterly reliable. It quitely does its thing, hidden away in the basement. The custom firmware also gives it far more capabilities than I need, and it is still incredibly well supported. What is not to like?
Well, it doesn't have anything in the way of extra ports and it could use more memory. But there are a ton of easy hardware mods for this router that I might take a shot at that would give me exactly this. One thing that I really want to try is this 1-wire mod that will let me connect simple devices like temperature sensors to this thing. A reader of my blog has even written a script that lets a WRT54G with a serial port hacked on upload data from a Davis Weather Station Console directly to Weather Underground. How cool is that?
This baby still has a lot of life in it yet.