Mailing Lists: Apple Mailing Lists

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

Re: usbdeviceopen failure - non-classic problem



Hello Joseph,

Based on the ioreg output below, it appears that your codeless kext has been matched to the device, rather than to the interface. You want to let the Apple composite driver go ahead and match at the device level, and change the codeless kext to match to the desired interface.

The criteria to match to the interface a just a bit different.

For the IOKitPersonalities dictionary, you will have something like

	<key>IOKitPersonalities</key>
	<dict>
		<key>SPR532</key>
		<dict>
			<key>CFBundleIdentifier</key>
			<string>com.apple.kernel.iokit</string>
			<key>IOClass</key>
			<string>IOservice</string>
			<key>IOProviderClass</key>
			<string>IOUSBInterface</string>
			<key>bConfigurationValue</key>
			<integer>1</integer>
			<key>bInterfaceNumber</key>
			<integer>0</integer>
			<key>bcdDevice</key>
			<integer>1287</integer>
			<key>idProduct</key>
			<integer>57347</integer>
			<key>idVendor</key>
			<integer>1254</integer>
		</dict>
	</dict>


Make sure that the values above are correct for the interface. try this out.

Rich Kubota

At 12:28 AM +0530 10/29/05, Joseph Antony wrote:
Hi,

I still cudnt figure out the source of the issue. Can someone please
confirm whether the Info.plist I am using for the kext is sufficient
for my user-land usb smart card driver to load successfully?

thx
Joe

On 10/26/05, Joseph Antony <email@hidden> wrote:
 Hi,

I have moved all the driver bundles from
/usr/libexec/SmartcardServices/drivers to another place to isolate
from any driver conflicts, and still the issue occurs. SPR532 is
CCID-like only and here are its descrptor detalis and ioreg dump
-----------descriptor-----------------
Full Speed device @ 2 (0x08100000):
............................................. Composite device:
"SPRx32 USB Smart Card Reader"
Device Descriptor
Descriptor Version Number: 0x0200
Device Class: 0 (Composite)
Device Subclass: 0
Device Protocol: 0
Device MaxPacketSize: 16
Device VendorID/ProductID: 0x04E6/0xE003 (Shuttle Technology)
Device Version Number: 0x0507
Number of Configurations: 1
Manufacturer String: 1 "SCM Microsystems Inc."
Product String: 2 "SPRx32 USB Smart Card Reader"
Serial Number String: 5 "60102571"
Configuration Descriptor: .......................................
"Vendor Class"
Length (and contents): 93
Raw Descriptor (hex) 0000: 09 02 00 5D 01 01 03 A0 32
09 04 00 00 03 FF 00
Raw Descriptor (hex) 0010: 00 04 36 21 00 01 00 01 03
00 00 00 A0 0F 00 00
Raw Descriptor (hex) 0020: 40 1F 00 00 00 01 2A 00 00
29 40 05 00 00 FC 00
Raw Descriptor (hex) 0030: 00 00 00 00 00 00 00 00 00
00 BA 00 01 00 07 01
Raw Descriptor (hex) 0040: 00 00 FF FF 00 00 03 01 07
05 01 02 40 00 00 07
Raw Descriptor (hex) 0050: 05 82 02 40 00 00 07 05 83
03 10 00 10
Number of Interfaces: 1
Configuration Value: 1
Attributes: 0xA0 (bus-powered, remote wakeup)
MaxPower: 100 ma
Interface #0 - Vendor-specific
Alternate Setting 0
Number of Endpoints 3
Interface Class: 255 (Vendor-specific)
Interface Subclass; 0 (Vendor-specific)
Interface Protocol: 0
Raw Descriptor (hex) 0000: 36 21 00 01 00 01 03 00 00
00 A0 0F 00 00 40 1F
Raw Descriptor (hex) 0010: 00 00 00 01 2A 00 00 29 40
05 00 00 FC 00 00 00
Raw Descriptor (hex) 0020: 00 00 00 00 00 00 00 00 BA
00 01 00 07 01 00 00
Raw Descriptor (hex) 0030: FF FF 00 00 03 01
Endpoint 0x01 - Bulk Output
Address: 0x01 (OUT)
Attributes: 0x02 (Bulk no synchronization data endpoint)
Max Packet Size: 64
Polling Interval: 0 ms
Endpoint 0x82 - Bulk Input
Address: 0x82 (IN)
Attributes: 0x02 (Bulk no synchronization data endpoint)
Max Packet Size: 64
Polling Interval: 0 ms
Endpoint 0x83 - Interrupt Input
Address: 0x83 (IN)
Attributes: 0x03 (Interrupt no synchronization data endpoint)
Max Packet Size: 16
Polling Interval: 16 ms


 -----------descriptor-----------------

 The ioreg dump at the time of failuire

 ---------------ioreg--------------------

    | |       |   +-o SPRx32 USB Smart Card Reader@8100000  <class
 IOUSBDevice, registered, matched, active, busy 0, retain count 10>
    | |       |     | {
    | |       |     |   "PortNum" = 1
    | |       |     |   "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" = 107862208191
| | | | "bMaxPacketSize0" = 16
| | | | "locationID" = 135266304
| | | | "idProduct" = 57347
| | | | "USB Address" = 2
| | | | "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-000a27052861"=$
    | |       |     |   }
    | |       |     |
    | |       |     +-o IOUSBDeviceUserClient  <class
 IOUSBDeviceUserClient, !registered, !matched, active, busy 0, retain
 count 5>
    | |       |         {
    | |       |         }
    | |       |

 ---------------ioreg--------------------


Thx Joe


On 10/25/05, Garth Cummings <email@hidden> wrote: > Hi Joe, > > On Oct 24, 2005, at 10:20 PM, Joseph Antony wrote: > Hi, > > I am aware of the pc/sc subsystem in the OS. I have the driver bundle > placed in /usr/libexec/smartcardservices/drivers. When i > plug-in my > device (spr532), the driver bundle loads, but is failing when it tries > to open the interface. that is my problem. I found from forums that > some other app maybe holding the handle. Hence, I went for the > "codeless kext". But, still I am facing the issue. > > Are you writing a PC/SC driver for the reader then? According to the SCM > website, the SPR532 is a CCID class compliant device. That means that > Apple's CCID driver could be the culprit. What happens if you remove your > driver, plug in the device, then run pcsctest? > > Can you post the descriptors from the device and the part of "ioreg -lw 0" > that shows your reader? That way we'll be able to see what else might be > competing for the device. > > > Under this situation, if i run "pcsctest", it fails in the > "scardestablishcontext" itself since the driver is not successfully > loaded. Hence, the deadlock for me. I sure shall post it in the cdsa > list also, if I can get a lead/solution to this. > > Let's rule out the USB side first, since you appear to be writing a PC/SC > driver. > > > Joe > > > --gc > > > > > > __________________________________________________________________ > > Garth Cummings > > Apple Developer Technical Support email@hidden > > > > > http://developer.apple.com/technicalsupport > >

 _______________________________________________
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

-- Sincerely, Rich Kubota email@hidden (408) 974-6212 _______________________________________________ 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
References: 
 >usbdeviceopen failure - non-classic problem (From: Joseph Antony <email@hidden>)
 >Re: usbdeviceopen failure - non-classic problem (From: Garth Cummings <email@hidden>)
 >Re: usbdeviceopen failure - non-classic problem (From: Joseph Antony <email@hidden>)
 >Re: usbdeviceopen failure - non-classic problem (From: Garth Cummings <email@hidden>)
 >Re: usbdeviceopen failure - non-classic problem (From: Joseph Antony <email@hidden>)
 >Re: usbdeviceopen failure - non-classic problem (From: Joseph Antony <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.