BCAS用スマートカードリーダーをパススルーする

Proxmox を少しでも認知度上げるために今回は BCAS のICカードリーダーを仮想マシンに接続してみることにします。なお、自分の Proxmox が動いている環境では vt-d をサポートしない状態のため録画環境としては使えません。CPU が vt-d をサポートすれば PT3 などをゲストに接続してみて試してみるのですが、それは Proxmox を使ってやってみよう!という人のために残しておきますね。

CentOS のインストール

Proxmox で CentOS を仮想マシンにインストールします。最低限度のスペックで適当に作成しました。

  • CentOS 6.5 (x64)
  • 512MBメモリ
  • HDD 32GB (VirtIO)
  • Network (VirtIO)

ちなみにベースはこんな感じです。

  • Proxmox 4.0 VE
  • メモリ 8GB
  • HDD 1TB
  • N3150Mマザーボード(BraswellCPU)
  • NTT Com の SCR3310

このスペックだと CentOS はコンソールでインストール作業が進み、Minimal な構成でインストールされます。そこでカードリーダーの処理が出来るまでを設定していこうと思います。
proxmox-centos-bcas-1

proxmox-centos-bcas-2

設定手順 その1

インストール直後ではネットワーク接続して ssh が使えないので、まずはこれらを復旧するところから作業します。

Minimal状態とは言え、SELinux が有効になっているので設定ファイル(/etc/sysconfig/selinux) を書き換えて無効化します。書き換えるのは SELINUX の部分を SELINUX=disabled に変更するだけです。

ネットワークも設定ファイルを変更します。そのまえにサービスを停止しておきます。

ファイルを開いて大体以下のような感じになるようにします。ONBOOT=yes, NM_CONTROLLED=no の部分は忘れないように注意します。UUIDなどデバイス関連は違うものになっているので項目そのものがあるか、で十分です。

固定IPを割り当てていない場合にはDNSサーバーの設定も必要なので、以下の設定を記述します。

ここまで設定できたらまず再起動を行います。コマンド reboot が便利でしょう。再起動が完了したら、 ifconfig コマンドを実行してみて、 eth0 が出現するかどうか確認します。ここで eth0 が出現していれば、この後の作業は ssh で接続して作業することができます。しかし、 Proxmox の WebUI からコンソールを簡単に開くことができるため、ssh クライアントの機能を活用しないのであればこのまま Web コンソールで作業しても問題無いかと思います。

まずはよく使うパッケージを yum でインストールしておきます。すぐ使うので usb 関連のツールもインストールします。

USB ICカードリーダーを仮想マシンに接続

proxmox側で USB のICカードリーダーの接続情報を確認します。詳しくは以前のUSBデバイスのパススルーを参照してください。
ここでは proxmox 側で以下のようにリーダーを認識しているとして話を進めます。

デバイスは Bus 001 Device 009 のものが該当し、ベンダーID、プロダクトIDは 04e6:511a であることがわかりました。

これを仮想マシンに接続します。
Proxmox の WebUI から、この仮想マシンの Monitor タブを開いて以下のコマンドを入力します。

proxmox-centos-bcas-3
再び、仮想マシン側の作業します。上記で設定した USB デバイスのパススルーがうまく効いているか確認します。
仮想マシンの中から lsusb を実行してみて、該当のデバイスが出現するかを見ます。

うまくデバイスのパススルーが出来てるとこのように列挙されると思います。

設定手順 その2

ここからはカードリーダーに関係する部分を重点的に説明していきます。全てを設定してしまって問題無い状態を紹介してもよいのですが、エラーメッセージに出遭った方が躓いている人の助けになるかと思い、若干作業が長めになっています。ご了承下さい。

まずはスマートカードリーダー関連のパッケージをインストールします。

他にもツールが必要なので続いてダウンロードしてそれぞれインストールを行います。

続いて作業します。

これで pcsc_scan が使えるようになっているはずです。もし使えないようであれば、一度再起動してみてください。pcsc_scan を実行してみるとどうなるでしょうか。

このようにエラーが出てしまった場合には、メッセージのとおりサービスが起動していません。pcscd が起動していないためなのでこれを起動するようにしましょう。また次回からも自動起動してほしいので設定をしておきます。

これで pcscd が起動したので再び pcsc_scan を実行してみます。しかしながら以下のようになってしまいました。

サービスは起動したはずなので確認してみると以下のようになっていました。

まだ pcscd に足りていない部分があったということです。ここで /var/log/message を確認してみると以下のようなエラーが出ていることがわかります。(実際には1行で出てます)

これは messagebus が動いていないことを示しています。pcscd 同様に起動&次回以降の自動起動を設定しておきます。
そして再び pcscd を起動させて pcsc_scan をやってみます。

・・・でも実際はどうでしょうか。これでもまださっきと同じエラーが出たと思います。ログに出てくるエラーメッセージはどうなったかを確認してみると、以下のようになっていました。

これは haldaemon が起動していないことを示しています。今までの流れ同様これも起動するように設定しておきます。

これで pcsc_scan を実行します。すると以下のようになりました。先ほどと違って動いているような感じです。

しかしこれではまだ足りていないのです。本来なら情報がきちんととれるはずなので。またエラーメッセージを確認してみても、特にエラーらしきものが表示されません。
 実はパッケージがまだ足りていませんでした。以下のようにしてパッケージを追加して下さい.

この後でサービスを再起動して pcsc_scan を実行すると以下のような感じになると思います。

表示上に Japanese Chijou Digital B-CAS Card が出現してくれば動いていると言えると思います。

結構手間をかけましたが、最初から一発でやろうとすれば以下のようなコマンド&手順になるかと思います。

まとめ&これから

カードリーダーはこれで使うことが出来るようになったと思うので、あとは各自の環境に合わせて設定すれば使えるシロモノになるかと思います。
 VT-d をサポートする環境であれば、この構築した環境に PT3 などのデバイスを接続するのも1つの手でしょう。そのためには Proxmox の VT-d 設定をする必要がありますが、 Proxmox は vt-d も対応していると公式 Web に記載があります。
 また最近では BonCasLink のサーバープログラムが Linux 版のようなものがあると聞きました。これを利用すれば他の録画環境からも使用することが出来ると思います。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする