temporaryなめも帳

だらだらと備忘録とか。誰かの為になることをねがって。

BBBでACR122Uを動かしたい

BBBでACR122U(NFCカードリーダ)つないで、pcsc_scanするまでのメモ

pcscdをインストールする

$ sudo apt-get install pcscd

動作確認(NG)

$ sudo pcscd -d -a -f
00000000 pcscdaemon.c:240:main() pcscd set to foreground with debug send to stdout
00002456 configfile.l:254:DBGetReaderListDir() Parsing conf directory: /etc/reader.conf.d
00001351 configfile.l:307:DBGetReaderList() Parsing conf file: /etc/reader.conf.d/libccidtwin
00001649 configfile.l:266:DBGetReaderListDir() Skipping non regular file: .
00000855 configfile.l:266:DBGetReaderListDir() Skipping non regular file: ..
00002992 pcscdaemon.c:545:main() pcsc-lite 1.8.10 daemon ready.
00022437 hotplug_libudev.c:269:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001
00003044 hotplug_libudev.c:269:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001
00002742 hotplug_libudev.c:269:get_driver() Looking for a driver for VID: 0x1A40, PID: 0x0101, path: /dev/bus/usb/001/002
00003023 hotplug_libudev.c:269:get_driver() Looking for a driver for VID: 0x0411, PID: 0x01A2, path: /dev/bus/usb/001/003
00002633 hotplug_libudev.c:269:get_driver() Looking for a driver for VID: 0x1A40, PID: 0x0101, path: /dev/bus/usb/001/002
00002614 hotplug_libudev.c:269:get_driver() Looking for a driver for VID: 0x072F, PID: 0x2200, path: /dev/bus/usb/001/004
00001405 hotplug_libudev.c:269:get_driver() Looking for a driver for VID: 0x072F, PID: 0x2200, path: /dev/bus/usb/001/004
00001227 hotplug_libudev.c:321:HPAddDevice() Adding USB device: ACS ACR122U PICC Interface
00001368 readerfactory.c:989:RFInitializeReader() Attempting startup of ACS ACR122U PICC Interface 00 00 using /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so
00003569 readerfactory.c:874:RFBindFunctions() Loading IFD Handler 3.0
00001718 ifdhandler.c:1910:init_driver() Driver version: 1.4.15
00010156 ifdhandler.c:1927:init_driver() LogLevel: 0x0003
00001240 ifdhandler.c:1938:init_driver() DriverOptions: 0x0004
00003629 ifdhandler.c:83:CreateChannelByNameOrChannel() Lun: 0, device: usb:072f/2200:libudev:0:/dev/bus/usb/001/004
00001643 ccid_usb.c:281:OpenUSBByName() Using: /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist
00009564 ccid_usb.c:299:OpenUSBByName() ifdManufacturerString: Ludovic Rousseau (ludovic.rousseau@free.fr)
00000993 ccid_usb.c:300:OpenUSBByName() ifdProductString: Generic CCID driver
00001749 ccid_usb.c:301:OpenUSBByName() Copyright: This driver is protected by terms of the GNU Lesser General Public License version 2.1, or (at your option) any later version.
00021725 ccid_usb.c:582:OpenUSBByName() Can't claim interface 1/4: -6
00001490 ccid_usb.c:191:close_libusb_if_needed() libusb_exit
00002553 ifdhandler.c:117:CreateChannelByNameOrChannel() failed
00001181 readerfactory.c:1020:RFInitializeReader() Open Port 0x200000 Failed (usb:072f/2200:libudev:0:/dev/bus/usb/001/004)
00000928 readerfactory.c:312:RFAddReader() ACS ACR122U PICC Interface init failed.
00000907 readerfactory.c:535:RFRemoveReader() UnrefReader() count was: 1
00000795 readerfactory.c:1040:RFUnInitializeReader() Attempting shutdown of ACS ACR122U PICC Interface 00 00.
00000771 readerfactory.c:911:RFUnloadReader() Unloading reader driver.
00001460 hotplug_libudev.c:391:HPAddDevice() Failed adding USB device: ACS ACR122U PICC Interface
00003804 hotplug_libudev.c:269:get_driver() Looking for a driver for VID: 0x1A40, PID: 0x0101, path: /dev/bus/usb/001/002
exit
^C13467170 pcscdaemon.c:726:signal_trap() Received signal: 2
00000160 pcscdaemon.c:745:signal_trap() Preparing for suicide
^C00632125 pcscdaemon.c:726:signal_trap() Received signal: 2
00000189 readerfactory.c:1273:RFCleanupReaders() entering cleaning function
00000103 winscard_svc.c:130:ContextsDeinitialize() remaining threads: 0
00000074 pcscdaemon.c:670:at_exit() cleaning /var/run/pcscd

どうやら、別の何かがデバイスをつかんでいるぽい? https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=57037 ここの「Thu Mar 13, 2014 8:58 am」の書き込みによると、

Also it was not very clear that you need to prevent modprobe from autoload pn533 and nfc modules.
To do that, create /etc/modprobe.d/blacklist-libnfc.conf with this content:
blacklist pn533
blacklist nfc

ということらしい。 lsmodたたいてみると、確かにこのモジュールがロードされてる。 上記の通りブラックリストに指定して再起動かければpcsc_scanでカードが読み込める。