Jump to content

Intel Pro Wireless 2200BG KEXT Project


13 posts in this topic

Recommended Posts

This thread is for people what want to help develop the ipw2200BG (and compartible) driver.

 

I don't think that Intel will publish an official driver for os x86, so it is to us to make this thing work. Why don't people with this Wireless Adapter problem and others willing to help finally organize and start a mini-project on coding this driver so it works? I am willing to help, but my level of x-coding, darwin and I/O is not sufficient to be productive from the beginning.

 

Please answer asap with your comments and whether such thing would be possible.

 

This is a wide spread device. So I think that many people are interested in getting this finally working.

 

To all those, who can help: Please do :(

Link to comment
Share on other sites

Hi guys,

i'm running Tiger 10.4.3 on my Sony Vaio VGN-FS115S and i'm in trouble

to make wireless and nvidia (GeForce 6200) work.

I've tried the iw2200 driver from tuxx.

I can load it, ifconfig gives (en1 is my wireless device):

 

 

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384

inet6 ::1 prefixlen 128

inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1

inet 127.0.0.1 netmask 0xff000000

gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280

stf0: flags=0<> mtu 1280

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

inet6 xxxx::xxx:xxxx:xxxx:555%en0 prefixlen 64 scopeid 0x4

inet xxx.xx.xxx.239 netmask 0xffffff00 broadcast xxx.xx.xxx.255

ether xx:xx:xx:xx:x5:55

media: autoselect (100baseTX <full-duplex>) status: active

supported media: autoselect 10baseT/UTP <half-duplex> 10baseT/UTP <full-duplex> 100baseTX <half-duplex> 100baseTX <full-duplex>

fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 2030

lladdr xx:xx:xx:xx:xx:xx:xx:xx

media: autoselect <full-duplex> status: inactive

supported media: autoselect <full-duplex>

en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

ether xx:xx:xx:xx:xx:xx

media: <unknown type> (none) status: inactive

supported media: none autoselect DS1 DS2 DS5 DS11 autoselect

 

but no AirPort card detected.

I can help develop further on this item, i'm a C++ programmer with good experience in linux.

Where to start ?

 

b.

Link to comment
Share on other sites

Hm. I have this driver on my "todo" list. just very busy with school.

anyway, some pointers and hints

* Get the *BSD and Linux drivers (if you dislike GPL, skip the linux one, yuck!)

* Read the network kernel extension guide on apple.com/developer (It's rather short, and not very indepth imo)

* Read docs on IOKit. It's a c++ framework and VERY diffrent from *Bsd/linux drivers (workloops and such)

* apple80211 (/System/Library/Frameworks/Kernel.framework/Headers/IOKit/apple80211) is a 80211 stack for OSX, the library is *NOT* included in 8f1111 (but it is included in 8f1039). It's also included in 10.4.4, and it loads correctly (don't know if it works. Might be an idea to look into if someone who has a Broadcom "AirPort" (what chip?) card can see if the 10.4.4 drivers work on 10.4.3)

This framework is acctually a c++ port of the BSD 80211 library (that the bsd drivers use, so it'll probably fit rather good)

 

Also, there is tuxx's channel, #osx86.wireless, I usually hang out there..

Edited by phb
Link to comment
Share on other sites

  • 3 months later...

Hi all.

 

I am nearing the end of my university degree, and am in need of a summer project ;)

 

I have a Uniwill laptop, all intel based, with an ATi Card. I would like to try and get under Darwin/OSX's skin. Can you tell me where to grab to source code you are working on.

 

Cheers

Link to comment
Share on other sites

  • 2 weeks later...

People,

 

As tuxx reported, that driver does nothing but load firmware and ucode onto the 2200bg chipset. It won't work yet as a "real" wireless card. It won't work as a network card whatsoever (except it is reported by ifconfig and the mac address is recognized :)).

 

I know C/C++, so I want to start working on this. I got the 802.11, 802.11b and 802.11g standards specifications from IEEE (they provide them for free). I am currently looking at the OpenSolaris implementation (I find it has a bit more comments in sensible areas of the code) and with the specs I think I should be able to make sense of what is involved in creating a wireless driver for that card.

 

I've contacted tuxx telling him about my willingness to help, and I'm waiting on a reply from him.

 

Meanwhile, if you're not a programmer, or you're not willing to help coding, there's unfortunately not much you can do :) When a major breakthrough is made, you'll hear about it! Of course, if you want to help coding, I think you should contact tuxx.

 

 

Cheers

 

Alex.

Link to comment
Share on other sites

OK, with the latest version of XCode, I got a Kernel.Framework which contains a 802.11 IOKit family. I'm attempting to build a driver (based on tuxx's), however I am running into a small (?) problem.

 

I load my kext, but it complains:

15AirPort_IPW2200 is not compatible with its superclass, 17IO80211Controller superclass changed?
kextload: a link/load error occured for kernel extension IPW2200.kext
kextload: clearing all version/dependency relationships among kernel extensions
load failed for extension IPW2200.kext

 

Now, I'd like to ask other people with more Darwin/OS X driver development experience than me... What does this message exactly mean?

 

From what I can tell, the driver should be fairly straight forward. The IO80211Controller subclasses IOEthernetController and adds wireless extensions, such as getSSID, getRSSI, etc. After getting the firmware to load and setting up packet flows, the wireless extensions should be fairly easy to implement.

 

Also, the IO80211 header files seem to be missing some comments (a couple of ??? here and there), so I hope that Apple will release updated headers with more comments with the framework bundled in the next version of XCode.

 

 

In another note, I got a reply from tuxx (I asked him if I could be of any help in developing these drivers). His reply was simply "die...". :gun: I don't know what his reasons were, and I'm not going to start criticizing him, however, I have one piece of advice for him: You said you want help with this, yet when help comes your way, you reject it. Fair enough, however I still want to work on these drivers, for they affect me directly.

 

So, whoever wants to help me and organize some development, please PM me.

 

That is all for now. Sorry if the post seems a bit disorganized, I was a bit in a hurry.

 

 

Cheers,

Alex.

Link to comment
Share on other sites

With a little help from Joey on IRC, we determined that the KEXT loads on 10.4.6, but not 10.4.5. So I assume the Kernel.Framework comes with headers for 10.4.6.

 

This is good news, since now I know that the KEXT I build actually loads and the dependencies are satisfied. This weekend I plan on upgrading to 10.4.6 on my laptop and continue development.

 

Like I said previously, if you wish to help, contact me. I know I will have some difficulties with setting up the Rx and Tx queues, so if anyone with Darwin/OS X network driver experience feels like helping, he/she is more than welcome!

 

 

Cheers.

Link to comment
Share on other sites

  • 2 weeks later...
 Share

×
×
  • Create New...