Airport, WiFi and Leopard – a possible fix (ie ‘works for me’)

WiFi and Leopard woes

If you want to leap straight to ‘the fix’, click here – the bit below is me venting and providing backstory…

Type this into Google, “leopard wifi problem” (without quotes) – as of today, Wed September 17, 2008, there are 531,000 hits on that combination of words. It’s a problem. Wander through the user support pages on apple.com and you will find tales of woe, despair and desperation. People are re-installing systems, going back to Tiger and saying that they will never buy anything from Apple again.

Some of those threads get deleted – the one I’d bookmarked yesterday has disappeared without trace. it seems this is more likely to happen if people have gone off the rails at Apple.

I waited for 10.5.5 like everyone else, and was not in the least bit interested in “Improves Spotlight indexing performance” or “Improves Time Machine reliability with Time Capsule” or whatever – there was only one this I was interested in. Leopard Wifi fixes.

My machine (MacBook Pro 2.16 GHz Intel Core Duo) had started losing WiFi randomly a couple of months ago – I have no idea what I did to make it happen. I have tried everything short of re-installing my system (that just smells too Windows to me, and I have stuff like MySQL, PostGreSQL, Python 2.5, Django, subversion, git etc which I didn’t want mangled).

I used the ‘lite’ updater (136 MB) – restarted, let it bong twice, restarted again from the login screen for good measure … no joy.

I then used the excellent AppleJack (now updated for Leopard) to ‘deep clean’ my system. You’ll need to restart in single-user mode (restart, then hold down command-s) to be able to use AppleJack, and be careful, you’ll be in root mode… No joy there though…

Downloaded the combo updater (600+ MB) – restarted, let it bong twice, zapped parameter RAM (command-option-p-r on startup), so that meant a couple more bongs … still no joy.

Despair starts to descend…

A Possible Fix

Warning

You’re going to be messing around with system software here, and that means you could be looking at a crater on your desk if things go wrong – so if you’re not sure about any of this, stop now.

Someone had posted about fixing the problem by going back to an older version of an Airport-related Kernel extension, and frankly, all we’re going to do here is replicate what that post is talking about – but with more pictures 😉 This is normally pretty hairy stuff, as things that live in /System/Library/Extensions are how devices (internal and external) communicate with OS-X, and you can rapidly mess up your system – here be dragons (I don’t know if physical hardware can be damaged by messing around with these Extensions, but as they do communicate with hardware it’s got to be a possibility – you have been warned).

You need to get hold of an extension called IO80211Family.kext – it seems that versions of this extension up to and including 10.5.2 are different from those of 10.5.3 and beyond.

The IO80211Family.kext files

Here they are, as in a line-up, and one of them must be guilty surely (except that many many people are using 10.5.5 without any problems – remember, you’re here because something is awry…)

IO80211Family.kext 10.5.0 original DVD installIO80211Family.kext 10.5.2 comboIO80211Family.kext 10.5.5 combo

Left to right, Original Leopard DVD install, 10.5.2 combo install and 10.5.5 combo install.

There are at least two ways of getting that extension, your original Leopard DVD (or a disk image of it) or by downloading the 10.5.2. combo update (343 MB) from Apple.

You will also need the very excellent Pacifist program that can extract objects from installers. Here’s a brief description of what the program does (from the site). This saves you from having to use the Terminal.

Pacifist 2.5.2 is a shareware application that opens Mac OS X .pkg package files, .dmg disk images, and .zip, .tar, .tar.gz, .tar.bz2, and .xar file archives and allows you to extract individual files and folders out of them. This is useful, for instance, if an application which is installed by the operating system becomes damaged and needs to be reinstalled without the hassle of reinstalling all of Mac OS X. Pacifist is also able to verify existing installations and find missing or altered files*, and Pacifist can also examine the kernel extensions installed in your system to let you see what installer installed them, and whether the installer was made by Apple or a third-party.

Make a backup

Make a backup – Time Machine, Super Duper!, Carbon Copy Cloner, whatever – but make a bootable backup. We’re only going to be changing one file, but it’s a pretty important one – you could end up with no wireless if things go badly wrong.

If you’re feeling confident, go to the terminal and do this instead;

Using the original Leopard DVD (or disk image)

If you’ve got the original Leopard DVD (or disk image), do this;

Load up the DVD (or mount the disk image). You’ll get something like this;

Leopard Install-boot

Fire up Pacifist, and select the ‘Open Apple Install Discs’ option, select the Apple install package to open and wait…

Pacifist - Apple install package

Pacifist loads up all the packages on the disk, and as there’s a lot to look through, you’ll need to wait, but eventually you’ll get something like this;

OSInstall.mpkg

We are only interested in the IO80211Family.kext, so type ‘80211’ into the Find box and hit return, you’ll get this (I’ve selected the right package in the left hand pane);

Finding the IO80211Family.kext extension

Now you need to install it to the right place, so skip to ‘Installing the Extension’ below

Using the 10.5.2 combo package

Load up the .dmg file so we can get at the .pkg file on it.

Mac OS X 10.5.2 Update Combined

Open it using Pacifist, and you’ll get this;

MacOSXUpdCombo10.5.2.pkg

Search for ‘80211’, and you’ll get this;

MacOSXUpdCombo10.5.2.pkg - IO80211Family.kext selected

You are now ready to install the extension.

Installing the Extension

MAKE CERTAIN YOU HAVE ONLY SELECTED THE IO80211 FILE – you only want to replace that one file.

This is the same for both the DVD (or disk image) and the 10.5.2 combo updater, but I’m just showing the 10.5.2 combo;

About to install IO80211Family.kext

Again: MAKE CERTAIN YOU HAVE ONLY SELECTED THE IO80211 FILE

You’ll need administrator rights, and once you’ve authenticated you can let the installer run.