前回のエントリでは激安で購入してきた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系
のディストリビューションであれば問題なくインストール・認識は可能かなと思います。
今回のジャンクは割といい買い物でしたね!