Reverse Engineered 802.11b+ Drivers 272
orv writes "When Andreas Mohr found that his new wireless networking card wasn't supported under Linux rather than returning the card and getting himself a supported one, he decided to set up a project to write his own drivers instead - http://acx100.sourceforge.net.
Companies such as D-Link had initially promised to release linux drivers for these cards but later backed down from that promise and announced that Linux would not be supported and that customers should not hold on to the cards in the hope of getting them working, as shown on their current FAQ.
Texas Instruments, the makers of the chipsets upon which these 802.11b+ cards are based refused to release code or specifications for the cards, no doubt for similar reasons that were recently discussed here.
The fact that the current alpha release is certainly as good, and in some areas better, than the binary drivers that escaped from one of the card manufactureres speaks volumes for the quality and determination of the team to create their own drivers."
Good For Them (Score:5, Interesting)
A psychological standard of quality on the part of the devs leads to a physical and coding standard of quality a cut above the rest.
Why the backpedaling now? (Score:5, Interesting)
It would be easier to understand if the companies had been a-holes all along. I hate to see the change as it is effecting the buying patterns I had become comfortable with.
Re:DCMA Anyone? (Score:3, Interesting)
Official support (Score:5, Interesting)
How was it done? (Score:5, Interesting)
It would be nice to have a system which emulates a whole machine (ala vmware but open) and then open some ports from the emolation to the real hardware. This way Windows assumes its running on a real machine but you have full snooping on the interface with the hardware.
It wouldnt take too long to write a simple x86 emulator for KMD [freshmeat.net]. And a nice tool to decide what areas whould be feed straight through to the real hardware would make it much easier to make drivers for other win only devices. It would also be useful to test the linux drivers but you can allready run linux in user mode.
What about other chipsets? (Score:2, Interesting)
Anybody know of any projects out there for the Broadcom chipset?
Re:Why the backpedaling now? (Score:5, Interesting)
Re:L'homme n'a eu aucune alternative. (Score:2, Interesting)
Intel Centrino (Score:2, Interesting)
I can't find a driver, so I wondered if anybody knew of efforts to write one.
Another solution would be if somebody could recommend an alternative card for my D800..
Re:DCMA Anyone? (Score:5, Interesting)
In any case there is a specific clause in the DMCA that allows for reverse engineering for the purpose of interoperability.
Software driven radio hmm., I think not (Score:2, Interesting)
Software driven radio. While this sound cool you are getting nowhere without some hardware that will transform analog signals (In cellular with a dynamic range of more than 100 dB (1e10)) to digital. While it might be possible to build such an A/D converter it will use much to much current unless you use some trickery in getting rid of the dynamic range before sampling.
This transformation is what the hardware in modern radios do. This hardware is what is not covered in the gnu project.
What is covered in the gnu project is digital modulator and demodulator at baseband. While this is very nice it is not revolutionary.
Re:Don't buy unsupported hardware (Score:2, Interesting)
Re:Intel Centrino (Score:1, Interesting)
(it shuts off and immediately powers back up, maybe due to the #PME (power management event) PCI signal)
On other notebooks it might cause the notebook to immediately shut down after switching it on: disconnecting #PME helped here.
Hmm, wait, given this info I probably cannot recommend the ACX100 mini-PCI any more
Of course we'll try to find a solution to these issues, and we'll publish that if we manage to fix it.
Andreas Mohr
Interesting (Score:5, Interesting)
Re:Interesting (Score:5, Interesting)
Initially they said a linux driver would be released december 2002.
In december that date was changed to Q1 2003.
At the end of december they then said there were no plans for a linux driver and customers should not 'hold onto cards in the hope of drivers' being written.
Then they added a link to the leaked binary drivers
Then they added a link to the oss drivers
Wonder what they'll change it to next?
Re:Reason They Aren't Releasing Drivers (Score:3, Interesting)
the only issue would be that 802.11b is about 15mhz wide. if this could be re-tuned, we could use the gear in areas where we wouldn't have to deal with normal interfearance.
Re:DCMA Anyone? (Score:1, Interesting)
This is just a theory.
btw, the same thing goes for ISP's i had the same problem with SBC dsl, i called for a port number that would not dictate what OS I was using, they asked anyways... I said linux, they said they don't support linux, and hung up.
Another Candidate for Reverse Engineering (Score:2, Interesting)
Iv'e done some preliminary poking around with my copy of the binaries and it seems that ITEx were pretty sloppy with the binaries [solwise.co.uk] and left a lot of symbol table in that wasn't needed, thus making reverese engineering via objdump et al pretty easy.
I don't have time to work on this myself, but I'm willing to kick off a sourceforge or savannah project with what I have already - if anyone else is interested.
Voting with $ (Score:3, Interesting)
I recently moved into a house with an odd design which made connecting remote computers to the central router difficult using wires. My (iBook) laptop had no problems because it was able to go wireless, so I decided to go with a wireless solution for my Linux desktop. I had no idea what I was getting into.
I figured the easiest solution would be a USB based device, so I looked around and found a table of USB 802.11b driver support under Linux [wireless.org.au]. At first, I went to a local store and bought a device that the table said was supported. I got it home and ugh, it barely worked. Under Linux the driver was awful. To see if it was maybe the card itself I tried it under Windows. It barely worked there, hanging the machine when I tried a throughput test.
So I sent that back and ordered an SMC card which was supposed to have vendor-supplied drivers. I got it home, plugged it in, and tried to install the drivers. No luck. It turns out they were binary-only drivers for specific old RedHat kernels. So I emailed SMC for support. A week later someone got back to me to say that my issue had been escalated. A week after that I got a tar file in the mail. It turns out what I received was simply a forked and slightly modified version of the code on a Sourceforge project [sourceforge.net]. But, surprise, surprise, it didn't work either.
More investigations led me to an alternate driver [berlios.de]. Using the mailing list associated with this project, thanks to Joerg Albert I was able to determine that my device has a hardware configuration which is apparently very rare and needs special firmware. Once I got that, after about 3 weeks of effort, I had working 802.11b access under Linux.
At the end of this I'm annoyed with SMC. I am glad that they acknowledge that Linux exists, on the other hand, they were completely useless when it came to actually supporting their product.
In the end I guess I voted well with my dollars, supporting a company that provided minimal efforts to support Linux rather than one that refuses to even admit it exists. But I also provided $$ to a company that is deceptive about their hardware being truly supported under Linux. It was also pretty annoying that to get the thing to work required taking some random firmware file (in the form of a C header file with a massive data array) and randomly trying it to see if it would work.
It's sad when voting with your dollars is like other kinds of voting, where you vote against somebody because they're worse than the person you're voting for.
What's more frightening is that in a month or so I'm scheduled to find a way to get a mini-PCI 802.11b card working for an embedded Linux system running on an ARM processor. If getting a system with a fairly standard connector was this difficult on a desktop machine, I'm dreading trying to get a card with an obscure interface working on non-i386 CPU. Wish me luck.
Re:Voting with $ (Score:1, Interesting)