Mods: Feel free to move this to where you think it should be. I'm only posting it in this thread for the sake of keeping things easy to find.
This assumes that the reader has no knowledge whatsoever of how to do anything. (obtaining from SVN, compiling, loading the kext, logging)
WARNING: Testing these experimental drivers may cause irreversible system changes.
WARNING: Setting up OS X just to be able to compile the kext requires XCode, which is a hefty download. ( version 3.0: 1.1GB, @ http://developer.app...tools/download/ )
RECOMMENDED: Back up your kexts, just in case.
( see http://forum.insanel...&...st&p=636840 )
Note: You /may/ be able to skip this portion (Part I) by downloading XCode and following the steps shown in the Post-script, Part III.
After finishing the instructions in the Post-script, Part III, proceed with the instructions in the body of the tutorial, Part II: Compiling the source from the SVN.
(Once again, XCode 3.0 is used in this tutorial, and it is a large download.)
1. Obtain SVN Client software
Personally, I use svnX. It can be found on:
Make sure to download and install the Subversion binary package linked on the page too.
2. Setting up svnX to download the latest source from the SVN.
Here are the two repository locations
Make note of the one that applies to your card.
Launch svnX. You'll see two windows appear. Pay no heed to the "Working Copies" window, but instead focus your attention to the "Repositories" window.
Now look back to the two repository locations, for this tutorial, I'll be explaining instructions on how to download the iwi4965 source.
On the repositories window, click the "+" sign to add a new SVN location.
Select the new entry that appears in the window and change the following:
Name: "My Repository" to "iwi4965-osx10.5"
Path: "svn://" to "http://iwidarwin.goo...i4965-osx10.5/"
(Without the quotes, for those of you that must ask)
Also, for those sleepyheads out there. These are the instructions for the Intel 4965 card.
The window should now look like this:
Now, highlight and double-click that entry. Another window should now appear.
It should look like this:
The latest revision should be selected, if not, do so. (Rev#)
Seeing as we want to download the stuff shown down at the bottom, click the "svn export" to save a local copy of the svn repository to your drive. (The green arrow on the top right) For the sake of convenience, select your desktop as the location to save everything to.
As the files are being downloaded, you'll see a progress bar appear at the bottom right of the svnX iwi4965-osx10.5 window. Do NOT quit svnX until that disappears. See below for an example:
You should now see a folder named "root" on your desktop. It should contain all the sources required to build the kext.
Part II: Compiling the source from the SVN.
1. Obtain XCode.
Get it: http://developer.app...tools/download/
I used the 1.1 GB XCode 3.0 DMG. You might need to set up an Apple Developer Connection member account to download it.
Mount the disk image and install the XcodeTools.mpkg package file. I didn't need to install anything else.
2. Launch XCode to compile the kext and networkSelector.
Now refer back to the "root" folder on your desktop. Open it up and open the iwi4965.xcodeproj file. (Double click it, XCode should be automatically launched)
You should now see:
note: if you do not see this exact screen, make sure you have selected the iwi4965 project file, as shown under "Groups & Files"
Notice the iwi4965.kext in red? We need to build that. What do you do? Click the "Build" hammer on top.
You should receive a bunch of warnings, but we'll ignore them.
Afterwards, you should see "Build succeeded" and "iwi4965.kext" should no longer be in red text. If its text color is black, select it and open up a context menu and choose to "Reveal in Finder". (See below)
Drag the kext to your desktop for easy access.
Now, follow the same steps for networkSelector. (See the /networkSelector directory for the .xcodeproj)
Note: If you are having trouble compiling networkSelector, see: http
The posts linked above might also solve future problems when following the rest of this tutorial.
Part III: Getting ready to test.
1. Setting up the console.
Open up the Console. (Applications>Utilities>Console)
Show the log list, if not already visible. (The top left button)
Select the system.log file. (Under LOG FILES>system.log)
This is what a typical user should see, notice how messy it is? It has all of these irrelevant error messages.
Let's clear up that log, to make it simpler to see the information we need.
Reveal the file in Finder.
Then open it using your favorite text editor.
Afterwards, clear the log. (Select everything, delete, and save)
You may need to authenticate for this action. That's normal.
Click Reload in the Console. Everything should be squeaky clean (empty).
If not, there should at least be fewer error messages in the system log.
Mine is squeaky clean
2. Obtain Kext Helper b7
Seriously. It kicks ass! No more repetitive Terminal work.
Part IV: Testing
Here's where the real fun begins. Kernel panics, lock-ups, and system instability.
If you got lost more than 10 times up to now, it's never too late to turn back.
But since I'm taking the time to write this tutorial, why not follow it? hehe >.>;;
Make sure that you have done the following:
 Compiled the kext and networkSelector and know where they are
 Cleared system.log of any error messages generated before the testing
 Downloaded Kext Helper
 Realized that I'm not responsible for any damage to your system
 Thanked jalavoui and the other hard-working people, all dealing with this enormous pain in the arse. (Driver development = ew)
 Read all of the above
2. Loading the kext
Run Kext Helper b7.
Drag your iwi4965.kext into the window.
Enter the password for the user logged in.
It should look like this. (Check the "advanced" box if you want to look cool)
Ready? Click the EASY INSTALL button.
Are you really ready? If so, click OK.
Now, after a couple seconds, you should see:
BUT WAIT! You don't necessarily want to reboot yet!
Check the Console first!
Make sure OS X detects your card. You might see something as follows (from rev 872)
If you do, congrats! You have the experimental drivers loaded!
Now, you have two options, unless I'm mistaken.
 Save the system.log as a text file now (File>Save Copy As) and unload the kext
 Or reboot with the kext loaded still to see what happens (Kernel Panic? Success? Pancakes?)
After saving system.log, post it to this topic and be sure to indicate your revision number!
I'll add a more detailed section regarding networkSelector if I should ever feel like it.
You basically just need to launch it, and initiate a scan from it.
From my experience, if I don't initiate a scan from networkSelector, my card defaults into 802.11a.
When I do use networkSelector to initiate a scan, it's forced into 802.11b/g.
Anyhow. That concludes the main portion of the tutorial.
Onto the aftermath portion.
Post-script Part I: Unloading the kext.
There are many ways to do this, I'll go over three situations.
1. Situation 1
You've barely made it through this godly tutorial and haven't yet restarted as you're too scared as to what may happen. You're still logged in and want to unload the kext while your system is still stable. What do you do?
Open up Finder. Browse to your Extensions directory.
Locate iwi4965.kext and drag it to the trash.
You'll have to authenticate. That's normal.
You can now reboot and everything should be back to how it was before.
2. Situation 2.
You're in the same situation as above. However, you want to be pro and unload it using the terminal.
Open up the Terminal.
Type in the following:
sudo rm -rf /System/Library/Extensions/iwi4965.kextYou'll have to authenticate, and it should be unloaded after you rebooted.
3. Situation 3.
Oh no! You've rebooted and you either get a kernel panic or OS X simply locks up before you can get to a GUI.
For all I know, austinsnyc has a point there, but I've gotten into a forced habit of adding more boot flags than necessary.
you just need to boot into single user mode using the -s flag to remove the kext you do not need -x -v
-v is verbose mode for seeing why something is not loading right and -x is for safe mode it only loads needed kexts to run since your deleting the 3945.kext or what not before system load the -x is not needed again just the -s is needed.
In this part, something is definitely not going right if you're getting kernel panics, so at least have "-v -s" so you can easily diagnose the issue.
Removing the "-x" flag will save you an extra reboot, after you've unloaded the kext and want to have full functionality.
If you want more info about boot flags, please see: http://forum.insanel...showtopic=99891
-x = Safe mode. Basically boots your system with the bare minimum kexts.
-s = Single user mode. Command line only mode. Allows you to run commands as root to fix system.
-v = verbose mode. Basically tells you wants happening during boot up.
Try booting into OS X with the following flags (all at once):
-v -x -sYou should be greeted with the standard terminal prompt after everything has loaded.
Then do the following commands:
mount -uw / rm -rf /System/Library/Extensions/iwi4965.kext exitYou should then be able to boot into OS X. (With minimal kexts loaded)
If you are able to, and wish to be able to have full functionality, reboot yet again without the flags to load all installed kexts.
If you are not, and you performed all the steps on
Try restoring the backups.
Post-script Part II: Messing around
Sometimes jalavoui (or someone else) may suggest that you edit some source code and experiment with certain values.
Here's how you'd do it in XCode.
Let's assume you need to change an IOSleep value. How would you find what to change in the jungle of code?
Load up iwi4965.xcodeproj or whatever.
Go to Edit>Find>Find in Project
The following window will pop up. Search for the proper string, and scroll around for the right instance you're looking for.
Make a change, save it, and build the kext. It's that easy
Post-script Part III: Subversion (SVN) in XCode
Now, since you've already gotten the XCode project file, and XCode, why bother with svnX? (I still use it, due to force of habit, but this alternative method could save you lots of time)
Original instruction set used in this portion by jalavoui @ http://forum.insanel...&...st&p=727731
1. Enable Subversion integration.
Basically, we'll be linking your XCode project directly to the SVN repository.
This way, you'll be able to switch between revisions, check for changes, and other things, all in XCode.
note: I've just realized that this portion may be able to replace the portion regarding svnX, the tutorial will be changed to reflect this.
Launch XCode. Go to SCM>Configure Repositories
Click on the + to add a new repository. (You choose whatever name you want, it doesn't affect much, just the name of the directory everything is saved in)
Make sure Subversion is set as the SCM System.
Now you'll see this:
http://iwidarwin.googlecode.com/svn/trunkand the rest should automatically be filled in for you.
Note: You must have that URL in the code-box above (or one in a higher directory) for you to be able to proceed with these instructions.
Do not use the URL for the SVN directory pertaining to your wireless card.
Once you've been Authenticated, click OK.
Next, we'll export the contents of that SVN directory through XCode.
Go to SCM>Repositories
You'll see a window like:
Select the proper folder for your wireless card and click on "Checkout" as shown above.
Make sure you click on "Checkout" and not "Export".
Just exporting the directory will not allow you to integrate the project with Subversion.
I export my folders to the desktop, for easy access. Just choose a location that's convenient for you.
You will receive an "Checkout Complete" notification message.
Now open the XCode project and click on "Get Info" in the context menu shown below.
This window will appear.
Select the proper SCM Repository. Once that's done, you can close that window.
Now, onto another part.
2. Comparing versions
Basically, how to check for changes in code.
Choose to "Get Info" from any file in the project window.
In this case, we'll use "compatibility.cpp" as it's the most frequently modified file.
The following window will appear, after you've switched to the SCM tab.
Any changes to a file in a release will be displayed here.
Select a revision, and click compare to see what has been changed in respect to the latest release.
One of the many shortcuts in XCode is Option+Arrow Up/Down. This particular shortcut will allow you to quickly scroll between changes in the code, while skipping the fluff inbetween.
- add portion on how to compare the log results from Linux
- anything else jalavoui might've requested that I do
Exams are coming up for me (mid-May), expect a delay at times between updates and changes.
Anyways, I hope this helps!