[kismac] Re: Solution to AE Passive Mode kernel panics, unable to load Monitor Mode

  • From: Ricardo Lugo <punka@xxxxxxxxxx>
  • To: kismac@xxxxxxxxxxxxx
  • Date: Sun, 30 Apr 2006 23:42:31 -0400

Perhaps I should have just looked at the code. Nevermind.

- Rick

On Apr 30, 2006, at 11:25 PM, Ricardo Lugo wrote:

So what is permanent mode, and why then does it require an unload / reload of the AppleAirport2.kext?

On Apr 30, 2006, at 9:29 PM, Geoffrey Kruse wrote:

Kismac uses the Apple kernel extension anyway, I fail to understand how not using permanent mode allows you to have fewer extensions loaded?

On Apr 30, 2006, at 5:01 PM, Ricardo Lugo wrote:

Yeah, I guess I *could* enable permanently.... But I prefer to load as few kernel extensions as possible, especially when it won't be used 99% of the time. I think its a wise decision to leave that up to the user.

Implementation-wise, it can be done from the command-line:

        "turn off airport" (however KisMac does that)
        killall eapolclient
        killall -HUP SystemUIServer

- Rick

On Apr 30, 2006, at 5:11 PM, Robin L Darroch wrote:

Sounds to me like your suggestion might be achieved using an AppleScript to launch KisMAC, rather than building it into the application itself. Can you tell us whether you've tried using the option to "Permanently enable Airport Extreme passive mode"? Most people have found that fixes their problems with AE passive... unfortunately, since it appears not to be well understood (for example, the facts that it will probably help significantly, and is entirely reversible), a lot of people try to use AE passive without checking that option. Many people find (as you did) that attempting to do so causes serious problems. Permanently enabling AE passive simply ensures that the interface for passive capture is enabled at boot time, removing the need to unload and reload everything at runtime (which is where your problem has originated as far as I can tell).

Can you try turning on the "permanently enable" option, rebooting, and seeing if you get passive support without going through the steps you describe?

To the other developers: in light of the problems caused by *not* permanently enabling (i.e. kernel panics among other things), I suggest we have the KisMAC installer permanently enable AE passive support right up front (and recommend or require a reboot following installation), then allow the user to turn it off IF they so choose, but when they do, warn that attempting to use AE passive without permanently enabling could cause serious problems. "alpha" release software is entitled to have a few bugs in it, but something that can crash your whole system is only acceptable on a Windows platform. :)

Dear Kismac developers:

I have a 1.33Ghz G4 AI PowerBook, and keep getting kernel panics or "Unable to load Monitor Mode" errors when trying to load the AirPort Extreme passive mode driver in Kismac - and have found the solution that allows dynamically-loaded passive mode to work!

Symptoms ======== Kernel Panic when loading driver

"Unable to load Monitor Mode" when trying to load driver

Unable to unload AppleAirPort2.kext, something like this appears in dmesg:
kernel[0]: com.apple.iokit.AppleAirPort2: AirPortPCI has 1 instance(s)
kernel[0]: com.apple.iokit.AppleAirPort2: PCIWUserClient has 1 instance(s)
kernel[0]: com.apple.iokit.AppleAirPort2: PCIWirelessTimer has 8 instance(s)
kernel[0]: com.apple.iokit.AppleAirPort2: AirPortPCI_MM has 1 instance(s)

Resolution ========= 0) Turn AirPort Off 1) `killall eapolclient` 2) Remove the AirPort status in menu bar

If one boots up with AirPort Off, the kext is still unused and as such can be unloaded, so the passive mode driver will load in this state. But its a royal PITA to reboot every time you want to use KisMac.

Once you activate AirPort and connect to the internet, however, the kext gets put into use and one must first stop all programs / deamons that keep it in use, as that prevents it from unloading.

Eapolclient opens when one connects to a WPA2 Enterprise (the one with 802.11x, but it could open for others?). Even if airport is turned off (or port is removed), the eapolclient daemon remains open. If one attempts to unload AppleAirPort2.kext without first killing/stopping this daemon, the kernel panics.

If AirPort is ever turned on, the "AirPort status in the menu bar" prevents AppleAirPort2.kext from unloading, so turning AirPort off, then removing it from the menu bar effectively removes all active instances of the kernel extension from the system, allowing it to unload.

Only after airport is turned off, eapolclient is stopped, and the menu bar status is removed, will KisMac be able to unload the kext, load it's driver, and be able to scan passively.

I hope this solution finds it's way into KisMac's source!

- Rick


------------------------------------------------------------------- ------
Robin L. Darroch - PO Box 2715, South Hedland WA 6722 - +61 421 503 966
robin@xxxxxxxxxxxxx - robin@xxxxxxxxxxx - robin@xxxxxxxxxxxxx

Other related posts: