概要
使用するパッケージは, openct, pcsc-lite, pcsc-lite-openct である. openct の提供する ifdhandler でディバイスにアクセスする. pcsc-lite は Windows SCard インターフェイスを提供しており, Windows のコードを簡単に移植できる. (ARIB B25 テストプログラム は SCard インターフェイスで実装されている.) 一時期, ccid が必要とか, 古い pcsc-lite が必要といった情報も出ていたが, 本稿の執筆時点では, 最新の rpm を使用し, 設定ファイルにディバイスのIDを書き加えているだけである.手順
$ lsusb | grep 04e6 Bus 004 Device 002: ID 04e6:511a SCM Microsystems, Inc.
--- /usr/lib64/pcsc/drivers/openct-ifd.bundle/Contents/Info.plist +++ /usr/lib64/pcsc/drivers/openct-ifd.bundle/Contents/Info.plist @@ -48,6 +48,7 @@ <string>0x04e6</string> <string>0x04e6</string> <string>0x04e6</string> + <string>0x04e6</string> <string>0x073d</string> <string>0x076b</string> <string>0x076b</string> @@ -91,6 +92,7 @@ <string>0x5115</string> <string>0x5116</string> <string>0x5117</string> + <string>0x511a</string> <string>0x511d</string> <string>0xE001</string> <string>0xE003</string> @@ -137,6 +139,7 @@ <string>Generic CCID Reader</string> <string>Generic CCID Reader</string> <string>Generic CCID Reader</string> + <string>NTTCom SCR3310</string> <string>Generic CCID Reader</string> <string>Generic CCID Reader</string> <string>Generic CCID Reader</string>
openct.conf
を編集し, SCR3310のエントリを追加する.
Safe to disable force_poll と書いてあったので, safe_poll も無効にしておいた.
--- /etc/openct.conf-20131112 2013-11-12 19:56:49.858551225 +0900 +++ /etc/openct.conf 2013-11-12 19:56:53.836633386 +0900 @@ -12,9 +12,9 @@ # Safe to disable force_poll: # >=linux-2.6.27.14 # >=linux-2.6.28.3 # - force_poll = 1; + force_poll = 0; # user = openctd; # groups = { # usb, # }; @@ -116,8 +116,9 @@ usb:046a/0010, # Cherry smartboard G83-6744 usb:04e6/5115, usb:04e6/5116, usb:04e6/5117, # SCM Micro token size reader + usb:04e6/511a, # NTTCom SCR3310 usb:04e6/511d, # SCM Micro SCR3311 usb:04e6/E001, usb:04e6/E003, usb:073d/0c00, # Eutron SimPocket (doesn't work yet)
$ sudo service openct restart $sudo service pcscd restart
/var/log/messages
に以下のようなログが出ればOK.
pcscd: pcscdaemon.c:506:main() pcsc-lite 1.5.2 daemon ready. pcscd: hotplug_libhal.c:342:HPAddDevice() Adding USB device: usb_device_4e6_511a_21120651308587_if0 pcscd: readerfactory.c:1024:RFInitializeReader() Attempting startup of NTTCom SCR3310 (21120651308587) 00 00 using /usr/lib64/pcsc/drivers/openct-ifd.bundle/Contents/Linux/openct-ifd.so pcscd: readerfactory.c:846:RFBindFunctions() Loading IFD Handler 2.0 pcscd: readerfactory.c:249:RFAddReader() Using the pcscd polling thread
pcsc_scan
にて, カードの情報を読み込めるか確認することができるが, 必須ではない.
Vendor や EPEL などでは提供されていないので, Fedora Core 13 の pcsc-perl-1.4.8-2.fc13.x86_64.rpm と pcsc-tools-1.4.16-1.fc13.x86_64.rpm を使用した.
pcscd: readerfactory.c:846:RFBindFunctions() Loading IFD Handler 2.0 pcscd: readerfactory.c:1050:RFInitializeReader() Open Port 200000 Failed (usb:04e6/511a:libhal:/org/freedesktop/Hal/devices/usb_device_4e6_511a_21120651308587_if0) pcscd: readerfactory.c:914:RFUnloadReader() Unloading reader driver. pcscd: readerfactory.c:233:RFAddReader() NTTCom SCR3310 (21120651308587) init failed. pcscd: hotplug_libhal.c:397:HPAddDevice() Failed adding USB device: usb_device_4e6_511a_21120651308587_if0 pcscd: utils.c:207:CheckForOpenCT() Remove OpenCT and try again
参考
このページに pcscd の設定方法が書いてあるが, openct の設定が書かれていなかった.
0 件のコメント:
コメントを投稿