BCASカードが認識しているのかを確認するために pcsc-tools に入っている pcsc_scan コマンドを使ってみる。
# pcsc_scan PC/SC device scanner V 1.4.10 (c) 2001-2007, Ludovic RousseauCompiled with PC/SC lite version: 1.3.3 Scanning present readers Waiting for the first reader...
カードリーダーが認識していない?
今回使っているカードリーダーはPT2を買った時に一緒に買ったCI691(AA)というカードリーダー。
PT2の設定情報では、よくNTT製のがつかわれているため、この辺りに原因が潜んでいそう。
調べてみたところ、pcscd はカードリーダーのデバイスIDなどをチェックするとのこと。
ということは、どこかにある設定ファイルにデバイスIDなどを追加するだけでよさそう。
まず、追加する必要のある設定を確認する。
カードリーダー側の情報はlsusbコマンドで確認できる。
# lsusb Bus 004 Device 001: ID 0000:0000 Bus 004 Device 002: ID 0bda:0165 Realtek Semiconductor Corp. Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 Bus 005 Device 001: ID 0000:0000 Bus 006 Device 001: ID 0000:0000 Bus 007 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 003 Device 003: ID 1130:9177 Tenx Technology, Inc. Bus 003 Device 002: ID 045e:0024 Microsoft Corp. Trackball Explorer
分かりづらいけれど上から2行目のRealtek〜がCI691。
CI691のベンダーIDが0bdaでプロダクトIDが0165らしい。
この情報をどこかに追加したらよさそう。というわけで調べてみると、CentOSでは/usr/lib64/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plistに追加するといけるらしい。
※64bit版の場合。32bit版だと/usr/lib/pcsc・・・になるかと。
<key>ifdVendorID</key> <array> <string>0x08E6</string> <string>0x08E6</string> : <string>0x0bda</string> <-追加 </array> <key>ifdProductID</key> <array> <string>0x2202</string> : <string>0x0165</string> <-追加 </array> <key>ifdFriendlyName</key> <array> <string>Gemplus Gem e-Seal Pro</string> : <string>CI691</string> <-追加 </array>
こんな感じ。
追加したら pcscd を再起動させて、pcsc_scan コマンドで認識しているかを確認する。
# pcsc_scan PC/SC device scanner V 1.4.10 (c) 2001-2007, Ludovic RousseauCompiled with PC/SC lite version: 1.3.3 Scanning present readers 0: CI691 (20070818000000000) 00 00 Sun Mar 20 01:57:34 2011 Reader 0: CI691 (20070818000000000) 00 00 : :