I've had OpenWRT on my Linksys WRT54Gs for a year or so now, but although it works fine as an AP, I've not had much luck with WDS (Wireless Distribution System).
People have been recommending the Tomato firmware as an alternative for a while now, so I decided to give it a go. Mmm, a problem …
root@gl:~# mtd -r write WRT54G_WRT54GL.bin linux Bad trx header This is not the correct file format; refusing to flash. Please specify the correct file or use -f to force. Image check failed.
Unfortunately, the Tomato firmware is distributed as ‘.bin' files, not ’.trx', and according to comments on the x-wrt website (http://forum.x-wrt.org/index.php?topic=429.0;wap2) the OpenWRT flash updater mtd no longer supports these for installation, so you can't get there from here …
The FreeWRT mailing list (http://osdir.com/ml/embedded.freewrt.general/2007−01/msg00007.html) claims that their mtd binary can be used for the install, so I tried that …
root@gl:~# ./mtd-static -r write WRT54G_WRT54GL.bin linux Unlocking linux ... Writing from WRT54G_WRT54GL.bin to linux ... [w] Rebooting ...
Unfortunately, the machine ended up bricked. Actually, both a WRT54GL and a WRT54Gv2 were bricked by this. Luckily, it was only a bad boot loader, and the dd-wrt wiki has a great page for diagnosis and recovery actions – http://dd-wrt.com/wiki/index.php/Recover_from_a_Bad_Flash
So in the end, I just used the firmware's default TFTP-on-boot facility to put the Tomato OS onto the devices, which worked just fine. And without getting involved in huge configuration, WDS is now operating between the ISP-connected unit, and the one with all the wired devices connected; and they both work as Access Points too.