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

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

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

ドライバのダウンロード
ドライバは公式ホームページにアクセスし、その中の【ダウンロード】タブをクリックし、選択してダウンロードを行うことになります。
以下をダウンロードしていきます。このファイルにはLinuxの各ディストリビューション用のパッケージがなどがありますので、ディストリビューションに合わせて使用していくことになります。


ファイルをダウンロードして、Raspbianディレクトリにある以下のdebパッケージファイルを使用します。
libacsccid1_1.1.8-1~bpo10+1_armhf.deb
ドライバなどのインストール
作業のコマンドをまとめたものは後述しますが、以降では至る経緯も含めて記載します。
ドライバインストール時の経緯
公式ドキュメントをみると以下の手順を行うことが記述されています。
- 事前に
pcsc-liteを導入する - ドライバのインストール
pcscdサービスのrestart- デバイスの接続
こちらの作業を行っていきます。
ドライバインストールの事前作業
デフォルトでのパッケージインストールの状態を確認するとpcsc-liteのパッケージは存在していませんでした。そこで、aptコマンドを使用してインストールしようとするのですが。以下のコマンドを実行してもパッケージが見当たらないということでエラーが発生します。
$ sudo apt update
$ sudo apt install pcsc-lite #こちらがエラー

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

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


ドライバのインストール
続いて公式サイトにあるドライバファイルをダウンロードし、ファイル内にある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

確認用アプリのインストール
デバイスの認識や動作はこれでできるのですが、検証用のアプリがなければ、検証は完了しません。そこで、ICカードリーダーを検証するためのアプリケーションの入った以下のパッケージをインストールしていきます。
$ sudo apt install pcsc-tools
ICカードの読み込みテストを行う
ここまでの作業が完了したら検証用アプリのパッケージ内のコマンドであるpcsc_scanを使用していきます。
$ pcsc_scan
このコマンドはICカードの読み込み待ちをし、カードが読み取れたらICカード情報をコンソール上で表示するというものになります。

おわりに
正式に動作検証を行えたコマンドのまとめは以下の様になります。
$ 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
メーカー公式でRaspberryPiやLinuxディストリビューションに対応したドライバがあるのはかなりびっくりしましたが、現在のインターネット上のデバイスの情報公開の状況で対応ができることがわかりました。ICカードの認識時のLEDの色が変わる点、ビープ音がなるというのは結構いいですね。
今回はRaspberryPi OSでの動作確認としていますが、debian系のディストリビューションであれば問題なくインストール・認識は可能かなと思います。
今回のジャンクは割といい買い物でしたね!