After giving my father a Linksys WRT54G Wireless (802.11G) Router for Christmas (the same model I have), I once again became interested in extending the range of the little beastie. While I have seen a Linksys 802.11B router cover some big distances with a good signal at work, my ’54G has always had trouble getting from one end of the house to the other. Dad’s router does okay, but doesn’t quite penetrate all the way across his house either.

Linksys offers a signal booster, but it’s only approved for use with 802.11B networking. Some reading I’ve done suggests it should work with an 11G router, but there may be some issues due to differences in antenna configs. Besides, it costs money.

It turns out that the WRT54G is notable for a few features. First of all, it only transmits with about 1/4 of max power. Second, it’s a Linux box. So you know what that means… Hackage. SeattleWireless.net has a great wiki page on hacking the WRT54G.

It seems that if you have an older firmware, you can run short commands via the “ping bug” – a security hole in the router’s web interface’s ping utility, that accepts backticked unix commands. Wireless transmit power can be changed this way. Of course, my firmware is up to date, and the ping bug is fixed. Oh, and you can’t downgrade firmware anymore. (Details for all of this can be found at the SeattleWireless.net link above).

However, to borrow a Perlism, There Is More Than One Way To Do It. In my case, this meant getting a third-party firmware. Since Linksys has GPL‘d all of the code, and even published instructions on building a custom firmware, this isn’t as radical as it seems. (Way to go Linksys/Cisco!) I’m using the Sveasoft firmware (Info, Downloads), and it’s fantastic. It allows you to change the transmit power via the router’s web interface, and adds other cool things like ssh access via sshd. There’s a ton of stuff you the firmware adds (check out the changelog), and it’s under active development.

( Useful tidbit: After turning on sshd via the web interface and inputting the authorized RSA keys, you need to: 1) Reset the router. 2) Run ssh with user root, like so: ssh root@ Password isn’t needed because of the RSA key, but the user id is.)

The transmit power can be set from 1 to 84, and the default is 28. I think the figure is either mW or 1/2 mW (i.e., default tx power is either 19 or 28 mW). Many sources tell you to just set it to 84, but I found this post at short-media.com claiming that 84 is too high without some kind of cooling mod, and produces unreliable results. The recommended setting of 48 seems to be working beautifully, and I can roam wirelessly to the corners of my house now.

And all this because of open source software. Sweet.

Both comments and pings are currently closed.

One Response to “WRT54G++”

  1. jclark.org/weblog Says:

    […] I bought my first wireless router, a v1.0 Linksys WRT54G, around 3 1/2 years ago. At least I think that’s about right… the fact that it’s a v1.0, the original with the 20 LEDs on the front panel, means I’ve had it for a while. In early ‘04, I switched to a Sveasoft firmware – this was before they began selling subscriptions for GPL’d software (but that’s another rant). It was a great little router on the Linksys firmware, and only improved when I put the custom firmware on it. […]