Jump to content

Intel (R) PRO/Wireless 2200B/2915


383 posts in this topic

Recommended Posts









Hi everyone,


as you may know I've been working on the iwi2200 drivers.. many of you may think this is {censored} since until now nothing has been released or reported working. But here is proof :) and the first release of a somewhat functional driver which is based on the freebsd iwi driver (the fbsd equivilant to the linux ipw)


Here to fill you in on the current project status of what i have managed to do:


- firmware is loaded

- ucode is loaded

- card is initialized

- basic (but faulty) Rx/Tx Queues are setup

- first attempts to scan for available accesspoints have invoked a recieve interrupt

- however no AP association is functional as yet


The current problem I am having is implementing Ieee80211 specific routines as there is no open Ieee80211 framework provided by darwin. Another major problem is the lack of time due to the upcoming semester and the exams that come along with it.


How you can help:


- You can't! Unless you are familiar with programming or Ieee80211.. please dont email me offering your "testing" support. I apprechiate it but I have more than enough of those. thanks ;)


Where to download it:


http://sf.net/projects/iwi2200 and go to "Files"

or directly to:



If you feel fit to help just drop me a private message here (i dont feel like disclosing my email to a public forum)





Here are the requirements to get it working:

- XCode 2.x (available from Apple free of charge if you signup on http://developer.apple.com/)

- The ipw firmware which cannot be freely distributed with the project... for this reason you will have to download it at: http://ipw2200.sourceforge.net/firmware.php

- Some minimal knowledge of how to use a unix terminal




Lets get it compiled:

first step is to download the firmware at http://ipw2200.sourceforge.net/firmware.php (i used version 2.4) and copy the ipw-*.fw files into iwi2000/firmware/. In that directory you will find a file called hex2string. hex2string will generate a C-String headers out of the firmware files: All you need to do is:

$> cd iwi2200/firmware

$iwi2200/firmware> ./hex2string ipw-2.4-boot.fw iwi_boot > iwi_boot.fw.h

$iwi2200/firmware> ./hex2string ipw-2.4-bss.fw iwi_bss > iwi_bss.fw.h

$iwi2200/firmware> ./hex2string ipw-2.4-bss_ucode.fw iwi_ucode_bss > iwi_ucode_bss.fw.h


(If you use a different version from 2.4 just replace the 2.4 with the version you downloaded.)


once you've created the required headers return back to the root of the iwi2200 directory with

$iwi2200/firmware> cd ..


now its time to compile the actual driver by using the Makefile:

$iwi22000> make


If this was successful then you got lucky!! To load the driver type:

$iwi2200> ./load


and you should read something like this:

kextunload: unload kext ./build/Default/iwi2200.kext failed

kextload: ./build/Default/iwi2200.kext loaded successfully



check dmesg for the driver generated output and check if your device shows up in ifconfig by typing:

$iwi2200> dmesg

$iwi2200> ifconfig -a




Good Luck, happy hacking...



Joel Thomas


P.S. Dont think this driver is acctually working yet. It still needs some more work. Its ment for developers, the curious and the impatient

Link to comment
Share on other sites

Just thought I would point out, your directions on this website are not quite the same as the read me file you included with the drivers. The line


$iwi2000/firmware> ./hex2string ipw-2.4-bss.fw iwi_ibss > iwi_bss.fw.h


should be


$iwi2000/firmware> ./hex2string ipw-2.4-bss.fw iwi_bss > iwi_bss.fw.h


In fact, if you follow the directions in your readme file, or on this forum and the 360hacker forum your build will fail each time. Just thought you should correct the problem. Most trying this out would probably figure this out after a while.

Link to comment
Share on other sites

$iwi2000/firmware> ./hex2string ipw-2.4-bss.fw iwi_ibss > iwi_bss.fw.h


should be


$iwi2000/firmware> ./hex2string ipw-2.4-bss.fw iwi_bss > iwi_bss.fw.h


problem fixed.. thanks for correcting that

Link to comment
Share on other sites

hi. i've installed xcode 2.1. when i type the make command and execute it (i followed the instructions given in the topic) i get the following error:





PBXCp build/Default/iwi2200.kext/Contents/Info.plist build/iwi2200.build/Default/iwi2200.build/Info.plist

mkdir /iwi2200/build/Default/iwi2200.kext/Contents

cd /iwi2200

/System/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /iwi2200/build/iwi2200.build/Default/iwi2200.build/Info.plist /iwi2200/build/Default/iwi2200.kext/Contents


CompileC build/iwi2200.build/Default/iwi2200.build/Objects-normal/i386/iwi2200_info.o build/iwi2200.build/Default/iwi2200.build/DerivedSources/iwi2200_info.c normal i386 c com.apple.compilers.gcc.4_0

mkdir /iwi2200/build/iwi2200.build/Default/iwi2200.build/Objects-normal/i386

cd /iwi2200

/usr/bin/gcc-4.0 -x c -arch i386 -pipe -Wno-trigraphs -fasm-blocks -Os -Wreturn-type -Wunused-variable -fmessage-length=0 -I/iwi2200/build/iwi2200.build/Default/iwi2200.build/iwi2200.hmap -F/iwi2200/build/Default -F/System/Library/PrivateFrameworks -I/iwi2200/build/Default/include -I/System/Library/Frameworks/Kernel.framework/PrivateHeaders -I/System/Library/Frameworks/Kernel.framework/Headers -I/iwi2200/build/iwi2200.build/Default/iwi2200.build/DerivedSources -fno-common -nostdinc -fno-builtin -finline -fno-keep-inline-functions -force_cpusubtype_ALL -fno-exceptions -msoft-float -static -DKERNEL -DKERNEL_PRIVATE -DDRIVER_PRIVATE -DAPPLE -DNeXT -DBSD_BUILD -c /iwi2200/build/iwi2200.build/Default/iwi2200.build/DerivedSources/iwi2200_info.c -o /iwi2200/build/iwi2200.build/Default/iwi2200.build/Objects-normal/i386/iwi2200_info.o


CpResource build/Default/iwi2200.kext/Contents/Resources/English.lproj/InfoPlist.strings English.lproj/InfoPlist.strings

mkdir /iwi2200/build/Default/iwi2200.kext/Contents/Resources/English.lproj

cd /iwi2200

/System/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -strip-debug-symbols -resolve-src-symlinks /iwi2200/English.lproj/InfoPlist.strings /iwi2200/build/Default/iwi2200.kext/Contents/Resources/English.lproj


CompileC build/iwi2200.build/Default/iwi2200.build/Objects-normal/i386/iwi2200.o iwi2200.cpp normal i386 c++ com.apple.compilers.gcc.4_0

mkdir /iwi2200/build/iwi2200.build/Default/iwi2200.build/Objects-normal/i386

cd /iwi2200

/usr/bin/gcc-4.0 -x c++ -arch i386 -pipe -Wno-trigraphs -fasm-blocks -Os -Wreturn-type -Wunused-variable -fmessage-length=0 -fapple-kext -I/iwi2200/build/iwi2200.build/Default/iwi2200.build/iwi2200.hmap -F/iwi2200/build/Default -F/System/Library/PrivateFrameworks -I/iwi2200/build/Default/include -I/System/Library/Frameworks/Kernel.framework/PrivateHeaders -I/System/Library/Frameworks/Kernel.framework/Headers -I/iwi2200/build/iwi2200.build/Default/iwi2200.build/DerivedSources -fno-common -nostdinc -fno-builtin -finline -fno-keep-inline-functions -force_cpusubtype_ALL -fno-exceptions -msoft-float -static -fno-rtti -fcheck-new -DKERNEL -DKERNEL_PRIVATE -DDRIVER_PRIVATE -DAPPLE -DNeXT -DBSD_BUILD -c /iwi2200/iwi2200.cpp -o /iwi2200/build/iwi2200.build/Default/iwi2200.build/Objects-normal/i386/iwi2200.o

In file included from /iwi2200/iwi2200.h:50,

from /iwi2200/iwi2200.cpp:59:

/iwi2200/iwi_ieee80211.h:29:23: error: kern/lock.h: No such file or directory

/iwi2200/iwi_ieee80211defs.h:118: error: 'mutex_t' does not name a type


make: *** [all] Error 1


what did i do wrong? could you nplease help me? thanks a lot! chrisc.

Link to comment
Share on other sites

what did i do wrong? could you nplease help me? thanks a lot! chrisc.


you're missing some SDK i guess.. try installing BSDSDK.pkg or something


or just try commenting out those headers?

Link to comment
Share on other sites

Well, first of all, thank you tuxx. alas, it did not help. i installed every package but some printer drivers. when i installed some SDK-Packages again, installer said it woul upgrade, so i guess the sdk-files are rightly installed on my system. any other guess what is wrong with my system / why i cannot compile the driver? thx, chrisc.

Link to comment
Share on other sites

What card!? Is it working in full? can you connect to AP? can you upload the compiled files?


geezes read above.. i even wrote in BOLD letters that this driver is purely a development driver... its not fully implemented and it doesnt work yet...


Thank you! Now it is working as a pci-network-card! thx, chrisc.


no sorry I'm sorry but its _not_ working yet

Link to comment
Share on other sites

im no programer by any streach of the imagination so this is probobly just stupidity talking but couldent you, in theory mind you possibly use a linux/unix driver for this wireless card? I found this on sourceforge.net http://sourceforge.net/projects/ipw2200/ just a thought


Erm, I think if you see the threadstarter's 1st post, I think some parts of the ipw driver are included.. :)

Link to comment
Share on other sites

This topic is now closed to further replies.

  • Create New...