2015年2月16日月曜日

[e-Tax 確定申告] Mac Yosemite(10.10) & NTT Communications カードリーダ 標準ドライバをインストールしてしまってハマった

タイトルの通りだけど、カードリーダのドライバをインストールする際、ハマったので書き込み。

そもそも

確定申告, e-taxをYosemiteでする試みのページはほかにも書かれている方がいらっしゃるので、そちらを参照して頂いて、、、 私はろくに読まずに標準ドライバをインストールして困ったのでハマりました。なので、復帰方法についてメモしときます。

対象のカードリーダ

NTTコミュニケーションズ USBタイプ ICカード リーダーライター CLOUD2700-NTTCom CLOUD2700 Macユーザーはこの選択肢、多いのでは??安いですからね。
ほかのNTT製のカードリーダについても、ここで書いている内容と同じことが言えると思います。

問題

現在、NTTからカードリーダライタのドライバは、残念ながらMac OS 10.9 までしかリリースされてません。Yosemite向けのドライバがないのです。 それでも大抵の場合、動いてしまうので、勢いでインストールした人、いませんか?
私もその一人です。(笑)
動きませんよね?公式ドライバー。そもそもインストール時に、「リーダをUSBに刺してください」と出て、USBに刺しても次に進まない。。。なので、インストールマニュアルのPDFに書いてある通り手動でインストール。← もうこの時点でハマってます。 NTTのインストーラを起動すると手遅れです。なんと、必要なオリジナルのドライバを消去するスクリプトから起動してます。。
Time Machineのバックアップから取ってくればいいのですが、そもそもYosemiteにしてからバックアップしてないし、変なバージョンを入れるのもヤだし。。(もしくはバックアップをとってない人も対象?)となっている方、私と一緒です。

このカードリーダに必要なバンドルファイル

このカードリーダに必要なファイルは
ifd-ccid.bundle
と言うファイル(パッケージ)です。 このファイル、標準ドライバをインストールする際に消されてしまいます。(どこにも残ってません。ほかのカードリーダライターのドライバもたくさん含んでるのに驚き。。。 ) ネットからダウンロードしよう、って発想もあるのですが、どれが正解かわかりませんし、当たり外れがありそうで。。

入手先

ifd-ccid.bundleは、Linux系のフリードライバーでMacOS用にもビルドできるソースが公開されています。これを入手しましょう。 入手先↓
https://alioth.debian.org/frs/download.php/latestzip/112/ccid-latest.zip
このドライバをビルドするには、もう一つライブラリが必要になります。lib-usbです。これも入手しましょう。 入手先↓
 http://sourceforge.net/projects/libusb/files/latest/download?source=files

ビルド

Linux使う人なら、何も難しくありません。けど、なんだかわからない人は参考になれば幸いです。

環境開発の準備

まず開発環境が必要です。私はいつも入ってるので、最初はどうなっていたのか覚えていませんが、「ターミナル.app」を開いて、ツールがそろっているか確認します。 ターミナルは「アプリケーション」→「ユーティリティ」の中にあります。 開いたら、%の後にカーソルがあると思います。そこに
gcc -v
と打って見てください。最後は「Enter」キーを押します。 何がでましたか?↓のような画面が出るとOKです。
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer//usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.1.0
そんなコマンドはない、とか、それを実行するには開発ツールのインストールが必要です、などのメッセージが出た方、App Storeにいって、「XCode」をインストールしてください。(とっても重くてデカいですけど。。) インストール後にもう一度「ターミナル」を開いて同じコマンドを打つと、上記のようなメッセージが出るはずです。

libusbのインストール

USBと言う名前にビビってはいけません。システムのUSBと喧嘩はしませんので。(たぶん) ダウンロードして入手したlib-usbを解凍してください。ダブルクリックすると解凍できるはずです。 「libusb-1.0.19」というフォルダができるはずです。(数字の部分はVersionなので、新しくなれば変わっていますので、読み替えてください)
ターミナル.app画面に移ります。 下記を入力してください。
cd ~
cd Downloads            ← ダウンロードフォルダに解凍した場合です。適宜読み替えてください。
cd libusb-1.0.19
各行の最後で「Enter」キーを押してください。cdはChange Directryの意味で、現在いるフォルダを変更しているだけです。 (各行、打っている最中に「TAB」キーを押すと補完機能が働いて、入力するのが楽です) (~の意味はHomeフォルダ(ユーザーのトップフォルダ)です。)

設定

次にこのlibusbをビルドします。まずは設定をします。 引き続きターミナル.appで以下を入力します。
./configure
なにやらズラズラと文字が出てきたと思います。 ↓のような感じでErrorの文字なく終わっていればOKです。
configure: creating ./config.status
config.status: creating libusb-1.0.pc
config.status: creating Makefile
config.status: creating libusb/Makefile
config.status: creating examples/Makefile
config.status: creating tests/Makefile
config.status: creating doc/Makefile
config.status: creating doc/doxygen.cfg
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

ビルド

次に、ビルドです。 引き続きターミナル.appで以下を入力します。
make
ビルドされます。ここでエラーがでたら諦めてください(笑) 開発者ならがっばってくださいね。私の環境ではビルドできてますので、何かが違います、きっと。

インストール

次にインストールします。 引き続きターミナル.appで以下を入力します。
sudo make install
↑のコマンドを打つと、パスワードを聞かれます。管理者のパスワードを入力してください。(管理者?と思った人は、いつもログインするときに利用しているパスワードを入力してください。)
これでlibusbの準備はできました。

ccidのインストール

(↓更新:  うまく行かないコメントを頂き少し訂正しました。これでうまくいくかはわかりませんが。。。)
次に欲しいifd-ccid.bundleをインストールします。 lib-usbと同じような感じでインストールできるのですが、設定時に少し長いコマンドを入力します。
ターミナルで↓の用に打ってください。
cd ~
cd Downloads          ← ダウンロードフォルダに解凍した場合です。適宜読み替えてください。
cd ccid-1.4.18

設定

先ほどインストールしたlibusbを使ってこのドライバはインストールされます。 先ほど解凍したlibusbフォルダの場所を教えてあげる必要があります。↓を打ち込みます。
./MacOSX/configure PKG_CONFIG_PATH=/Users/ユーザー名/Downloads/libusb-1.0.19

PKG_CONFIG_PATH=以降のパスは先ほど解凍してビルドしたlibusb-1.0.19フォルダの位置を設定してください。(↑の例はダウンロードフォルダ下にlibusbをおいた場合です。)
このドライバーはLinux用のドライバーも含んでいます。マック用のドライバを作るには↓の用にターミナルに打ち込みます。
./MacOSX/configure
↓のような出力が表示されればOKです。
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating readers/Makefile
config.status: creating contrib/Makefile
config.status: creating contrib/Kobil_mIDentity_switch/Makefile
config.status: creating contrib/RSA_SecurID/Makefile
config.status: creating examples/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
+ rm -f src/Info.plist

ビルド

次にビルドします。
make

インストール

次にインストールします。 引き続きターミナル.appで以下を入力します。
sudo make install
↑のコマンドを打つと、パスワードを聞かれます。管理者のパスワードを入力してください。(管理者?と思った人は、いつもログインするときに利用しているパスワードを入力してください。)

完了

これで、/usr/libexec/SmartCardServices/driversに念願のifd-ccid.bundleがインストールされます。 今回購入したカードリーダもこのドライバで認識できます。 念のため、カードリーダを刺す前にMacを再起動させましょう。(システムの内容がわかっている方は、サービスを再起動させてもいいと思います。)
JPKI利用者ソフト.appで動作確認してみてください。カードリーダの型番が表示され、認識されているのがわかると思います。






0 件のコメント:

コメントを投稿