Tomato Me!
Tomato firmware is Excellent.
Firmware:
http://www.polarcloud.com/tomato
Wikibook:
http://en.wikibooks.org/wiki/Tomato_Firmware
Forums:
http://www.linksysinfo.org/forums/forumdisplay.php?f=160
Some reasons:
1) It's based most closely on the official WRT GPL releases from Linksys
2) It's got the most informative and intuitive user interface by far
3) It has excellent built-in QoS functionality and configurability with live graphs (Just be careful not to add too many rules, the Linksys CPU is not THAT powerful!)
4) Interactive user interface and Eye candy! SVG graphs list current and historic throughputs; Device list shows WDS and Client signal strengths.
5) No idiotic grammar or spelling in UI; Pages do not disappear unneccesarily while reloading/submitting settings
6) It is not coded by a german weed freak with purple hair begging for money, but by the author of Tofu/Thibor firmware, one with a reputation to be the fastest and most stable.
While I've had DD-WRT fail on me multiple times, I've not had issues with Tomato.
You can upgrade from DD-WRT. Just do a
nvram show | grep pass
To see what the login password will be. But a hard reset will (hold reset button for 30 seconds right after boot), of course, reset it! And get rid of all the junk put in nvram by DD-WRT. (Also, have you had a look at all the redundant firewall rules that DD-WRT adds by default?! Its such a hack!)
It's first boot takes about a minute, so don't get impatient.
You can also upgrade it via ssh:
Code:
mypc# dd if=/tomato/WRT54G/code.bin of=/mywebserver/code.trx bs=32 skip=1
...
mypc# md5sum /mywebserver/code.trx
123xxxxxxxxxxxxxxxxxxxxx456
mypc# ssh tomatome
tomatome# wget [url]http://mypc.mynet/code.trx[/url]
...
tomatome# md5sum code.trx
123xxxxxxxxxxxxxxxxxxxxx456
tomatome# mtd-write -i code.trx -d linux
...
tomatome# reboot
Next step would be to make cocktail tomatoes...

... (make it run on the Atheros platform devices... that's what I'm working on

)