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
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: com.apple.iokit.AppleAirPort2: AirPortPCI has 1 instance(s) kernel: com.apple.iokit.AppleAirPort2: PCIWUserClient has 1 instance(s) kernel: com.apple.iokit.AppleAirPort2: PCIWirelessTimer has 8 instance(s) kernel: 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!
------------------------------------------------------------------------- Robin L. Darroch - PO Box 2715, South Hedland WA 6722 - +61 421 503 966 robin@xxxxxxxxxxxxx - robin@xxxxxxxxxxx - robin@xxxxxxxxxxxxx