Executive summary, for the impatient: The Linksys WRT54G firmware's DHCP client code does not function the same was as a "normal" Windows DHCP client, and as a result causes problems with certain cable modems and services. This custom firmware is patched to fix this problem.
Many moons ago, I bought a Linksys WRT54G (v1.1), connected it to my cable internet service, and... nothing happened. The device simply would not get an IP address. Turns out there is a problem with my third-party Zoom cable model, where if the DHCP client does not request a broadcast reply, the reply would not be passed back to the client. Now, I'm not sure how, but the provider also has something to do with this (hard to diagnose, since the cable modem and service is essentially a black box). I've talked to people who use the WRT54G along with my model of Zoom model, and they have no problem. That essentially leaves:
Not too many of those users, I would guess.
Now, why doesn't this happen if you connect your workstation directly to the cable modem? Windows, by default, will request a broadcast reply, while the WRT54G (using busybox udhcp) doesn't have the code necessary to request a broadcast reply. A simple fix is to modify the WRT54G firmware to request a DHCP broadcast reply, which is easy since the code is open source. Note: I have tried to contact both Linksys and the busybox guys, with replies from neither. Hence, I have to hand-compile the firmware whenever a new firmware version is released. The binary firmware images below are identical to the official Linksys images, except a patch to udhcp is applied (also below).
This site is not affiliated with Linksys in any way, etc, etc, etc.