web-dev-qa-db-ja.com

スマートカードリーダーをLinuxで動作させる

先日、ラップトップから取り込んだスマートカードリーダーを入手しました。内蔵のスマートカードリーダーですが、USBを使用しているため、ケーブルを作成しても問題ありません。

USBドライバーによって正しく認識されているようです:

[1370965.148035] usb 1-3.2: new low-speed USB device number 25 using ehci-pci
[1370965.229948] usb 1-3.2: New USB device found, idVendor=08d4, idProduct=0009
[1370965.229962] usb 1-3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[1370965.229969] usb 1-3.2: Product: Fujitsu Siemens USB Smartcard Reader
[1370965.229976] usb 1-3.2: Manufacturer: OMNIKEY AG

それはかなり湿った標準のFujitsu Siemens USBスマートカードリーダーであるため、「Fujitsu Siemens SmartCard USB 2A」および「Fujitsu Siemens SmartCard Keyboard USB 2A」のドライバーで動作するはずです。どちらもまったく同じものですが、「キーボード」のバリエーションがUSBキーボードに永続的に接続されている点が異なります(同じ場合)。

PC/SCドライバーがリーダーを認識しません。上記のリーダーは libccid でサポートされていますが、pcscdはベンダーと製品IDでリーダーを認識できません。

00000286 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 0x08D4, PID: 0x0009, path: /dev/bus/usb/001/026

(次のUSBデバイスにステップオーバーするだけです。最終的には、すべてのUSBデバイスを試し、その後は何もしません。)

私は今何をすべきかいくつかのアドバイスが欲しいのですが?私にできる唯一のことは、CCIDドライバーのソースをダウンロードしてそこにハックすることです。少なくとも、それが今思いつくことができる唯一のことです。他に試すことができるものはありますか?


OpenCT

/etc/openct.confの行のコメントを外す必要がありました:

driver  cardman {
    ids = {
#       usb:076b/0596, # OMNIKEY CardMan 2020
#       usb:076b/1784, # OMNIKEY CardMan 6020
        usb:08d4/0009, # Fujitsu Siemens SCR USB Reader
    };
};

これらのcardmanドライバーのIDがコメント化されている理由がわかりません。おそらくドライバーがまだ機能していないのでしょうか?

とにかく、これでopenct-toolで何かを取得できます:

$ openct-tool list
  0 OMNIKEY CardMan 2020/6020/6120

単純なEEPROMカードを挿入しましたが、このカードを検知しましたが、そこから読み取ることができません。

$ openct-tool read
Detected OMNIKEY CardMan 2020/6020/6120
Card present, status changed
failed to reset card

ですから、まだ機能していません。


以前はこのカードリーダーをサポートするPC/SCのドライバーがありました: pcsc-lite-cm202 、しかし、今ではなくなっているようです。

ソースパッケージ をメーカーからダウンロードしました。とても古いです。コンテンツを/usr/lib64/pcsc/driversにコピーしましたが、間違ったアーキテクチャ用にコンパイルされているため、明らかに機能しません。

そこにある唯一のソースは、カーネルモジュールをコンパイルしますが、pcscdに必要なlibcm2020.soはコンパイルしません。

何かが足りない場合、libcm2020.soのソースを見つけることができませんでした。実際にライブラリをコンパイルすることは可能です。ソースを見つける場所のヒントはすばらしいでしょう。

8
polemon
openct-tool read

これをルートとして試すか、USBカードリーダーの権限を確認してください(smargoと呼ばれる別のカードリーダーを使用し、ttyUSB0に接続されているため、/ dev/ttyUSB0を確認します)。その後、やり直します。

openct-tool read

2
elbarna