平衡点
2015/04/20
_ Using iceweasel with multiarch support
職場では職員カードが IC カードになっていて,このカードで認証を行なう必要がある手続きが割と沢山あります.共用端末として Wheezy + backports 環境を 40 台ぐらい運用しているのですが,このアーキテクチャは amd64 です.本年度から,それなりの数の学生さん,研究員の方および一部教員がこの共用端末を使用して,IC 認証を行なう必要があったのですが,某基盤センターから提供されているドライバは 32bit 版で,問い合わせに対して返されたマニュアルは 5 年前の版でした.Ubuntu 8.04 とか etch とか久々に見ました.
…めげそうになりましたが,32bit 版とはいえ Linux 用のドライバも提供しているあたりは良心的なんでしょうかね.
ちなみに64bit 版が欲しい,と問い合わせた所
Linux_64bit_対応PKIドライバソフトについては他の64bit対応版開発の際に検討したのですが、開発費が高価であること、WindowsおよびMac利用者に比べLinux利用者が非常に少ないこと等により、見送らせていただきました。現時点では対応予定はありません。申し訳ありませんがご了承お願いいたします。
という心あたたまる回答を頂いたので,multiarch でなんとかならないか,とジタバタした結果を貼りつけておきます.
個人的には,人によっては必須となる認証系のシステムを利用者の多寡で判断するというのはいかがなモンだろうか,とか思ったり.
ウチの職場の教職員は Windows or Mac を買え,ということですね.ちなみに,Mac OS X >= 10.9 用のドライバも最近まで出てきませんでしたよね,つまり Windows を…,みたいな.
というわけでじたばたと.
以下,環境は Debian GNU/Linux jessie です.
multiarch
いつも通り,multiarch で i386 を有効にします.
% sudo dpkg --add-archtecture i386 % sudo apt-get update
これで,i386 のライブラリとパッケージが導入できるようになりました.
pcscd + ドライバ
ドライバが 32bit しかありません.試してみた所 pcscd 自体が 32bit で動作しないと駄目っぽいですね.というわけで,カードリーダを動作させるデーモンである pcscd は i386 版を使う事にします.
% sudo apt-get install pcscd:i386 libpcsclite1:i386 % sudo systemctl enable pcscd % sudo systemctl start pcscd
ついでに基盤センターから提供されている libdnppki11.so.1.0.1 は /usr/local/lib/i386-linux-gnu/ 以下あたりに放り込んでおきます.
その後
% sudo ldconfig -v
とでも.
iceweasel と plugin アレコレ
わりとじたばた. iceweasel 自体のインストールは,既存の amd64 版を uninstall した後に i386 版を install するだけでした. ただ,firefox sync のDBが非互換みたいなので一旦 disconnect してから再 login し,DB を更新しました.
面倒なのは plugin ですね.
- java の plugin を利用する必要があるのであれば icedtea-7-plugin:i386 を install する必要があります.
- flashplugin-nonfree:i386 は,現在 sid にある版も binutils:i386 へ依存しているため,そのままだと開発系が軒並 conflict します.
- #741526 - flashplugin-nonfree: please install i386 player when installing flashplugin-nonfree:i386 on amd64
- 要は Depends を binutils:amd64|binutils:i386 にして,ビルド時に download&install する flashplayer の arch を決めておけ,ということですね.
というわけでパッチ眺めながら野良パッケージをビルドして試したら解決しました.
あと,そのままだと動画再生時に音が出ません. libasound2-plugins:i386 を導入することで flashplayer からも音が出るようになります.というか,親の pluseaudio から管理できるようになりました.
最後に端末から起動して warning を見つつ,足りないパッケージをインストールしたり.
% sudo aptitude install gtk2-engines-pixbuf:i386 gnome-themes-standard:i386
最後まで
GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size ==0' failed
が潰せないのだが.これは何だったかな….
まとめ
というわけで,なんとか IC 認証ができるようになりました.カードリーダ自体は必要となる学生さんと教職員には貸与されているわけで,共用端末でも必要に応じて USB でカードリーダを接続後に iceweasel を起動すれば,IC 認証ができるでしょう(多分).
以前は入力系で嵌った記憶があるのですが(文字が打てない/コピペできない等),今回はそんな事はありませんでした.進歩を感じます.音もちゃんと出るみたいですし,とりあえず pcscd と iceweasel を i386 にすることで,当分様子を見ようと思います.
あまりに駄目そうなら全部 i386 版にしようと思っていますが.