激安で購入したICカードリーダーACR122U-A9をRaspberryPiで使用

前回のエントリでは激安で購入してきたICカードリーダーACR122U-A9Windowsから使用してみる実験を行ってみました。

f:id:ueponx:20220312000242p:plain

uepon.hatenadiary.com

結果的には公式ドライバを使用して無事に認識して、SuicaなどのICカードも無事に認識できたというものでした。実はこのICカードリーダーは公式でLinuxにも対応をうたっている珍しいデバイスで、公式サイトからLinuxドライバが公開されています。更にLinuxといってもRaspberryPiでも使用できるという稀有な特徴があります。

f:id:ueponx:20220317234602p:plain

今回はこのICカードリーダーがRaspberryPi OSでも使用できるかということを検証してみたいと思います。 ただし、公式ドライバはRaspberryPi OSBusterベースより古いものに対応しているということなので、現在公開されているRaspberryPi OSLegacyバージョンを使用することになるのであしからず。

今回使用したRaspberryPi OSは以下のようなシステムバージョンとなっていました。

f:id:ueponx:20220317002741p:plain

ドライバのダウンロード

ドライバは公式ホームページにアクセスし、その中の【ダウンロード】タブをクリックし、選択してダウンロードを行うことになります。

www.acs-japan.jp

以下をダウンロードしていきます。このファイルにはLinuxの各ディストリビューション用のパッケージがなどがありますので、ディストリビューションに合わせて使用していくことになります。

f:id:ueponx:20220317224050p:plain

f:id:ueponx:20220317224500p:plain

ファイルをダウンロードして、Raspbianディレクトリにある以下のdebパッケージファイルを使用します。

libacsccid1_1.1.8-1~bpo10+1_armhf.deb

ドライバなどのインストール

作業のコマンドをまとめたものは後述しますが、以降では至る経緯も含めて記載します。

ドライバインストール時の経緯

公式ドキュメントをみると以下の手順を行うことが記述されています。

  1. 事前にpcsc-liteを導入する
  2. ドライバのインストール
  3. pcscdサービスのrestart
  4. バイスの接続

こちらの作業を行っていきます。

ドライバインストールの事前作業

デフォルトでのパッケージインストールの状態を確認するとpcsc-liteのパッケージは存在していませんでした。そこで、aptコマンドを使用してインストールしようとするのですが。以下のコマンドを実行してもパッケージが見当たらないということでエラーが発生します。

$ sudo apt update
$ sudo apt install pcsc-lite #こちらがエラー

f:id:ueponx:20220317002748p:plain

そこで類似のパッケージがないかを以下のコマンドで確認してみます。内容としてはlibpcscという文字列を含んだパッケージの存在を確認することになります。

$ sudo apt search pcsc

f:id:ueponx:20220317002743p:plain

するとlibpcsclite1というパッケージを見つけることができました。検索時のコマンドも当てはまっているように感じます。 また、ドライバインストール後にrestartするサービスであるpcscdもインストールがされていないようだったので、pcscdパッケージもインストールします。 さらに追加でアプリの開発を行う可能性もあるので、libpcsclite-devパッケージもインストールしておきます。

事前準備が必要なパッケージのインストール

$ sudo apt install libpcsclite1
$ sudo apt install pcscd 
$ sudo apt install libpcsclite-dev

f:id:ueponx:20220317002750p:plainf:id:ueponx:20220317002752p:plain

ドライバのインストール

続いて公式サイトにあるドライバファイルをダウンロードし、ファイル内にあるRaspberryPi OS向けのドライバを取得し、debパッケージファイルをインストールします。インストールにはdpkg -iを使用して行います。

$ unzip ACS-Unified-PKG-Lnx-118-P.zip 
$ cd ACS-Unified-PKG-Lnx-118-P/
$ cd raspbian/buster/
$ sudo dpkg -i libacsccid1_1.1.8-1~bpo10+1_armhf.deb 

これで公式ドライバのインストールが完了します。

pcscdサービスの再起動

ドライバインストール後、pcscdサービスの再起動を行います。念の為、サブコマンドのstatusを確認しておくのが無難だと思います。

$ /etc/init.d/pcscd restart
$ /etc/init.d/pcscd status

f:id:ueponx:20220317002755p:plain

確認用アプリのインストール

バイスの認識や動作はこれでできるのですが、検証用のアプリがなければ、検証は完了しません。そこで、ICカードリーダーを検証するためのアプリケーションの入った以下のパッケージをインストールしていきます。

$ sudo apt install pcsc-tools 

ICカードの読み込みテストを行う

ここまでの作業が完了したら検証用アプリのパッケージ内のコマンドであるpcsc_scanを使用していきます。

$ pcsc_scan

このコマンドはICカードの読み込み待ちをし、カードが読み取れたらICカード情報をコンソール上で表示するというものになります。

f:id:ueponx:20220317002757p:plain

おわりに

正式に動作検証を行えたコマンドのまとめは以下の様になります。

$ sudo apt update
$ sudo apt install libpcsclite1
$ sudo apt install pcscd 
$ sudo apt install libpcsclite-dev
$ unzip ACS-Unified-PKG-Lnx-118-P.zip 
$ cd ACS-Unified-PKG-Lnx-118-P/
$ cd raspbian/buster/
$ sudo dpkg -i libacsccid1_1.1.8-1~bpo10+1_armhf.deb 
$ /etc/init.d/pcscd restart
$ /etc/init.d/pcscd status
$ sudo apt install pcsc-tools 
$ pcsc_scan

メーカー公式でRaspberryPiLinuxディストリビューションに対応したドライバがあるのはかなりびっくりしましたが、現在のインターネット上のデバイスの情報公開の状況で対応ができることがわかりました。ICカードの認識時のLEDの色が変わる点、ビープ音がなるというのは結構いいですね。 今回はRaspberryPi OSでの動作確認としていますが、debian系ディストリビューションであれば問題なくインストール・認識は可能かなと思います。

今回のジャンクは割といい買い物でしたね!