usbdeviceopen failure - non-classic problem
- Subject: usbdeviceopen failure - non-classic problem
- From: Joseph Antony <email@hidden>
- Date: Mon, 24 Oct 2005 18:34:09 +0530
- Delivered-to: email@hidden
- Delivered-to: email@hidden
- Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=K5czq2lhFr7BE5uiOqWUjm6MlHRZ8h2JFiJvYcpKdx0LQ/iJUHtsyF7M6fT9Yd7magyr4gHD+3ZeG6NJEOhOb6/+l8kNRbzctwzBU0OeHPSzUfsaHxC6T9a4CAacZAf6QAnLiwYuV1z3Wpyass/7t1d0/z+DeVonNaitmE6gXkc=
Hi,
I had posted this issue in darwin-userlevel. I was referred here. I
searched the archives, but cudnt find a solution to this though I
found few mails referring to a similar situation.
http://lists.apple.com/archives/Darwin-userlevel/2005/Oct/msg00020.html
To reiterate and update, I am writing a CFPlugin bundle for spr532
(SCM microsystems) usb smart card reader. When I tried to open the
interface (USBInterfaceOpen), I am getting a a 0xE00002c5 ( exclusive
access and device already open) error.
One of my guess was maybe classic is holding the handle of the reader
since it has a device class value of 0 (composite device) and its
interface class/subclass/protocol is
255(vendor-specific)/0(vendor-specific)/0 . But, Classic was not
running in my machine.
Another lead I got was to create a "codeless kext" to override anyone
holding the device's handle. So, I created a "codeless kext" and
loaded it (on reboot). I still am getting the same error.
I am at a dead-end here. Any leads / guidance will be of great help to me.
The ioreg output when the device is connected and the driver the
attempts to open it is as below
----------------ioreg-----------------------
| | | |
| | | +-o SPRx32 USB Smart Card Reader@8140000 <class
IOUSBDevice, registered, matched, active, busy 0, retain count 10>
| | | | {
| | | | "PortNum" = 4
| | | | "IOUserClientClass" = "IOUSBDeviceUserClient"
| | | | "Device Speed" = 1
| | | | "iSerialNumber" = 5
| | | | "Bus Power Available" = 250
| | | | "bDeviceClass" = 0
| | | | "USB Product Name" = "SPRx32 USB Smart Card Reader"
| | | | "bNumConfigurations" = 1
| | | | "USB Serial Number" = "60102571"
| | | | "USB Vendor Name" = "SCM Microsystems Inc."
| | | | "iManufacturer" = 1
| | | | "bcdDevice" = 1287
| | | | "bDeviceSubClass" = 0
| | | | "IOCFPlugInTypes" =
{"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"}
| | | | "iProduct" = 2
| | | | "sessionID" = 120822381699
| | | | "bMaxPacketSize0" = 16
| | | | "locationID" = 135528448
| | | | "idProduct" = 57347
| | | | "USB Address" = 3
| | | | "bDeviceProtocol" = 0
| | | | "idVendor" = 1254
| | | | }
| | | |
| | | +-o IOService <class IOService, !registered,
!matched, active, busy 0, retain count 4>
| | | | {
| | | | "idProduct" = 57347
| | | | "bConfigurationValue" = 1
| | | | "IOProviderMergeProperties" =
{"ClassicMustNotSeize"=Yes}
| | | | "CFBundleIdentifier" = "com.scmmicro.kext.kextscr33x"
| | | | "IOClass" = "IOService"
| | | | "bDeviceClass" = 0
| | | | "bInterfaceProtocol" = 0
| | | | "IOKitDebug" = 65535
| | | | "IOProbeScore" = 109000
| | | | "bDeviceSubClass" = 0
| | | | "IOMatchCategory" = "IODefaultMatchCategory"
| | | | "bInterfaceNumber" = 0
| | | | "bInterfaceSubClass" = 0
| | | | "idVendor" = 1254
| | | | "IOProviderClass" = "IOUSBDevice"
| | | | "bcdDevice" = 1287
| | | | }
| | | |
| | | +-o IOUSBUserClientInit <class
IOUSBUserClientInit, !registered, !matched, active, busy 0, retain
count 4>
| | | | {
| | | | "IOMatchCategory" = "IOUSBUserClientInit"
| | | | "IOProbeScore" = 9000
| | | | "IOClass" = "IOUSBUserClientInit"
| | | | "IOProviderClass" = "IOUSBDevice"
| | | | "CFBundleIdentifier" =
"com.apple.iokit.IOUSBUserClient"
| | | | "IOProviderMergeProperties" =
{"IOUserClientClass"="IOUSBDeviceUserClient","IOCFPlugInTypes"={"9dc7b780-9ec0-11d4-a54f-00$
| | | | }
| | | |
| | | +-o IOUSBDeviceUserClient <class
IOUSBDeviceUserClient, !registered, !matched, active, busy 0, retain
count 5>
| | | {
| | | }
| | |
----------------ioreg-----------------------
The system.log file messages are
--------------------system.log -----------------
Oct 24 18:11:52 admins-power-mac-g4-agp-graphics kernel[0]: SPRx32 USB
Smart Card Reader: stalling for module
Oct 24 18:11:52 admins-power-mac-g4-agp-graphics kernel[0]: ---KEXT
has loaded!---
Oct 24 18:11:52 admins-power-mac-g4-agp-graphics kernel[0]: OHCI Root
Hub Simulation: family specific matching fails
Oct 24 18:11:52 admins-power-mac-g4-agp-graphics kernel[0]: USB Hub:
family specific matching fails
Oct 24 18:11:52 admins-power-mac-g4-agp-graphics kernel[0]: OHCI Root
Hub Simulation: family specific matching fails
Oct 24 18:11:52 admins-power-mac-g4-agp-graphics kernel[0]: Hub in
Apple Extended USB Keyboard: family specific matching fails
Oct 24 18:11:52 admins-power-mac-g4-agp-graphics kernel[0]: Apple
Extended USB Keyboard: family specific matching fails
Oct 24 18:11:52 admins-power-mac-g4-agp-graphics kernel[0]: Apple
Optical USB Mouse: family specific matching fails
Oct 24 18:11:52 admins-power-mac-g4-agp-graphics kernel[0]: Matching
service count = 1
Oct 24 18:11:52 admins-power-mac-g4-agp-graphics kernel[0]:
IOService::probe(SPRx32 USB Smart Card Reader)
Oct 24 18:11:52 admins-power-mac-g4-agp-graphics kernel[0]:
IOService::start(SPRx32 USB Smart Card Reader) <1>
--------------------system.log -----------------
The kext's Info.plist is as below
---------------------info.plist-----------------
<?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>kextscr33x</string>
<key>CFBundleIdentifier</key>
<string>com.scmmicro.kext.kextscr33x</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.0d1</string>
<key>IOKitPersonalities</key>
<dict>
<key>TestSeizeOrUnseizeAnInterface</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.scmmicro.kext.kextscr33x</string>
<key>IOClass</key>
<string>IOService</string>
<key>IOKitDebug</key>
<integer>65535</integer>
<key>IOProbeScore</key>
<integer>9000</integer>
<key>IOProviderClass</key>
<string>IOUSBDevice</string>
<key>IOProviderMergeProperties</key>
<dict>
<key>ClassicMustNotSeize</key>
<true/>
</dict>
<key>bConfigurationValue</key>
<integer>1</integer>
<key>bDeviceClass</key>
<integer>0</integer>
<key>bDeviceSubClass</key>
<integer>0</integer>
<key>bInterfaceNumber</key>
<integer>0</integer>
<key>bInterfaceProtocol</key>
<integer>0</integer>
<key>bInterfaceSubClass</key>
<integer>0</integer>
<key>bcdDevice</key>
<integer>1287</integer>
<key>idProduct</key>
<integer>57347</integer>
<key>idVendor</key>
<integer>1254</integer>
</dict>
</dict>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kernel.iokit</key>
<string>7.9.9</string>
<key>com.apple.kernel.mach</key>
<string>7.9.9</string>
</dict>
<key>OSBundleRequired</key>
<string>Root</string>
</dict>
</plist>
--------------------info.plist----------------------
My Machine Info : G4/AGP/400Mhz/10.4.2/XCode 2.1/
Thx,
Joe
_______________________________________________
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.