SourceForge.JP: Open Source Software

LoginCreate AccountAdd BookmarkHelp

OpenSource Downloads

(7,965) Cabos
(3,068) 7-Zip
(2,483) Tera Term
(2,009) CrystalDiskInfo
(1,669) HandBrake Japanese Language Version
(1,252) CrystalDiskMark
(921) ffdshow
(669) Tween
(667) Boookends
10  (569) Amateras
11  (563) ギコナビ
12  (502) MergeDoc
13  (436) VirtualDubMod-jp
14  (422) えこでこツール
15  (375) SMPlayer
More >>

最近ブックマークされた記事

ワイヤレスカードをLinuxで利用可能にする2つのツール

2007年09月07日 09:55 1 2 3
  • スラッシュドットにタレコむ
  • あとで読む
 GNU/Linux関係のハードウェアにおいて、ワイヤレスネットワークアダプタほどサポート状況が貧弱な分野はないであろう。大手ベンダからは新型モデルが絶えずリリースされているものの、そのほとんどがLinuxのサポートを端から放棄しており、またこれらのワイヤレスカードに対応したフリードライバをリバースエンジニアリングで作成するのはほとんど不可能に近い状態になっている。特にラップトップの場合、ワークステーションほどのカスタマイズを施してくれる販売業者は少数派と言っていいのが現状だ。こうした不満に対して、色々と不備な点はあるものの、一応の実用的なソリューションを提供してくれるのが本稿で紹介するndiswrapperおよびBroadcom firmware cutterである。

 あらかじめ断っておくが、これら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関連のファイル位置を特定すればいい。

Bruce-Byfield(2007年8月17日(金))
2007年11月07日 17:07 更新