Mailing Lists: Apple Mailing Lists

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

usb custom class driver not loading:



I am developing a custom class driver for a vendor specific usb to parallel adapter which connects to HP DeskJet 840C printer. I didn't see any relevant information on developing a USB custom class drivers and backends, i went through mailing lists and source code in /Developers/Examples/Printing/Printers/Plugins/USBGenericPrinterClass which helped me a lot. 
I developed a custom backend which detects the HP DeskJet 840C printer and prints DeviceID string to stdout as the normal usb backend does. 
I also had a codeless kext which has the below info.plist information which tells the OS where the custom class driver is present.
 
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>MCS7705</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.moschip.driver.MCS7705</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>IOKitPersonalities</key>
<dict>
<key>MCS7705</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleUSBMergeNub</string>
<key>IOClass</key>
<string>AppleUSBMergeNub</string>
<key>IOProviderClass</key>
<string>IOUSBInterface</string>
<key>IOProviderMergeProperties</key>
<dict>
<key>USB Printing Class</key>
<string>/Library/Printers/USBMoschipPrintingClass.plugin</string>
</dict>
<key>bConfigurationValue</key>
<integer>1</integer>
<key>bInterfaceNumber</key>
<integer>0</integer>
<key>idProduct</key>
<integer>30469</integer>
<key>idVendor</key>
<integer>38672</integer>
</dict>
</dict>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.driver.AppleUSBMergeNub</key>
<string>1.8.3b1</string>
<key>com.apple.iokit.IOUSBFamily</key>
<string>1.8</string>
</dict>
 
 
 
The problem is that after connecting the printer to the Mac through our vendor specific usb parallel adapter the kext(in /System/Library/Extensions) loads but the custom class driver USBMoschipPrintingClass.plugin is not loaded.
when you issue "ioreg -l" in terminal we see

 
IOUSBVendorSpecificDevice@23100000 <class IOUSBDevice, registered, matched, active, busy 0, retain count 8>
| | | | {
| | | | "PortNum" = 1
| | | | "Device Speed" = 1
| | | | "iSerialNumber" = 0
| | | | "bNumConfigurations" = 1
| | | | "IOUserClientClass" = "IOUSBDeviceUserClient"
| | | | "bDeviceClass" = 255
| | | | "iManufacturer" = 0
| | | | "IOCFPlugInTypes" = {"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"}
| | | | "bcdDevice" = 256
| | | | "bDeviceSubClass" = 0
| | | | "iProduct" = 0
| | | | "sessionID" = 2524760562100
| | | | "bMaxPacketSize0" = 8
| | | | "locationID" = 588251136
| | | | "Bus Power Available" = 250
| | | | "idProduct" = 30469
| | | | "USB Address" = 2
| | | | "bDeviceProtocol" = 255
| | | | "idVendor" = 38672
| | | | }
| | | |
| | | +-o IOUSBUserClientInit <class IOUSBUserClientInit, !registered, !matched, active, busy 0, retain count 4>
| | | | {
| | | | "IOProbeScore" = 9000
| | | | "IOClass" = "IOUSBUserClientInit"
| | | | "IOProviderMergeProperties" = {"IOCFPlugInTypes"={"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"},"IOUserClientClass"="IOUSBDeviceUserClie$
| | | | "IOProviderClass" = "IOUSBDevice"
| | | | "CFBundleIdentifier" = "com.apple.iokit.IOUSBUserClient"
| | | | "IOMatchCategory" = "IOUSBUserClientInit"
| | | | }
| | | |
| | | +-o IOUSBInterface@0 <class IOUSBInterface, registered, matched, active, busy 0, retain count 5>
| | | | {
| | | | "bcdDevice" = 256
| | | | "idProduct" = 30469
| | | | "USB Printing Class" = "/Library/Printers/USBMoschipPrintingClass.plugin"
| | | | "iInterface" = 0
| | | | "bInterfaceSubClass" = 0
| | | | "IOCFPlugInTypes" = {"2d9786c6-9ef3-11d4-ad51-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"}
| | | | "IOUserClientClass" = "IOUSBInterfaceUserClient"
| | | | "bInterfaceProtocol" = 255
| | | | "bConfigurationValue" = 1
| | | | "bInterfaceNumber" = 0
| | | | "idVendor" = 38672
| | | | "bInterfaceClass" = 255
| | | | "locationID" = 588251136
| | | | "bNumEndpoints" = 3
| | | | "bAlternateSetting" = 0
| | | | }
| | | |
| | | +-o IOUSBUserClientInit <class IOUSBUserClientInit, !registered, !matched, active, busy 0, retain count 4>
| | | {
| | | "IOProbeScore" = 9000
| | | "IOClass" = "IOUSBUserClientInit"
| | | "IOProviderMergeProperties" = {"IOCFPlugInTypes"={"2d9786c6-9ef3-11d4-ad51-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"},"IOUserClientClass"="IOUSBInterfaceUse$
| | | "IOProviderClass" = "IOUSBInterface"
| | | "CFBundleIdentifier" = "com.apple.iokit.IOUSBUserClient"
| | | "IOMatchCategory" = "IOUSBUserClientInit"
| | | }
 
I was unable to understand where the problem is . If anyone has any clue of why the custom class driver is not loading please respond.
 
Thanks
Vamsi
 _______________________________________________
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



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.