1This device does not have sufficient resources (flash and/or RAM) to provide secure and reliable operation.
This means that even setting a password or changing simple network settings might not be possible any more, rendering the device effectively useless. See OpenWrt on 4/32 devices what you can do now.
The original WRT54G was first released as a SOHO router in December 2002. The product line supports WiFi and five switched Ethernet ports. (The WAN port is part of the same internal network switch, but on a different VLAN.) The devices have two removable antennas connected through Reverse Polarity TNC connectors. For additional background information, see Linksys WRT54G series.
The different models within the WRT54G series may all look identical. Please refer to the model information sticker on the underside of the unit in order to determine the precise model number and hardware version of your device.
* 14.07 had slow LuCI web interface, after enabling Wifi, the entire router became inaccessible. A custom cut-down image worked slightly better, but would not let WAN and Wifi work at the same time due to low system RAM. Ref: Forum Thread
* Unplug the power cord, press and hold the reset button, put in the power cord, when DMZ-LED lits up release the reset button. When done right, both Power-LED and DMZ-LED will start blinking. Now you can ping and telnet into 192.168.1.1
The WRT54G/S/L has a 10 pin connection slot on the board called JP1 (JP2 on some v1.1 boards). This slot provides two TTL serial ports at 3.3V. Neither of the ports use hardware flow control, you need to use software flow control instead. Other routers may have similar connections. These two TTL serial ports on the WRT54GL router can be used as standard Serial Ports similar to the serial ports you may have on your PC. In order to do this though you need a line driver chip that can raise the signal levels to RS-232 levels. You can not directly connect a serial port header to the board and expect it to work. That method will only work with devices that can connect to TTL serial ports at 3.3V. Connecting two which have 3.3V directly will work (TX - RX, RX - TX, GND - GND). Standard RS-232 devices cannot be directly connected which accounts for nearly all serial PC devices.
Once the modification is made you can have at most two serial ports to use for connecting devices etc. By default, OpenWrt uses the first serial port to access the built-in serial console on the router. You can connect to it at 115200,8,N,1 using a terminal program like Putty, SecureCRT or minicom for example. This is helpful because if you have problems communicating with your router this method will allow you easy access connecting over a serial console. By default this leaves you with one serial port left, however, there is a method to turn the console off giving you access to both ports if you really need them. It isn't recommended but it can be done.
If you've lost your power brick or want to power the WRT54G from an alternate source its possible to solder power cables directly to the power jack connectors. The WRT54G seems to run on anything from 5 to 12 (maybe more) volts. At 5 volts it needs about 800 milliamps, I had thought it might be possible to run it off USB but USB only (officially) supplies 500 milliamps. However, some USB ports will supply 800 milliamps and a lot of USB mains adaptors (e.g. the one for the Amazon Kindle or iPhone) supply 1 amp.
You can (as shown in the picture above) desolder the power connector (this took quite a lot of effort and I broke the connector in the process). If you want to keep it just solder to the underside of the board instead, you might need to file away a bit of plastic from the outer casing to make room for the wires.
There are 3 legs to the power connector, each just under 1cm long. The one closest towards the front of the router (the LED side) and running across the router is the positive (red wire in the picture). The one in the middle, running from back to front is the ground (black wire in the picture). Just solder a wire to each of these and connect to your power supply of choice.
If you want to run the WRT54G from USB, cut up a USB cable and solder the black wire to negative and the red wire to the positive. Or you can run it from a PC power supply by getting a male 4 pin molex hard disk power connector (as found on some PC fans or molex splitter/extension cables). Connect the yellow wire (12 volts) to the positive side and one (or both) of the black wires to the ground. Now connect this to a spare hard disk power connector on a PC power supply and your WRT54G will power up.
Once you have set the NVRAM parameters above it is possible to use a TFTP client to flash OpenWrt. The TFTP method is also the recommended way to restore the original Linksys firmware or switch to other third-party firmwares.
Linksys original firmware are hard to find on the internet, and are no longer made available by Linksys. Hopefully, they can still be downloaded at this URL: _images/linksys_official/index.html. This is particularily handy if you want to change of OpenWRT version or simply test another one while you already have one installed. To proceed, reinstall Linksys original firmware with the TFTP method :
If you have already installed OpenWrt and like to reflash for e.g. upgrading to a new OpenWrt version. It is important that you put the firmware image into the ramdisk (/tmp) before you start flashing.
After successfully running a late model version of Kamikaze. I had some stability issues decided to go with white russian, I downgraded with the web gui to the latest default version of openwrt-brcm-2.4-squashfs.trx and got bricked. These instructions are linux specific, if you are running any other OS your mileage may vary.
I found that the machine would not reboot itself nor would it reboot using /sbin/reboot.I had to unplug to make it reload. Make sure the commands you have previously typed have finished completely before you pull the juice.
Using the OpenWRT 8.09.2 Kamikaze aircrack fits, but the wl package needed as well doesn't. By moving libcrypto from the aircrack dependency package libopenssl into the ramdisk (and backlinking into original directory) you can install wl as well, but airodump freezes on start and causes the router to reset.
ifconfig should tell you the wifi interface is down (use ifconfig -a to show down interfaces as well). We use the wl tool for configuring the wifi to use monitor mode needed for airodump-ng, not airmon-ng.
The & at the end makes airodump run in the background (it still spams your console with information). You can just close your terminal and abort the telnet session, airodump will still run as long as the router is powered or until you manually stop/kill it.
Repurposing a couple of HSMM mesh flashed Linksys WRT54GS v1 routers I had. These have 8MB of flash, which provides a goodly amount of left over flash memory one could use for small web pages as "services". Oh, you could use a regular computer as a server, but if you only have a few small pages that are purely html code, putting them into the router's flash in its /www directory would be easier and not require extra hardware. I used SmarTTY to get into the router's flash memory. You put in the box "host name" the IP address the router is at in your network, like 192,168.1.251:2222 (the 2222 is a port that gets you in). Your user name is "root", and the password is the same one you use to get into the setup page in HSMM. Once in, cd /www and then you can upload html files. Be careful you don't waste too much flash (when you edit or delete a file, the old file still ties up flash memory along with the new file). Only way to get this flash memory is to reflash the router, which undoes everything you did back to default state. You should test your html code on your PC first to debug it. If this page needs to be updated frequently, this is not a good solution for it.
You then need to get into the HSMM setup page, and fill in port forwarding options with both for "interfaces". TCP for "type", 8080 for "outside port", "localnode" for the "LAN IP", and 8080 for "Lan port". (There may be other choices that will work, but these worked for me) Click "add", then SAVE CHANGES Then under "advertised services" put the name you want your web page to be known as (keep it short), like "Ethernet RJ45 plug pinout", check mark the "link" box, then in the box to teh right of the checkbox you put "http", and in the box to the right of that "8080" and then the next right box, the name of the html file you saved in /www with SmarTTY above. click "add" and then SAVE CHANGES.
Now, when you do a "mesh status" you should now see your new service to the right of your "local hosts" under "services".
I have a couple of WRT54GS V1's that I connected together with DtD, and to my Ubiquiti nodes too. I haven't had trouble with DtD on Linksys (oh I did have trouble with a bad cable I used for the DtD connection).
I modified the vlan file below to have dedicated ports for DtD, and disabled the WAN. And set the LAN IP to 192.168.1.(your choice) with the DHCP disabled. And to make the "internet" WAN ethernet jack become an extra DtD jack (which I used to daisy chain the DtD network), edited the file /etc/vlan with vi, using SmarTTY program. changed the lines
Then saved and exited, then went to
open :8080/cgi-bin/setup in your web browser. Click save changes, even if you didn't change anything, and then click reboot. Did this to both routers, and connected their DtD ports together, and one of the left over DtD ports to my Ubiquiti node, that is tunneled to other nodes elsewhere in the world. Did a "mesh status" on the Ubiquiti node, and I now see the two Linksys routers as DtD linked nodes, to teh far upper right of the mesh status page. Along with the services I created.
Something to watch out for, if you have a pair of the above routers fed by a single house LAN cable, and a single DtD cable, be sure you connect both those cables to one of the routers. Not one to one router and the other to the other, things got real slow that way and I suppose tails were getting chased.
3a8082e126