Last Sunday, I woke up to a dead Internet connection. Gmail, Cnn, ESPN, all wouldn’t load. Great. Checked the laptop wireless, no connection. Even better. Power cycled the cable modem and connected the laptop directly to it, and voila, I was back on the Internet. A dead Linksys WRT54G on my hands. It had served me well, but being a couple years old and not having the specs to run any of the newer versions of DD-WRT or Tomato. I went to Newegg and checked out a new one to buy.
I settled on the Asus WL-500g Premium V2. While it was one of the more expensive ones (around $90), it had a serious amount of RAM and flash space. This allows for the bigger distributions of Linux to be installed which have more functionality. Being in Boston, normal Newegg shipping takes two days to get here.
It came in, I logged into the router, and tried to load the Tomato firmware via the ‘Firmware Upgrade’ in the router’s web UI. The firmware file I tried was tomato.trx of the Tomato Linux firmware. The router complained about the firmware, saying the file was invalid. This is when I dreaded, did I download the wrong one? Will it not work?
I jumped back on the Tomato page and noticed that there was another download, a tomato-ND.trx that was for another Asus model, the WL-520. I tried this one via the same method above, and didn’t work. Further down I saw the tftp explanation, where you reset the router with a combination of holding in certain buttons and then send the file in. Running Linux, I sent the file via:
atftp --verbose --trace -p -l tomato-ND.trx 192.168.1.1
This worked, file completed sending. I waited a couple minutes and didn’t see anything happen. With a great deal of trepidation, I hit the reset button, waited a minute or two, and I was greeted with the Tomato admin UI when I tried to browse to http://192.168.1.1.
So far I am pretty happy with it. I’ve been taking advantadge of the static DHCP and the dnsmasq functionality to be able refernece all my machines on the internal network by DNS name. The graphs of bandwidth usage are nice to see, but I don’t particularly use them much. Otherwise I use port forwarding to forward a single port to an internal machine for remote access.
Hopefully this helps others who use this combination of hardware and software.