One early problem was that of the format of their firmware updates. While the code contained within might be released under the GPL, Linksys is under no obligation to release the details of this file format. And yes, I asked them directly, but to date have gotten no reply.Update: Rob sez, "I might have spoken too soon. I have been gently reminded that it is possible (in fact, trivial) to change config file locations without modifying the source. It also turns out that they are releasing some changes, but there is still some question about kernel modifications. I've posted an update on my original blog." Link Discuss (via /.)
No matter, with the help of many interested people around the globe, we have been able to decipher the (relatively simple) firmware file format, and even make a little utility that will generate a valid firmware for you. (Note that it's really easy to kill your AP with "bad" firmware, but that's another story altogether...)
Now that we are able to execute arbitrary commands on the WRT54G, it is obvious that Linksys is running modified software covered by the GPL. One perfect example of this is Zebra, the advanced dynamic routing software package. By opening the firmware file directly, as well as by making queries through the makeshift ping interface mentioned earlier, we noticed that the zebra running on the WRT54G doesn't use the standard configuration file locations. This means that it must certainly be a modified binary.