Just out of curiosity I opened Info.plist (in /usr/lib/pcsc/drivers/ifd-acsccid.bundle/Contents/) and noticed that my device wasn't listed. So I went ahead and added my info in the ifdVendorID (0x072F), ifdProductID (0x223B), and ifdFriendlyName (ACS ACR1252U Dual PICC-SAM Reader) arrays, and ran pcscd -fd.
It's now working! If I run pcsc-scan it will show:
Code: Select all
root@raspberrypi:/usr/lib/pcsc/drivers/ifd-acsccid.bundle/Contents# pcsc_scan
PC/SC device scanner
V 1.4.20 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.8.3
Using reader plug'n play mechanism
Scanning present readers...
0: ACS ACR1252U Dual PICC-SAM Reader [ACR1252 Dual Reader PICC] 00 00
Sat Aug 1 18:29:02 2015
Reader 0: ACS ACR1252U Dual PICC-SAM Reader [ACR1252 Dual Reader PICC] 00 00
Card state: Card removed,
I can scan an NFC card and it will display some of it's info:
Code: Select all
Sat Aug 1 18:31:32 2015
Reader 0: ACS ACR1252U Dual PICC-SAM Reader [ACR1252 Dual Reader PICC] 00 00
Card state: Card inserted,
ATR: 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 03 00 00 00 00 68
ATR: 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 03 00 00 00 00 68
+ TS = 3B --> Direct Convention
+ T0 = 8F, Y(1): 1000, K: 15 (historical bytes)
TD(1) = 80 --> Y(i+1) = 1000, Protocol T = 0
-----
TD(2) = 01 --> Y(i+1) = 0000, Protocol T = 1
-----
+ Historical bytes: 80 4F 0C A0 00 00 03 06 03 00 03 00 00 00 00
Category indicator byte: 80 (compact TLV data object)
Tag: 4, len: F (initial access data)
Initial access data: 0C A0 00 00 03 06 03 00 03 00 00 00 00
+ TCK = 68 (correct checksum)
Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 03 00 00 00 00 68
3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 03 00 00 00 00 ..
Mifare Ultralight (as per PCSC std part3)
3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 03 00 00 00 00 68
3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 .. .. 00 00 00 00 ..
RFID - ISO 14443 Type A Part 3 (as per PCSC std part3)
3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 03 00 00 00 00 68
RFID - ISO 14443 Type A - NXP Mifare Ultralight or UltralightC
Sat Aug 1 18:31:35 2015
Reader 0: ACS ACR1252U Dual PICC-SAM Reader [ACR1252 Dual Reader PICC] 00 00
Card state: Card removed,
This device in particular has 1 USB configuration with 2 interfaces (PICC and SAM). Although the one I need is the PICC interface, I also noticed that when trying to configure the SAM interface it fails because the USB device (/dev/bus/usb/001/007) is already in use. Just out of curiosity, how would one select one or the other?
If you see towards the end there's an error message:
Code: Select all
root@raspberrypi:/home/pi# pcscd -fd
00000000 debuglog.c:269:DebugLogSetLevel() debug level=debug
00002264 configfile.l:245:DBGetReaderListDir() Parsing conf directory: /etc/reader.conf.d
00001151 configfile.l:298:DBGetReaderList() Parsing conf file: /etc/reader.conf.d/libccidtwin
00001476 configfile.l:257:DBGetReaderListDir() Skipping non regular file: .
00000775 configfile.l:257:DBGetReaderListDir() Skipping non regular file: ..
00002169 pcscdaemon.c:518:main() pcsc-lite 1.8.4 daemon ready.
00017557 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001
00002782 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001
00002512 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x0424, PID: 0x9514, path: /dev/bus/usb/001/002
00002641 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x0424, PID: 0xEC00, path: /dev/bus/usb/001/003
00002503 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x0424, PID: 0x9514, path: /dev/bus/usb/001/002
00002785 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x072F, PID: 0x223B, path: /dev/bus/usb/001/007
00001343 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x072F, PID: 0x223B, path: /dev/bus/usb/001/007
00001074 hotplug_libudev.c:311:HPAddDevice() Adding USB device: ACS ACR1252U Dual PICC-SAM Reader
00001378 readerfactory.c:941:RFInitializeReader() Attempting startup of ACS ACR1252U Dual PICC-SAM Reader [ACR1252 Dual Reader PICC] 00 00 using /usr/lib/pcsc/drivers/i
00002743 readerfactory.c:831:RFBindFunctions() Loading IFD Handler 3.0
00001430 ifdhandler.c:2331:init_driver() Driver version: 1.0.3
00003227 ifdhandler.c:2344:init_driver() LogLevel: 0x0003
00002662 ifdhandler.c:2364:init_driver() DriverOptions: 0x00C0
00002594 ifdhandler.c:2391:init_driver() ACR38CardVoltage: 0
00002842 ifdhandler.c:2398:init_driver() ACR38CardType: 0
00000787 ifdhandler.c:94:IFDHCreateChannelByName() lun: 0, device: usb:072f/223b:libudev:0:/dev/bus/usb/001/007
00005476 ccid_usb.c:309:OpenUSBByName() Manufacturer: Advanced Card Systems Ltd.
00002648 ccid_usb.c:319:OpenUSBByName() ProductString: ACS CCID driver
00002790 ccid_usb.c:325:OpenUSBByName() Copyright: This driver is protected by terms of the GNU Lesser General Public License version 2.1, or (at your option) any later
00006021 ccid_usb.c:582:OpenUSBByName() Found Vendor/Product: 072F/223B (ACS ACR1252U Dual PICC-SAM Reader)
00000986 ccid_usb.c:584:OpenUSBByName() Using USB bus/device: 001/007
00001684 ccid_usb.c:1280:get_data_rates() IFD does not support GET_DATA_RATES request: Broken pipe
00001604 ifdhandler.c:220:IFDHCreateChannelByName() dwFeatures: 0x00040040
00000984 ifdhandler.c:221:IFDHCreateChannelByName() wLcdLayout: 0x0000
00001708 ifdhandler.c:222:IFDHCreateChannelByName() bPINSupport: 0x00
00000885 ifdhandler.c:223:IFDHCreateChannelByName() dwMaxCCIDMessageLength: 522
00000879 ifdhandler.c:224:IFDHCreateChannelByName() dwMaxIFSD: 254
00000887 ifdhandler.c:225:IFDHCreateChannelByName() dwDefaultClock: 4000
00000886 ifdhandler.c:226:IFDHCreateChannelByName() dwMaxDataRate: 250000
00000882 ifdhandler.c:227:IFDHCreateChannelByName() bMaxSlotIndex: 0
00001145 ifdhandler.c:228:IFDHCreateChannelByName() bCurrentSlotIndex: 0
00000936 ifdhandler.c:229:IFDHCreateChannelByName() bInterfaceProtocol: 0x00
00000700 ifdhandler.c:230:IFDHCreateChannelByName() bNumEndpoints: 3
00000888 ifdhandler.c:231:IFDHCreateChannelByName() bVoltageSupport: 0x07
00001136 ifdhandler.c:536:IFDHGetCapabilities() tag: 0xFB3, usb:072f/223b:libudev:0:/dev/bus/usb/001/007 (lun: 0)
00000723 readerfactory.c:294:RFAddReader() Using the pcscd polling thread
00002239 ifdhandler.c:536:IFDHGetCapabilities() tag: 0xFAE, usb:072f/223b:libudev:0:/dev/bus/usb/001/007 (lun: 0)
00000793 ifdhandler.c:629:IFDHGetCapabilities() Reader supports 1 slot(s)
00003945 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x072F, PID: 0x223B, path: /dev/bus/usb/001/007
00001346 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x072F, PID: 0x223B, path: /dev/bus/usb/001/007
00001351 hotplug_libudev.c:311:HPAddDevice() Adding USB device: ACS ACR1252U Dual PICC-SAM Reader
00002486 ifdhandler.c:536:IFDHGetCapabilities() tag: 0xFAF, usb:072f/223b:libudev:0:/dev/bus/usb/001/007 (lun: 0)
00001062 readerfactory.c:589:RFSetReaderName() Support 16 simultaneous readers
00000964 ifdhandler.c:536:IFDHGetCapabilities() tag: 0xFAD, usb:072f/223b:libudev:0:/dev/bus/usb/001/007 (lun: 0)
00001127 readerfactory.c:241:RFAddReader() Driver is thread safe
00000910 readerfactory.c:941:RFInitializeReader() Attempting startup of ACS ACR1252U Dual PICC-SAM Reader [ACR1252 Dual Reader SAM] 01 00 using /usr/lib/pcsc/drivers/if
00000735 readerfactory.c:745:RFLoadReader() Reusing already loaded driver for /usr/lib/pcsc/drivers/ifd-acsccid.bundle/Contents/Linux/libacsccid.so
00001202 readerfactory.c:831:RFBindFunctions() Loading IFD Handler 3.0
00001225 ifdhandler.c:94:IFDHCreateChannelByName() lun: 10000, device: usb:072f/223b:libudev:1:/dev/bus/usb/001/007
00004195 ccid_usb.c:309:OpenUSBByName() Manufacturer: Advanced Card Systems Ltd.
00002837 ccid_usb.c:319:OpenUSBByName() ProductString: ACS CCID driver
00002707 ccid_usb.c:325:OpenUSBByName() Copyright: This driver is protected by terms of the GNU Lesser General Public License version 2.1, or (at your option) any later
00005583 ccid_usb.c:499:OpenUSBByName() USB device 001/007 already in use. Checking next one.
00193432 ifdhandler.c:118:IFDHCreateChannelByName() failed
00000898 readerfactory.c:972:RFInitializeReader() Open Port 0x200001 Failed (usb:072f/223b:libudev:1:/dev/bus/usb/001/007)
00000950 readerfactory.c:279:RFAddReader() ACS ACR1252U Dual PICC-SAM Reader [ACR1252 Dual Reader SAM] init failed.
00000970 readerfactory.c:992:RFUnInitializeReader() Attempting shutdown of ACS ACR1252U Dual PICC-SAM Reader [ACR1252 Dual Reader SAM] 01 00.
00002736 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x0424, PID: 0x9514, path: /dev/bus/usb/001/002
Thanks again!