> On 26 Feb 2015, at 04:00, Rick Mann <[email protected]> wrote: > > I'm trying to help out an open source project called BBBlfs > (https://github.com/ungureanuvladvictor/BBBlfs). Their code allows the user > to write a BeagleBone Black's (popular single-board computer) on-board flash > storage from Linux (and hopefully OS X). > > Unfortunately, because the BBB shows up as a CDC device, the Apple CDC driver > claims it. They need a codeless KEXT to prevent that.
Are you sure about that? Does the device only present itself as a CDC device or does it have a number of interfaces one of which actually really is a CDC device but also contain other custom endpoints? That’s fairly common as the CDC device piece is usually hooked up to send serial data to and from the board, but there are other interfaces on there as well to do other things. If so then the CDC driver will claim the CDC device endpoints only and present them as a normal serial device, but won’t claim any of the other endpoints which aren’t related to CDC, leaving other processes free to use them. This is usually what you want, you want the CDC device to be a supported serial device and the custom endpoints to be available for their custom purposes. One common issue with this has nothing to do with the CDC drivers, but has to do with code which uses libusb, or libusb-derived code, to use the other endpoints, the non-CDC ones, on the same device. The libusb code tries to open the device and read it to find the other endpoints. That doesn’t work because the device itself has already been opened by the CDC driver, exclusively, so that code to re-open it fails. However you don’t need to open the actual device to find the endpoints on OSX, you can discover them with IOKit, and they are perfectly usable. Is that the case here? > > Problem is, I can't find any good examples of how to do this. I see here > (https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KEXTConcept/KEXTConceptAnatomy/kext_anatomy.html#//apple_ref/doc/uid/20002364-SW8) > an example of how to make a device match a different driver, but I don't > want it to match any driver (do I?). > > I know this is a frequent question (or has been, in the past). Sorry to ask > it again, but it's just not clear to me how to proceed. > > Thanks! > > > Device VendorID/ProductID: 0x0451/0x6141 (Texas Instruments) > > > > -- > Rick Mann > [email protected] > > > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Usb mailing list ([email protected]) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/usb/rols%40rols.org > > This email sent to [email protected] _______________________________________________ Do not post admin requests to the list. They will be ignored. Usb mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/usb/archive%40mail-archive.com This email sent to [email protected]
