Re: IOAudioDevice Subclass KEXT not calling initHardware
site_archiver@lists.apple.com Delivered-To: darwin-kernel@lists.apple.com On Nov 13, 2006, at 6:28 PM, Jason Williams wrote: -- Jeff Moore Core Audio Apple _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-kernel mailing list (Darwin-kernel@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-kernel/site_archiver%40lists.a... First off, the PhantomAudioDriver sample code was obsoleted a while back with the introduction of the AudioReflectorDriver in the CoreAudio SDK. You can find it on an OS X system in /Developer/ Examples/CoreAudio/HAL/AudioReflectorDriver. Also, if you have audio specific questions, as opposed to general kernel development questions, you should check out the CoreAudio-API mailing list on lists.apple.com. All that said, your current problem sounds to me like your driver isn't matching anything and so none of your kext's classes are being instantiated. Your matching information should be in the "IOKitPersonalities" dictionary of your kext's info.plist. Chances are that you lost that info in the shuffle from the original project to your freshly built project. As such, you should check over all the data in the info.plist file just to be sure it got transferred over correctly. Now I posted earlier this month about building the example project for a dummy IOAudioDevice. I got it to build, so I've gone on to the next step which is to build my own modified version. I basically copied most of the code from PhantomAudioDriver, which is what builds and loads, and put in some simple stuff for an example AudioEngine, and built it. I've gotten it as far as building perfectly, so it seems, and loading it into the kernel with kextload. Ran kextload with -t and all looks well. kextstat even shows the driver loaded. Problem is, I put some debug log lines in initHardware in the IOAudioDevice subclass, and nothing is coming out. Nor does my device show up in the audio output pane in system prefs. The difference is that I started with a clean Xcode Kernel EXT project for the new version so I could understand the settings that went into building a KEXT. According to the docs, when the kext is loaded, the start() function on the super class calls initHardware on the subclass. But it seems to not be doing so. Any thoughts/ Ideas/Suggestions on where to look? I'm guessing it's a setting or a something I am just missing, but I made sure I had everything set right like it is on the PhantomAudioDriver, but to no avail. This email sent to site_archiver@lists.apple.com
participants (1)
-
Jeff Moore