Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Codeless Kext and USB HID



Thanks Fernando, this seemed to do the trick. I'm not sure why it
didn't work when I used the VendorSpecific Example, as that has the
values you mentioned, but.. I'll just assume I screwed something up
along the way.

Cheers,
Steve

On Mon, 24 Jan 2005 21:45:12 -0700, Fernando Urbina <email@hidden> wrote:
> On Jan 24, 2005, at 4:16 PM, Steve White wrote:
> 
> >  The peculiar problem is, the kext works on one machine - a PowerBook
> > G4 running 10.3.6, but do not work on another identical PowerBook nor
> > on a Sawtooth G4 running 10.3.7.
> >
> <snip>
> 
> >     IOKitPersonalities = {
> >         "MCC-PMD-1024LS" = {
> >             CFBundleIdentifier =
> > "edu.vanderbilt.fel.mendenhall.USB_Interface_Grabber";
> >             IOClass = "USB_Interface_Grabber";
> >             IOKitDebug = 0;
> >             IOProviderClass = IOUSBInterface;
> >             bConfigurationValue = 1;
> >             bInterfaceNumber = 0;
> >             idProduct = 118;
> >             idVendor = 2523;
> >         };
> >
> <snip>
> 
> My educated guess on why it works in some machines and not some others
> is due to the fact that your "codeless" kext is looking for a CFBundle
> of "edu.vanderbilt.fel.mendenhall.USB_Interface_Grabber" and that
> module (wherever it comes from) is not present in one machine and not
> the others.
> 
> The idea behind using a codeless kext in this case is to prevent the
> IOUSBHIDDriver from matching to the interface.  The HID driver is
> "class" driver, so it matches at a relatively lower probe score (see
> http://developer.apple.com/qa/qa2001/qa1076.html for matching details).
>   In order to prevent the HID driver from matching we need a kext that
> will (1) match with a higher probe score, and (2) return true from the
> start() method (so the kext is loaded).
> 
> The easiest way to achieve this is to have a personality that specifies
> a vendor specific matching to your interface (or to your device if
> you're writing a device driver) and have it use IOKit as the "driver"
> for it.  The way to do this is to specify:
> 
> CFBundleIdentifier = " com.apple.kernel.iokit
> IOClass = "IOService"
> 
> I trust that implementing it with those changes will yield the desired
> results.
> 
> HTH,
> --
> Fernando Urbina
> USB Technology Team
> Apple Computer, Inc.
> 
>  _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Usb mailing list      (email@hidden)
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/usb/email@hidden
> 
> This email sent to email@hidden
>
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Usb mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/usb/email@hidden

This email sent to email@hidden

References: 
 >Codeless Kext and USB HID (From: Steve White <email@hidden>)
 >Re: Codeless Kext and USB HID (From: Fernando Urbina <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.