| |||
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] |
|
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
| Home | Archives | FAQ | Terms/Conditions | Contact | RSS | Lists | About |
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.