[Bug 259973] New: pcsc-acr38 version 100705 doesn't support unplug-replug without restarting pcscd
https://bugzilla.novell.com/show_bug.cgi?id=259973 Summary: pcsc-acr38 version 100705 doesn't support unplug-replug without restarting pcscd Product: openSUSE 10.3 Version: Alpha 2plus Platform: Other OS/Version: Other Status: NEW Severity: Major Priority: P5 - None Component: Other AssignedTo: bnc-team-screening@forge.provo.novell.com ReportedBy: sbrys@novell.com QAContact: qa@suse.de The driver for the acr38 card reader (the main card reader in Belgium for eID) in openSUSE 10.3 Alpha 2+ is version 100705. In testing with this version I noticed that when you unplug and replug an acr38 card reader, you need to restart the pcscd for the reader to be recognized again. I tried the latest available version (100709), and with that one it works fine. Is it possible to update the pcsc-acr38 package in openSUSE 10.3 from 100705 to 100709? -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=259973 chrubis@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|bnc-team- |sbrabec@novell.com |screening@forge.provo.novell| |.com | -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=259973 sbrys@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P5 - None |P2 - High -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=259973 sbrabec@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=259973 sbrabec@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |FIXED ------- Comment #1 from sbrabec@novell.com 2007-05-24 10:10 MST ------- Package updated in Factory and security:chipcard Build Service project. Please test when it will compile. It will appear in: http://software.opensuse.org/download/security:/chipcard/ -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=259973 sbrys@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|FIXED | ------- Comment #2 from sbrys@novell.com 2007-05-25 09:15 MST ------- Tried the new package, but it still doesn't work. 1. Because of your changes in src/driver/Makefile.am, the driver is now installed as /usr/lib/readers/ACR38UDriver.bundle/Contents/Linux/libACR38UDriver.so.0.0.0 instead of /usr/lib/readers/ACR38UDriver.bundle/Contents/Linux/ACR38UDriver. If you do that, you'll also have to modify the <CFBundleExecutable> key in /usr/lib/readers/ACR38UDriver.bundle/Contents/Linux/Info.plist 2. When I modify the Info.plist file so it points the right file name, the driver loads, but the unplug-replug problem still exists. Now that the RPM is also using the 100709 version, I'm starting to believe the problem is not caused by the driver version, but by our RPM (i.e. by our patches). If I use the new RPM, and replace the libACR38UDriver.so.0.0.0 file with the file from a manual build, the unplug-replug works. This is the output of starting "pcscd -f -d" without a card reader connected, followed by inserting the reader: * when using the RPM: --------------------8<-------------------- pcscdaemon.c:319:main() pcscd set to foreground with debug send to stderr pcscdaemon.c:533:main() pcsc-lite 1.3.3 daemon ready. hotplug_libusb.c:394:HPEstablishUSBNotifications() Driver ACR38UDriver.bundle does not support IFD_GENERATE_HOTPLUG hotplug_libusb.c:446:HPAddHotPluggable() Adding USB device: 002:021 readerfactory.c:1108:RFInitializeReader() Attempting startup of ACS ACR38U 00 00 using /usr/lib/readers/ACR38UDriver.bundle/Contents/Linux/libACR38UDriver.so.0.0.0 readerfactory.c:943:RFBindFunctions() Loading IFD Handler 2.0 readerfactory.c:1143:RFInitializeReader() Open Port 200000 Failed (usb:072f/9000:libusb:002:021) readerfactory.c:1022:RFUnloadReader() Unloading reader driver. readerfactory.c:251:RFAddReader() ACS ACR38U init failed. --------------------8<-------------------- * when using the manually built driver: --------------------8<-------------------- pcscdaemon.c:319:main() pcscd set to foreground with debug send to stderr pcscdaemon.c:533:main() pcsc-lite 1.3.3 daemon ready. hotplug_libusb.c:394:HPEstablishUSBNotifications() Driver ACR38UDriver.bundle does not support IFD_GENERATE_HOTPLUG hotplug_libusb.c:446:HPAddHotPluggable() Adding USB device: 002:022 readerfactory.c:1108:RFInitializeReader() Attempting startup of ACS ACR38U 00 00 using /usr/lib/readers/ACR38UDriver.bundle/Contents/Linux/libACR38UDriver.so.0.0.0 readerfactory.c:943:RFBindFunctions() Loading IFD Handler 2.0 Card ATR: 3B 98 13 40 0A A5 03 01 01 01 AD 13 11 --------------------8<-------------------- -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=259973 sbrabec@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |ASSIGNED ------- Comment #3 from sbrabec@novell.com 2007-05-28 03:20 MST ------- 1. Directory change was not intended. My mistake. 2. Suse has only two patches, which seems to be straightforward. I'll compile two versions with particular patch disabled to find, where is the problem. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=259973 sbrabec@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |NEEDINFO Info Provider| |sbrys@novell.com ------- Comment #4 from sbrabec@novell.com 2007-05-28 09:35 MST ------- Testing packages placed to: http://pack.suse.cz/sbrabec/bug259973/pcsc-acr38/ All three versions should fix 1. automake patch is included in all three versions - it should not affect code. Please test all three versions to check, which patch causes 2. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=259973 sbrys@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |ASSIGNED Info Provider|sbrys@novell.com | ------- Comment #5 from sbrys@novell.com 2007-05-29 02:23 MST ------- It doesn't work with the all_patches RPM, nor the no_patch1 RPM, but it works fine with the no_patch2 RPM. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=259973 sbrabec@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |NEEDINFO Info Provider| |sbrys@novell.com ------- Comment #6 from sbrabec@novell.com 2007-05-31 05:35 MST ------- ACR38_LINUX_100705_P-usb.diff removed. Submitted for Factory and build in http://software.opensuse.org/download/security:/chipcard/ Please test. If it is OK out of the box now, I'll send corrections upstream and close the bug. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=259973 sbrys@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |ASSIGNED Info Provider|sbrys@novell.com | ------- Comment #7 from sbrys@novell.com 2007-06-07 10:14 MST ------- I did new tests on Alpha4 (can't test with Alpha4+ because it doesn't create an initrd on my machine): - it doesn't work with the pcsc-acr38-1.7.9-42.2.i586.rpm RPM from http://software.opensuse.org/download/security:/chipcard/SUSE_Linux_Factory/... - it does work with the pcsc-acr38-100705_P-59 that ships with Alpha 4 (!) I then rebuilt from the 1.7.9 sources and it didn't work either. I then reapplied the /dev/bus/usb patch (see https://bugzilla.novell.com/show_bug.cgi?id=223740), and rebuilt and then it worked. So in summary: - in Alpha2+ and Alpha3 or Alpha3+ (not sure which one I tested), the /dev/bus/usb patch must NOT be applied - In Alpha 4, the /dev/bus/usb patch must be applied -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=259973 sbrabec@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |NEEDINFO Info Provider| |gregkh@suse.de ------- Comment #8 from sbrabec@novell.com 2007-06-11 06:59 MST ------- Greg, can you explain this problem? The mentioned patch is: --- src/driver/usblinux.c +++ src/driver/usblinux.c @@ -18,7 +18,7 @@ #include "config.h" -#define PCSCLITE_USB_PATH "/proc/bus/usb" +#define PCSCLITE_USB_PATH "/dev/bus/usb" int open_linux_usb_dev ( unsigned int manuID, unsigned int prodID, -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=259973 gregkh@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gregkh@novell.com Status|NEEDINFO |ASSIGNED Info Provider|gregkh@suse.de | ------- Comment #9 from gregkh@novell.com 2007-06-11 10:00 MST ------- Um, no, I don't understand, doesn't this package use libusb? If so, it should "just work". If not, then yes, that patch is probably needed to point to the proper location of the usbfs files, although why it doesn't work on older alpha releases of 10.3 seems very odd to me. It should also be needed for 10.2, right? -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=259973 ------- Comment #10 from sbrabec@novell.com 2007-06-12 01:29 MST ------- No, this module does not use libusb. Here is a code they use: #define PCSCLITE_USB_PATH "/proc/bus/usb" int open_linux_usb_dev ( unsigned int manuID, unsigned int prodID, unsigned int lunNum ) { DIR *dir, *dirB; struct dirent *entry, *entryB; char dirpath[150]; unsigned int skip = lunNum; struct usb_device_descriptor usbDescriptor; dir = opendir(PCSCLITE_USB_PATH); if (!dir) { printf("Cannot Open USB Path Directory\n"); } while ((entry = readdir(dir)) != NULL) { /* Skip anything starting with a . */ if (entry->d_name[0] == '.') continue; if (!strchr("0123456789", entry->d_name[strlen(entry->d_name) - 1])) { continue; } sprintf(dirpath, "%s/%s", PCSCLITE_USB_PATH, entry->d_name); dirB = opendir(dirpath); if (!dirB) { printf("Path does not exist - do you have USB ?\n"); } while ((entryB = readdir(dirB)) != NULL) { char filename[PATH_MAX + 1]; int fd, ret; /* Skip anything starting with a . */ if (entryB->d_name[0] == '.') continue; sprintf(filename, "%s/%s", dirpath, entryB->d_name); #ifdef PCSC_DEBUG printf("filename = %s\n",filename); #endif fd = open(filename, O_RDWR); if (fd < 0) { #ifdef PCSC_DEBUG printf("open failed = %d\n",fd); #endif continue; } ret = read(fd, (void *)&usbDescriptor, sizeof(usbDescriptor)); if (ret < 0) { #ifdef PCSC_DEBUG printf("read failed = %d\n",ret); #endif continue; } #ifdef PCSC_DEBUG printf("idVendor = 0x%02X, idProduct = 0x%02X\n", usbDescriptor.idVendor,usbDescriptor.idProduct); #endif /* Device is found and we don't know about it */ if ( usbDescriptor.idVendor == manuID && usbDescriptor.idProduct == prodID ) { /* Since Version: 1.7.9 - Add multiple readers support */ if (skip) { skip--; continue; } /* Since Version: 1.7.9 - Add multiple readers support */ closedir(dir); closedir(dirB); return fd; } else { close(fd); } } } closedir(dir); closedir(dirB); return -1; } -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=259973#c11
--- Comment #11 from Simon Brys
https://bugzilla.novell.com/show_bug.cgi?id=259973#c12
Stanislav Brabec
participants (1)
-
bugzilla_noreply@novell.com