http://wiki.openwrt.org/ClientModeHowto
I’ve got a new place that is much bigger, and a spare WRT54G router, so my natural thought was to use the WRT54G as a wireless client for my desktop which is now out of wired ethernets way. There is a selection of specialist firmware for the WRT54G which allows client mode. I’d been eyeing OpenWRT for a while and thought this was the way to go.
The first thing is to enable boot_wait on the router so you can install the firmware. As you are probably aware by reading a few different sites, the linksys has a hack where you can inject commands via the Diagnostics-> Ping address. Whilst subsequent firmware versions prevent this hack, some clever monkeys devised some javascript to exploit the ping_times field on the latest firmware. Check the forums for more info.
This was done by installing the OpenWRT firmware but I’ve had hours and hours of headaches getting the thing to work.
My problem was that I jumped straight into the web interface and changed many things from their defaults. I was also trying to follow the various how to’s and guides on the internet and so when it actually came time to try and do some connecting my router had some very confusing settings. Reading the nvram settings too was difficult because the old linksys firmwares settings were still there too.
The answer was to erase the nvram, reboot and run the firstboot command (as per the troubleshooting page). I then followed the instructions to configure a Bridged client (disable dhcp by disabling access to the dnsmasq script in etc/init.d, connect to wireless network). After I plugged the desktop into the Lan, it used my internet routers DHCP server to obtain an IP and obviously the gateway had now been set to go via the main router.
That said, the foray into the WRT improved my *nix and networking knowledge ever so slightly (what doesn’t kill you only makes you stronger)