On Mar 18, 2011, at 2:31 PM, Ludovic Rousseau wrote:
2011/3/18 Martin Preuss <[email protected]>:
Hi,
On Freitag 18 März 2011, Ludovic Rousseau wrote:
[...]
Hotplug is the business of pcsc-lite, not the reader driver.
Or you have a special need?
[...]
You driver should not depend on the way pcsc-lite is configured.
[...]
Yes, with recent versions of pcsc-lite it doesn't. But the version
shipped
with e.g. Ubuntu 9.04 only works if the driver is able to handle a
device name
using the libHAL scheme. It doesn't try again with the libusb path
(which,
granted, later versions do).
[...]
Your driver will be called using IFDHCreateChannelByName() [1] (if
available, or IFDHCreateChannel()) and the driver will parse the
name
passed by pcscd. As documented [1] if your driver does not undersand
part of the naming scheme it should just ignore the unsupported
part.
[...]
As a driver maintainer I know that of course ;-) but that only
holds for more
recent versions of pcsc-lite (as described above). But
unfortunately we also
have to support Linux distributions even as old as Ubuntu 9.04 ;-)
The constant changing of hotplugging in Linux in fact *does*
influence the
driver since it has to implementent the predominant naming scheme
used by
pcsc-lite.
I really appreciate that current versions of pcsc-lite try again
initializing
the driver with a different naming scheme (e.g. "libusb:") if the
driver
doesn't support the "libhal:" name, but that's something you added
later.
Yes. I added that because some drivers do not follow the specification
(or the specification is not clear enough).
The driver is called with a name like "usb:08e6/3437:libusb:001:042"
or "usb:08e6/3437:libhal:/org/freedesktop/Hal/devices/
usb_device_8e6_3437_noserial_if0"
or something else.
As written in the specification:
" If the driver does not understand the :libusb: or :libhal: scheme or
if a new scheme is used, the driver should ignore the part it does not
understand instead of failing. "
So if the driver is called with "usb:08e6/3437:foobar:xyz:123" the
driver should just ignore the part it can't parse and just use
"usb:08e6/3437" or even nothing at all. But the driver should not fail
just because it does not know the naming scheme.
Why should the CCID driver be responsible for knowing about all the
different
USB access methods? How about if pcscd provided an abstraction that
would
give the CCID driver access to do basic I/O to USB and let pcscd
manage whatever
the current USB access scheme is at the moment?
mike
_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle