July 2003 Archives

Rob Flickenger

AddThis Social Bookmark Button

Apparently, this ad just ran in the Sonoma West Times.

Can a community wireless project “officially” be considered mainstream once people start taking out want ads for them?

Although I do have to wonder, 8oz of what? Guess I’ll hear all about it after the next NoCat meeting…

(Thanks for the photo, Rich!)

Rob Flickenger

AddThis Social Bookmark Button

It’s Tuesday, so tonight is yet another Hack Night for SeattleWireless. The object of affection for wireless hackers in Seattle as of late is the Linksys WRT54G, one of their new line of Linux based APs. (For the technically minded in the audience, tales of SWN’s 54G experiences are up on the SeattleWireless Wiki).

The goal of recent fiddling has been to get a captive portal (such as NoCatSplash) running on this puppy, as well as to clean up their sloppy web interface, and possibly add some nifty new features (like IP tunnels, IPv6, wireless client mode, as well as some other obvious nicities).

This project has not been without its technical hurdles. 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.

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.

So, naturally curious, I wanted to find out what Linksys had to do to get Zebra running on this hardware. I stopped by the Linksys “GPL Code Center”, and downloaded their zebra archive.

You can imagine my disappointment when I realized that this is in fact just a copy of the original source code available from zebra.org. Where are the changes to the source tree? I have just asked Linksys that very question, but as they still haven’t gotten back to my first query, I expect my email to be filed under irrelevant and forgotten.

I believe the GPL is an important document that is intended to prevent exactly this sort of theft of code. Any company that incorporates GPL software into a commercial product and attempts to skirt the licensing terms is nothing short of a thief, building on the stolen effort of countless contributors.

And evidently, I’m not the first to notice that these binaries are compiled with a modified GCC (with a signature string of “GCC: (GNU) 3.0 20010422 (prerelease) with bcm4710a0 modifications”). That bcm4710 refers to the Broadcom chipset that this AP is actually made from. If Broadcom is using a modified GCC for their reference design, and are making this available to their developers, aren’t they bound by the GPL to make the source code to those modifications available as well?

I will definitely be interested to see what comes of this unprecedented interest in a mainstream Linux product. If you are interested in finding out about how the WRT54G (or other Linux router from Linksys) actually operates, I urge you to write to Linksys and Broadcom, and ask (politely but firmly) for the details. I hope we can get through to these large manufacturers that while they are certainly welcome to use Open Source software in their products (and thereby benefit from the tremendous public effort spent on them), the community expects them to likewise respect the terms of licensing.

*** Update: 11:54pm 7/29/03 ***

I just got a response from Linksys support! (I’d post the email, but their disclaimer asks me not to.)

Evidently, we’ve moved on to “2nd level support”, whatever that means. Hey, it’s one round further than last time. I will keep you posted.

Oh, and in other news, Ross Jordan got a shell on the WRT54G! I’m so jealous. We worked on this all Hack night and didn’t get it first. Great work, Ross! NoCatSplash, you’ll be next!

***Update: 11:42am 7/31/03 ***

Thanks, slashdot readers for your usual valuable insight and candor. ;)

As many have pointed out, I did overlook the fact that Zebra could be compiled with options that change the location of the default configuration files. Naturally, this isn’t a source code modification, so it is entirely possible that Linksys is running a “stock” zebra.

Interestingly enough, now having pulled down several sources and compared them against the original distributions, it appears that Linksys is releasing at least some of their changes. I noticed differences in ppp, iptables, and udhcp (although the latter is missing the Makefile, probably just an oversight). There are also differences in the 2.4.5.kernel tree, although obviously there are no drivers for the wireless card.

What about other binaries in the filesystem? tftpd is heavily modified (ah, but it’s released under the BSD license). The epi_ttcp program that Ross used to get a shell, based on ttcp? Also BSD licensed. Their very, very hacked httpd is evidently based on mini_httpd, which is (you guessed it) BSD licensed. As far as I can tell without having exhaustively looked at every piece of available code, Linksys appears to be trying to comply with the terms of the GPL (as I understand them anyway), and putting many customizations into BSD code, which doesn’t require source distribution.

The question of the modified GCC is still open, but as many have pointed out, since Linksys doesn’t distribute the modified GCC binary, they are under no obligation to provide the source. Fotunately for this project, our testing suggests that we may not need the modified compiler after all. If you are a developer using Broadcom’s reference design, and they provided you with a binary GCC distribution, please request the source and redistribute it, as you would be well within your rights to do so.

For more updates on the continuing saga with Linksys and the Linux kernel, try this weblog.

Are Linksys and Broadcom in violation of the GPL?

Rob Flickenger

AddThis Social Bookmark Button

There is an article making the rounds about everybody’s favorite latest squash-two-words-together-and-call-it-a-meme: Googleholes.

If you haven’t seen the article yet, check it out, it’s definitely a good read. I just wonder about the author’s choice of search examples. He first searches for the bare word “flowers”, and complains that too many florists show up. Note that the search was for “flowers”, not “flower”, which returns very different results, and considerably fewer florists.

He then searches for the bare word “apple”, and complains that Apple computer fills his search results. Note that he didn’t choose “apples”, which returns the Washington State Apple Commision as hit #2, and “Learn all about apples, growing and using them, and where to pick your own apples” from the University of Illinois as hit #1. Funny, but computers aren’t mentioned until page five, where we find the ApplesBC computer club.

Apart from the obvious trickiness of playing the “word association game” with a very large database (which, as has been pointed out, is made much better by supplying more information to search on), I wonder why these particular words were chosen. Coming from MSN.com, I certainly question the choice of using the word apple as an example.

What if the author had chosen a more neutral word, like orange? Good heavens, all of the Orange County governments of the world are in a conspiracy to deprive us of vitamin C! Or how about oranges? Well, at least we see some mention of the fruit on the front page, but those bloggers are making nasty inroads here.

My point is, be careful of what you search for, you just might find it. Of course Apple computer comes up when you search for “apple”. Not only is it the URL for www.apple.com, but I would argue that people who publish web pages are far more interested in writing about TiBooks than about Granny Smiths. We’ve had apples (the kind you eat) for much longer than we’ve had Apples (the kind you type on). Maybe it’s possible that we all know exactly what apples are, having digested them for thousands of years… But an Apple? That’s something new, and probably worth talking about online.

Certainly don’t rely on Google as your only source of information, but do give it a chance. While it can’t tell you everything, it’s the best tool I’ve found for telling you what people on the Internet are writing about. If you don’t like the results you find in it, I highly recommend publishing your own authoritative information. If it’s good, people will link to it, and it will eventually show up in Google’s search results.

Making your site, the web in general, and Google even more valuable in the process…

Is Google just useless, or does it require some competence on the part of the user?

Rob Flickenger

AddThis Social Bookmark Button

A number of SeattleWireless geeks and I have been working on getting a shell on the Linksys WRT54G access point. It is in fact running Linux 2.4.5 with a number of interesting bits in the filesystem (namely full iptables support, zebra, bridging, and even a Rendezvous responder).

Of course, that’s not nearly enough for me. I want NoCat running on this puppy (probably NoCatSplash or Cheshire first, NoCatAuth to follow) along with IP tunnels, maybe vtun, some monitoring code, and maybe even some mesh bits. Since their kernel apparently supports loadable modules, this is all entirely possible. Almost.

We’re very close to getting a custom firmware on this puppy, but I’m currently stuck trying to compute a CRC value that the AP will accept (details are up on the SeattleWireless site).

I’ve just sent this comment to Linksys. It probably won’t amount to much, but you never know.

Hello--

I am very excited about your decision to include Linux and other GPL
code in your recent 54G line.  It appears from recent firmware updates
that you have very interesting and ambitious plans for this line of
equipment.

I was wondering if you have published the format of your firmware
update files.  Parts of it are obviously a CramFS archive and Linux kernel,
as well as various header bits.  I imagine a CRC of the file is involved for
error checking purposes, and required for the AP to accept new
firmware.

If the open source community were provided technical details about your
firmware file format, I believe you would see an unprecedented interest
in your 54G line.  The ability to run custom Linux software on a
commercial access point would certainly make it one of the most
desirable access points on the market.  The lack of documentation for
the firmware header (particularly the CRC and other error checking)
currently make it difficult to fully customize the 54G line.

My particular interest is in extending your hardware to support
NoCatAuth (http://nocat.net/), the open source captive portal
implementation, as well as other community network oriented software.
This may be outside the scope of your original plans with the 54G line,
but please consider the potential benefit of providing the wireless
community networkers with this information. 

Best regards,

--Rob Flickenger

So, while we wait for a reply from Linksys/Cisco, who in the audience is good with bit math?

Had any luck dissecting the Linksys WRT54G firmware?

Gordon Mohr

AddThis Social Bookmark Button

What’s a Wifi Wiki Hifi? Imagine that a cafe has both wireless net access and a net-linked stereo. Just like a Wiki website lets visitors edit its pages, such a sound system would let walk-in visitors mix its audio playlist. (See this entry from about a year ago for the genesis of this idea.)

Now, News.com reports on a new class of wireless appliances that connect to TVs and stereos rather than traditional computers. Especially noteworthy is the new Linksys WMA11B Wireless-B Media Adapter. In a single box, it pulls together *almost* all the pieces needed for a Wifi Wiki Hifi.

(One relevant shortcoming of the Linksys device is that as shipped, it only grabs shared media files from a single master host on the local network. So, at least until Linksys — or some clever hacker — relaxes this requirement, community playlist contributions would have to be routed through a shared drop-folder on a stable master host.)

The only real impediment here is that if you want to get technical, such dynamic unlicensed music sharing and performance is illegal.

So set up a Wifi Wiki Hifi in your local shared place, and you’ll have fun fun fun ’til the lawyers take the music away.

Do you want your Wifi Wiki Hifi?