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. So why does your driver fail with the libhal: naming scheme but succeed with the libusb: one? Bye -- Dr. Ludovic Rousseau _______________________________________________ Muscle mailing list [email protected] http://lists.drizzle.com/mailman/listinfo/muscle
