Mailing Lists: Apple Mailing Lists

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

usbdeviceopen failure - non-classic problem



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.