自宅サーバ(debian)をsqueeze -> wheezyにしたらちょいちょい動かなくなったものがあったので、それ関連の記事。
今回はpcscd, bcs-perl 周りの話。
wheezyにして以降、pcsc_scanしてもカードが出てこない。
原因は、libccidのバージョンが変わった所為でカードリーダを認識しなくなったからのようだ。
[参考]
Linux/テレビ関連/libccid - PukiWiki Plus!
とりあえず、libccid_Info.plistにエントリを追加してpcscdを再起動すれば良い。
$diff /etc/libccid_Info.plist /etc/libccid_Info.plist.orig
328d327
< <string>0x04E6</string>
554d552
< <string>0x511A</string>
780d777
< <string>SCM SCR 3310 NTTCom</string>
#/etc/init.d/pcscd restart
bcs-perl側の名前が"SCM SCR 3310 NTTCom"なのでそのまま入れてやる。
pcsc_scanしてカードの検出、bcs-perl listしてカードの認識が出来てることを確認すること。pcsc_scanがだめならpcsc側のリストをチェック、bcs-perl listがダメならbcs-perl.pl内のカード名($selected_reader)が怪しい。
パッケージ作り直す、unstableにするという方法もあるがうーん、依存の整理とか考えたくない……
[2013/10/11 追記]
後日、カードリーダを指し直したらまたbcs-perl listで取れる名前が変わってしまった。うーん、カードリーダ同じ型番でも取れるものが違うのか、ドライバ周りで細かく変わるものなのか……
bcs-perlを弄って修正。
[参考]
ぼんぼんブログ - ぼんぼん工房