For this week and probably the next, I’ll be particularly busy with other work so the progress on the drivers is expected to be slow. However, the driver is already in a usable state for unencrypted connections and I’ve started work on software-based WEP and WPA1/2, borrowing heavily from the BSD net80211 stack, but redesigning it to be very object-oriented.
In the meantime, I’ve put up some polls to gauge public opinion on some issues before I can make any decisions on how to proceed from here.
Some statistics
First off, someone asked how many visitors this blog gets on an average. The stats are something like this: Until yesterday, on an average I got about 1500-2000 page views a day, with around 1200 unique visitors/day. About 500-600 of those are returning visitors. Yesterday this blog was posted to the programming section on reddit.com and made it to the frontpage of the main reddit. I got around 16000 visitors. Since then the daily visitor count has tapered off to around 2500.
What is this bounty system?
Now for some background information. Way back in October, I had begun this project with the “bounty system” idea, and posted a poll + thread on a popular forum to gauge how successful it could be. The idea was that a project of this magnitude would be too large for someone to do “in their spare time.” Perhaps the only way to get this going was to pay someone to do it, and have them work on it basically full time.
An overwhelming majority (70+ %) of the people said they’d contribute to the bounty.
The community needed the drivers and was willing to pay. I had the time to do it, and needed the money. Plus I was thoroughly sick of unresponsive drivers and custom config GUIs. [a 2nd major reason was my little sister’s constant nagging because she has a 3945 card :P If you’re reading this, Hello sis] Thus I started the project in January this year.
For the cynical
Concerns were raised, citing similar previous attempts, and how the attempts ultimately failed, with allegations hurled across like anything. People even demanding donations back. To avoid such a situation, I decided that I would not accept any monetary contribution until the driver was actually working. The other clause was that, once the bounty reaches sufficient amount, the whole thing including source code would be made public under a suitable license, so that it’s not tied to any particular programmer’s availability. How much is a “sufficient amount”? For this, I decided to meticulously time every hour I spent working on the drivers, and then use some standard rate/hr to get an estimate in a transparent way. This whole setup is based on mutual trust and the “reasonable person” principle. Of course at any time I can just decide to screw the deal and just put everything online, since the time has already been spent and the work has been done to a reasonable degree.
So how do we proceed?
Now it’s about time that the bounty pot was opened and the driver beta is released. At present we have the Intel 2200BG compatible with native Airport interface, for unsecured networks. This is not exactly production-ready, but it was a significant challenge in itself. The main part was deciphering the undocumented Airport driver interface, and the 2nd difficult job was understanding how the hardware works. Lastly, the idea was writing a fresh driver using IOKit instead of forcefully porting over the existing BSD or Linux driver. Since January 2009, around 270 hours have been spent getting where we are. From here, things are much easier, as I now have the required experience and knowledge to be able to code drivers for other wireless cards.

My current plan is as follows —
Reveal the expected total contribution amount and open the bounty pot. Note that the total amount is not rigid, it’s just an indication of what the development is worth, and people are free to contribute or not, and I could release everything much before this amount is hit.
Once “sufficient” amount is reached (I will publish stats), I’ll release a test version of the Intel 2200 driver and the source code under a suitably free license (I am trying to decide between
Creative Commons BY-SA-NC, theAPSLor theNew BSDlicense.GPLis out of question). The main bounty pot will remain open in case people are feeling generous:)NOTE: I just want to clarify one thing. It’s not possible that the drivers are not released. Substantial work has already been done so it makes little point keeping it “hostage” — the point of waiting is just some assurance for myself.I will continue work on WEP and WPA1 & WPA2 support for all drivers as well as fix bugs in the released beta driver. This will have its own small bounty pot (time logged as usual, I expect around 50 hours).
I am starting with the redesign and the 3945 HAL already, which is expected to take about 100 hours to finish. This will have its own bounty pot. I might try other cards like 4965 or 5100, but I expect the community to step up and write their HALs as I don’t have any access to these cards.
If other people want to contribute source code, they’re welcome to do so. My bounty pot’s value will always correspond only to the number of hours that I spend personally.
Does all this sound reasonable? The only way I can gauge what everyone thinks is by having a poll, so I made a few of them.
First, to check what hardware I should concentrate on immediately:
Next, to confirm whether it’s a wise idea to release beta version without any security support:
This one should help decide whether to spend more time getting Airport fully working, or the hardware:
And finally, to gauge how many people will contribute towards the bounty. [Note: have simplified the options]
The bounty amount is going to be pretty large actually, considering a nominal value of €20/hr (a kernel programmer usually gets paid 2-3x as much), it comes to 273 x 20 = €5460. I don’t think I’ll get this much contribution, so I’d say the “sufficient amount” is €2500.
I will let this poll run for a day or two and if the response is favorable I will publish my Paypal info etc.
If you have any other questions or concerns, feel free to post in the comments. I fully expect to be flamed :P