Post date: Mar 3, 2010 11:16:10 AM
If you ever tried to install OSX86 in a PC you're likely to be familiar with kernel extensions. For the non-OS X users, they are the equivalent to the Linux kernel modules, or something like drivers in Windows. Usually it requires some time and forum research to make your hardware work after trying and configuring many kernel extensions, most of them programmed by users and open source projects.
The Voodoo Project is one of them. It has created generic kernel extensions for HD Audio, battery, power consumption, PS/2 keyboard, mouse and touchpads, SD card interfaces and, of course, the popular EFI loader Chameleon. With the exception of the SDHCI extension (my chipset is not supported yet), I use all of them and I'm quite satisfied.
Changing the subject a little, I have a Fujitsu Siemens Amilo Pro V3505 laptop and there is one thing I don't like about it: (well, there are a few more but let's keep the point) it has a software-only wireless key. Of course, it comes with a Windows driver so you can turn on and off your wireless card, but in any other OS you are by yourself. After some search I found out that it could be activated in Linux by using the acerhk kernel module, solving my problems there.
However I found no solution for OS X. So, I made one myself. I have patched the VoodooPS2Keyboard kernel extension from the VoodooPS2Controller 0.98 source to perform some optional key adjustments and to include software wireless key support based on the acerhk source code. In fact this comes from a previous kernel extension I created for myself that enabled wireless on load and disabled it when unloaded. Both key adjustment and wireless key features can be easily disabled from the Info.plist file.
This little project has no special relevance, but I decided to publish it as it may help some other people with laptops similar to mine. It also served me to learn a bit about developing Mac OS X kernel extensions, and to do some debugging to Linux kernel modules.