2013-11-12

NTTCom SCR3310 を RHEL6 で使用

NTTCom の SCR3310 を Scientific Linux 6.3 (CentOS 6.3, RHEL 6.3) で使用する方法をメモする.

概要

使用するパッケージは, openct, pcsc-lite, pcsc-lite-openct である. openct の提供する ifdhandler でディバイスにアクセスする. pcsc-lite は Windows SCard インターフェイスを提供しており, Windows のコードを簡単に移植できる. (ARIB B25 テストプログラム は SCard インターフェイスで実装されている.)

一時期, ccid が必要とか, 古い pcsc-lite が必要といった情報も出ていたが, 本稿の執筆時点では, 最新の rpm を使用し, 設定ファイルにディバイスのIDを書き加えているだけである.

手順

  • ディバイスのIDを確認する.
    $ lsusb | grep 04e6
    Bus 004 Device 002: ID 04e6:511a SCM Microsystems, Inc. 
    
  • Info.plist を編集し, ifdVendorID, ifdProductID, ifdFriendlyName にSCR3310のエントリを追加する.
    --- /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)
    
  • pcscd と openct を再起動
    $ 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 のみ設定すると, 以下のようなログが出る.
    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
    

    参考

  • fedora17 で PT3 を使う
    このページに pcscd の設定方法が書いてあるが, openct の設定が書かれていなかった.

  • 広告

    以下は, 関連する機器・書籍の広告である. なお, 以下の機器を購入してこのページに記載の方法通りになるかどうかを保証しない. その他, 以下の機器の購入によるトラブル等には関知しない.

    0 件のコメント:

    コメントを投稿