あらかじめ断っておくが、これら2つのプログラムには様々な不備が存在している。その1番目は、Debianのリポジトリラベル「contrib」に分類されていることからも分かるように、これらがフリーなプログラムではなくその動作がプロプライエタリ系プログラムに依存している点である。つまりこれらのプログラムは、ワイヤレスカードの製造元からWindows用にリリースされているドライバを抽出してそれをGNU/Linux上で実行するための処理を施しているのであり、このプロセス自体がフリーソフトウェア支持者の多くが眉をひそめる行為であって、ドライバそのものはフリーな使用ができるものの、法律的には違法な存在と見なされる可能性を否定できないのだ。2つ目の問題点は、これら2つのプログラムを扱う操作手順の複雑さであり、しかもディストリビューションごとにその詳細が異なっているため、多くのユーザが使用をためらう原因となっている。
その他、これら両プログラムの関連ドキュメントに不備があるのも、インターネット上で様々な混乱を呼び起こす要因となっている。こうした問題の本質がどのようなものかはドキュメント類に実際に目を通してみないと理解しにくいかもしれないが、これを参考にしてコンピュータを設定すると、その後の再インストール時に不整合を生じさせる可能性が残されてしまうのである。
これら2つのプログラムを導入する際の負担を軽減できるよう、本稿では必要となる情報および使用時の要件についての解説を行っている。こうした情報は可能な限り適用範囲の広いものとしてあるが、実際にこれらのプログラムを使用する場合は、ドキュメント類を参照した上で各自のディストリビューションに適合させるための設定変更を施して頂きたい。
ndiswrapperの使用法
ndiswrapper(Network Driver Interface Specification wrapper)の基本機能は、ワイヤレスカード付属のWindows用ドライバをGNU/Linuxで使用させるための処理において、その操作用インタフェースを提供することである。そしてndiswrapperでは最低でも2種類のグラフィカルインタフェースを利用できるようになっているのだが、その点に触れているディストリビューションや解説書はほとんど存在していない。それと言うのも、このプログラムを使用するユーザの大半はコマンドラインによる操作を選択するであろうからだ。
ndiswrapperを使用するには、各シリーズに応じて2.6.6あるいは2.4.26以降のカーネルが必要であり、その他に、kernel、gcc、wireless-toolsパッケージ用のカーネルヘッダも必要となる。RPMディストリビューションを使用できる場合は、dkms-ndiswrapperパッケージをFreshRPMSから入手できるが、これにはカーネルヘッダも付属している。wireless-toolsが付属していないディストリビューションでは、Hewlett-PackardのワイヤレスLANのリソースページからダウンロードすればいい。
実際の作業に取りかかる前の段階で、各自のワイヤレスカードがndiswrapperに対応しているかを確認しておく必要がある。それにはまずlspciを実行して、最初の列に表示される自分のワイヤレスカードに関するエントリを書き留めておく。次に「lspci -n」を実行して、先のコマンドで取得しておいた先頭列エントリの情報を基に、該当するワイヤレスカードの行を特定する。3ないし4番目の列には、「14e4:4311」というようにコロンを挟んだ1組の4桁数値という形式で、ワイヤレスカードのPCI IDが表示されているはずである。この情報を別途書き留めておき、ndiswrapperプロジェクトのサイトにあるサポート対象カードの一覧ページにアクセスし、該当するカード名の項目を探して、先のPCI IDが含まれているかを確認する。該当する記述がある場合はndiswrapperを利用できるが、そうでない場合は後述するfirmware cutterの使用を検討するべきだろう。
次の手順として、以前にndiswrapperを使用したことのある場合は、そのインストレーションに関するすべてを削除しておく。まず最初に「ndiswrapper -r driver 」というコマンドを用いて同プログラムでインストールしたドライバ類の削除を行う。次にプログラム本体を削除するが、この処理はディストリビューションのパッケージ管理ツールで行えるはずであり、またソースからコンパイルしていた場合は、ndiswrapperファイルの格納ディレクトリで「make uninstall」コマンドを実行してもいい。その後「modprobe -r ndiswrapper」コマンドを実行してカーネル中のモジュールを削除しておく。その他、「ndiswrapper -m」によるエイリアス作成を行っていた場合は、「rm -f /etc/modprobe.d/ndiswrapper」コマンドによる削除が必要となる。最後に削除するのは、loadndisdriveファイルなどのndiswrapperを参照している/usr/sbin中のファイル群および、/lib/modules/<kernelname>/miscにあるカーネルモジュールである。ディストリビューションによってはファイルの格納位置が異なっていることもあるが、そうした場合は、適当な検索ツールを使ってndiswrapper関連のファイル位置を特定すればいい。
