First I'll say that most of this information is available a lot of places on the internet. However, it is kind of spread out so I figured I'd try to condense some of it here. Plus the Networking section has only 1 sticky, and so I figured maybe I can add to it.
Disclaimer: I take no responsibility if anything contained in this thread breaks your router. As with any type of firmware/BIOS flashing, there are risks, and there is always a chance that something could go wrong and your router is permanantly bricked.
First of all some history on the router:
The WRT54GL originally began its life as the standard WRT54G router. It was an extremely popular Wireless G solution due to the fact that it was relatively cheap and reliable. I can't remember a time when I've ever seen one selling for more than $60, even way back when Wireless G was still new to the consumer market and other Wireless G routers were selling for $100+.
Other than that though, no one really paid attention to it, and as more routers came out on the market, the WRT54G kind of got burried in all the rest. Until someone, some genius, figured out that the WRT54G actually runs on a Linux OS! And because of that, Linksys was actually required(under the GNU) to provide source code. And suddenly the router became an instant enthusiast hit. 3rd party firmwares(the OS of the router) quickly started coming out that unlocked features usually only found on comercial grade routers, the most popular one being the radio power adjustment which greatly increased the range of the routers.
The WRT54G went through several hardware revisions in its life, but version 1 through 4 were all pretty much the same internals just condensed to make production easier and move along as better SoC processors became available. However, with version 5 Linksys modified the WRT54G hardware to cut costs, the main modification was that change of the amount of Flash ROM installed on the router, where the firmware for the router was stored. Think of this like a BIOS on a motherboard or Video Card. The cut the size down from 4MB to 2MB, this meant that almost all the 3rd party firmwares out there would no longer work with the WRT54G.
However, Linksys was not about to completely kill their enthusiast following. They re-released the Version 4.0 router and named it WRT54GL(the L is for Linux!!!
). And here we are today, with the WRT54GL still doing amazing things.
Now I should mention that there have been some advances in 3rd party firmware, specifically with DD-WRT, that allows certain version of the firmware to be used on the current WRT54G routers. However, these routers also have half the RAM as the WRT54GL, and hence performance under heavy load is rather poor. This is especially true with a high number of connection, like torrents and other P2P situations. So I won't be covering those.
Other routers that this applies to:
The Linksys WRT54GL isn't the only router that can use these Linux based 3rd party firmwares. There are actually a bunch of them floating around. Here are the two routers I usually use so I know they work:
There are others, whatever firmware you decide to use should have a list of supported routers.
Popular 3rd Party Firmwares:
There are many 3rd party firmwares available, but the two main ones are Tomato
. I happen to prefer Tomato, so that is what I'll be using in this guide. If I have some extra time later on I'll flash DD-WRT and go over the feature in there as well.
Flashing the router:
Whichever firmware you choose to use will have instructions on how to flash that particular firmware. Sometime, if you are upgrading from the stock Linksys firmware, there is a special firmware you have to load first. Follow the instructions given to you by the firmware you choose. Read them completely through before beginning the flashing process!
Most of them are simple and they usually conatin steps similar to:
Features Unlocked with 3rd Party Firmware:
- Open router admin page.
- Go to upgrade firmware option.
- Point to new firmware.
- Press upgrade button.
Ok, so you've got your 3rd party firmware loaded, what can you do? There are probably hundreds of different tweaks you can do, but I'm going to focus on just a few of the most popular things.
Increasing the wireless range:
This, as I mentioned, was probably the orignal reason most people moved to 3rd party firmware.
In Tomato you want to go to Advanced -> Wireless and you will get a page that looks similar to this:
The area you are concerned with will be the "Transmit Power". As you can see from my screenshot I have it set to 125mW, the default is 42mW. I'd like to clear up a little misconception here.
There is a lot of talk on the internet that raising this will kill the router or cause it to overheat. I can dismiss those rumors right now. Through my own testing, going all the way up to 150mW has no real effect on the radio. And in fact, the router I'm using to make this guide is a WRT54G v2 that is well over 7 years old and has run at 125mV for the past 4 years at least with no issue at all.
Also, there is talk that increasing this will not effect wireless range because the wireless device(laptop, game console, whatever) will still not be able to send the single to the router if it is too far away. The common anology is that two people are in different rooms, and one guy is shouting so the other guy can hear him, but the other guy is talking normally so he can't be heard. And that is true to a point. However, with most internet traffic, a lot more data is being sent to the wireless device than the wireless device(I'll just say laptop from now on) is sending to the router. So the relative short bursts of data that the laptop is sending to the router are more likely to get through with a weak transmit power from the laptop. However, the larger amounts of data that the router is sending have less of a chance of making it to the laptop with a lower transmit power.
Another way to increase signal strength is with an antenna upgrade. A lot of people believe that you can not upgrade the antennas on a WRT54GL, because they use a propriatary connector. That actually isn't true. They don't use a propratary connector at all. They are actually called R-TNC(AKA RP-TNC) connectors. Most antennas on the market use what is called a R-SMC(AKA RP-SMC) connector. You can find antenna upgrades for the R-TNC connector, but a much easier solution is to buy an R-TNC to R-SMC adapter, they usually sell for about $5 online if you do a little hunting. I bought two for $5 total shipped from here
What is static DHCP? It is sometimes also referred to as IP Reservations. Basically what it does is reserve a certain IP address for a certain device on your network. So say you have a server, and you want that server to always have the IP address of 192.168.1.100. You could manually set that IP address on the server, but then if you ever move the server someplace(like take it to a LAN) where that IP won't work you can be in trouble. With static DHCP, you can set the router to reserve that IP address for the server. So whenver it is connected to your network, it will recieve that IP address and no other device is allowed to use that IP address. Now I should make this a little more clear, you aren't actually assigning the IP address to the server, you are actually assigning it to the MAC address of the server's NIC card. So if that NIC card is removed from the server and put on another computer, the IP will be assigned to the new computer. In most cases, when you are using onboard LAN or internal wireless card, this won't be a problem. However, if you are using an USB wireless card for example it could be.
Overclocking the router:
Now this wouldn't be TPU if we didn't talk about overclocking something! A lot of people refer to raising the transmitter power as overclocking the router, but that is inaccurate. The Broadcom SoC processor that powers the WRT54GL and other rotuers actually can be overclocked as well. By default the WRT54GL runs its processor at 200MHz. However, the processor is actually capable of quite a bit more than that.
Before you get started understand that setting the router to certain clock speeds will instantly brick the router. The SoC is designed to run at certain clock speeds and certain clock speeds only, using any other speed can brick the router. The speeds that work are 200, 216, 225, 240, and 250Mhz. Using any other speed will most likely brick the router.
Ok, now that I've thoroughly scared the shit out of you, lets get started.
I'm going to assume some basic understanding of getting around a Windows environment.
First thing you will want to do is install the Telnet client if it isn't installed already. You can do this by going into the "Turn Windows Features On or Off" area under "Programs and Features". No reboot necessary.
Then open a cmd window.
Type "Telnet 192.168.1.1" without the quotes and press enter. Replace the IP address with the IP address of your router if you have changed it from the default.
The username for Tomato is Root, so enter that.
The password is whatever password you have set in the GUI.
Once you are connected with Telnet you will want to run the command "nvram get clkfreq" without quotes. This will tell you your current clock speed, most default to 200MHz.
Then to change the clock speed you want to enter "nvram set clkfreq=XXX" again without quotes and replacing the XXX with the actual clock frequency you want.
Then you enter "nvram commit" again without quotes to commit the changes.
Then you enter "reboot" again without quotes to reboot the router so the new settings take effect.
This is what all of this looks like:
In that example I'm actually setting the clock speed back from 250MHz to 200MHz.
Why should you do this? What benefit does it have? Well I'll show you.
This is my throughput with the clock speed at 200MHz:
This is my throughput with the clock speed at 250Mhz: