今回実家に戻ってきて、困ったことは、私のデスクトップは二階に設置したため、一階のLANに直接接続できなくなったことだ。Windowsはネット接続できたが、USBの無線アダプタでlinuxからも接続したい。
今まで、無線LANはテスト目的と弟にあげた中古のノートでWEBブラウジングしてもらうために設定したのみで、最後にいじってから2年ほど経っている。当時、購入したカード型の無線アダプタはndiswrapperのおかげで動作した。その後、この製品はwrapperを使用しなくても、動作するようになった。ネットワークドライバーが標準で組み込まれたのだろう。
同時に購入したUSB型の製品、io-dataのWN-G45/USLであるが、何をやってもダメだった。今回、こちらの製品を久しぶりに使ってみたら、ndiswrapperでlinuxでも動作可能になっていた。ndiswrapperを利用したのだが、チップのZD1211rw対応のドライバーは組み込まれている感じであった。別の方法でも動作させることが可能かも知れない。
表立ってUbuntuの名前を出すと、Ubuntu目的の読者ばかりが集まってきてしまうので、控えめに書こうと思う。Ubuntuの他にFedoraとopenSUSEについても触れるのだが、SUSEについては新しいバージョンリリース後に、この記事に修正・加筆する。(と言いつつ、現バージョンの11.2で実行してしまいました。)
基本、対象とするデバイス専用で目的のディストリビューションのドライバーが存在していれば、一番簡単なのだろうが、linux界ではそれは滅多にない。
無線LANの場合、対象の製品が動作しなければ、その製品についてまず調べてみる。実は販売される製品は、その中に含まれているチップ、つまり一番大元の機能を提供している集積回路を作っているメーカーが製品と同時に発表する「こんなふうに組むと動きますよ」という参考回路そっくりに作っているところが多い。だから、コンピューターに限らず、同じ時期に販売されるハードウェア製品の機能は、大抵同じようなものになる。
無線LANの場合、手持ちとは別の製品であっても、同じチップを使っているものがサポートされていたり、動作させたユーザーさんがいれば、同じ手法で動作させることが可能であることがある。
そこで、製品のチップを調べるのが有効な手段となる。
今回扱った、WN-G45/USLは販売数自体が少なかったのか、なかなか動作報告が当時はすくなかった。同じような製品番号が多いので、検索にも手間がかかった。とはいえ、2年も経てば、何かしらサポートされるようになる。
田舎にコンピューターを送って、最初はWindos XPで無線LANを動作させた。これは、正規のドライバーをダウンロードし、動作に問題はない。
次にUbuntuである。ネット環境が使えないという前提で作業をし始めた。最初は対応するチップセットのドライバーのReadmeにしたがい、含まれていたファイルをコピーしてみたが、動作しなかった。なにせ、最新版が3年ほど前になっている。ちょっと見たところ、とうの昔に取り込まれているようであった。しかしながら、これは対応するドライバーをダウンロードする必要もある。前提のネット環境が使用できないと約束に早速違反している。
Ubuntu以外にもいろいろとやってみて気づいたのは、ndiswrapperがインストールできれば、大抵の昔の無線LANアダプタ、特に過去に動作成功したものは、動かせる可能性が大きいということだ。なら、如何にndiswrapperをインストールできるかに着目していくのが、これから先読み返し自分自身で参考にするときも分かりやすい。
Ubuntu 10.04の場合だが、インストールCDにndiswrapperが入っている。インストール後でもリポジトリの設定のダイアログで、本来パッケージのインストール先の「インストールCD」のところにチェックを入れると、簡単にインストールできるのである。ただ、日本語版はCDのラベルを変更してあるのに、このインストール・ソースのGUIが扱うCDのラベルがオリジナルのままであるために、一致せず、結果エラーが出てインストールできない。
そこで、CDを開き、中のパッケージを探すと、ndiswrapperが見つかる。後は、これをダブルクリックで動作させれば、OKだ。これ以降は、ndiswrapperで検索した内容にしたがって、設定できる。
続いてFedora 13である。Fedoraは正式にはndiswapperを取り扱わない。
取り扱わないのでndiswrapperはライブCDにも、インストールDVDにも入っていない。結局、どこかからダウンロードしてこないと、ndiswapperはインストールできない。つまりは、有線でつなぐか、ネットにつながっている別の機械が必要だ。(もちろん、ndiswrapperを使用しない別の方法があるのかも知れない)
ndiswrapperにこだわるなら、主に方法は2つある。一つは王道、ndiswrapperの最新ソースを入手して、自分でmakeをかける。もう一つは、非公式リポジトリにあるパッケージを入手してそれを利用することだ。
最初は手間が掛かりそうもないパッケージをダウンロードする方法にチャレンジしてみた。依存関係の解決が面倒そうで、しかも開発パッケージが必要な感じなため、ギブアップした。
こちらの方法にチャレンジしたい方がいらしたら、パッケージの入手先はRPM Fusionである。解説は、etc blogさんのページがわかりやすいと思う。
今回成功したのは、王道の方法である。つまり、ソースを持ってきて自分でmakeをかける方法だ。ただ、後から開発パッケージをネット環境無しでインストールするのは面倒なので、インストール時に開発パッケージと開発ライブラリーを追加しておくことを、強くおすすめする。無線LANしか接続方法が無ければ、保険のつもりで開発環境を入れておくことだ。(これも、後からCDやDVDからインストールする方法はあるはずだが、今回は調べなかった。)
どこからかndispwrapperのソースを入手する必要がある。再度繰り返すが、このためネット環境が必要だ。ndispwrapperのダウンロード先から最新版を入手しておこう。Fedoraインストール後に解凍しておく。
後はインストール直後であれば、解凍したディレクトーリでmake installを行うだけだ。ただ、これでカーネルモジュールが作成される場所が、/lib/modules/miscに作成されてしまう。そのため、"modprobe ndiswrapper"でndiswrapperが見つからないというエラーになる。/lib/modulesの下はカーネルバージョン名のディレクトリーになっており、現在動作させているリリース番号のディレクトリーの下にndiswrapperという名前のディレクトリーがあれば見つかるようなので、miscを使用するカーネルバージョン名のディレクトリー下にコピーしておき、名前をmiscからndiswrapperに変更すれば、認識されるようになる。
ただ、この方法だと、カーネルアップデートのたびに、同じ作業を行う必要があることを覚えておかなくてはならない。今回、fedoraインストール後にカーネルアップデートが入っていたのだが、ndiswrapperのカーネルモジュールのコピーだけでは動作せず、make unintallでアンインストールしmake installからやり直した。
ndiswrapperの使い方など詳しい手順は、検索してもらいたい。この記事はヒントだけである。
openSUSEは新しいバージョンのリリースが控えているので、リリース後に報告することにしよう。(11.3リリース前に、11.2でできてしまった。そのため、一応現バージョンの過程を紹介しておこう。)
openSUSEの場合もUbuntuと同様、ライブCDとインストールDVDにndiswrapperのパッケージが含まれている。インストール時に指定可能ならば、インストールしておこう。
インストール時にネットが使用できないと、リポジトリは全部無効になり、CD/DVDからのインストールが有効になったと思う。(昔の記憶からである。正確かどうかはわからない。)なので、後からインストールする場合でも、リポジトリを指定しなおす必要はなかったと思う。
インストール時にネットが使用できる場合は、CD/DVDもリポジトリとしては有効なままである。これは、日常的に使用する場合、うざったいので、優先順位を低くしておくか、有効のチェックを外しておくのが普通だ。チェックを外していた場合、つけ直す必要がある。
YaSTを起動し、ソフトウェアのインストールでndiswrapperをインストールすればよい。その際、ネットが接続できず、リポジトリが有効なままだと、起動時にうざったいポップアップが何度も出るとおもう。リポジトリをアップデートしようとしても、接続できないから確認のダイアログが登録してある読み込み先のリポジトリの回数だけ、エラーのダイアログが表示されるのだ。これはしょうがない。イヤなら、あらかじめリポジトリを無効にしておくことだ。ネット環境が整った時点で、有効に戻しておくことを忘れずに。
CD/DVDからndiswrapperをインストールした場合、新たにopenSUSE全体をインストールした場合は問題ないのだろうが、インストール後に、ある程度使用していたシステムの場合、カーネルがCD/DVDに含まれているものにダウングレードされる可能性がある。ndiswrapperの依存によるため、いたしかたない。
インストールしてしまえば、ndiswrapperまわりは、どのディストリビューションでも同じようなものだ。ndiswrapperでinfファイルを取り込み、オプション-mで起動時にカーネルに組み込まれるように設定する。
引っかかりどころは、YaSTでネットの設定を起動し、NetworkMangerに監理を任せるオプションにチェックを入れておき一回再起動、更にNetworkMangerにより設定した後に再起動が必要だったことだ。ここらへんは、バージョンや環境により異なっているかもしれない。ただ、正しく設定したつもりなのにすぐに動作しない場合は、再起動が必要かもと頭に入れておく必要がある。
カーネルのバージョンアップ時に再設定が必要かは、もうすぐ分かると思う。今、無線LANが動きだし、約3週間ぶりのアップデートがかかっている。CD/DVDからndiswrapperを入れたため、カーネルはダウングレードされているので、確実にアップデートされるだろう。時間がかかるので、ここで一度一休みすることにしよう。
(11.3がリリースされました。試しましたが、インストールDVDからのndiswrapperインストールは当然問題なく実行可能です。)
Tips ~ ヒント
ndiswrapper −i infファイル名
ndiswrapperにinfファイルを認識させる。Web上の投稿内容にはinfファイルだけで良いとかかれているものもあるが、実際は.infファイルと同じディレクトリーに存在するファイル全部が読み込まれる。私の場合、.infファイルだけであると動作せず、ドライバー本体の.sysファイルも必要であった。ただし、この二つだけであるとつながるが動作が安定せず、同じディレクトリーに存在していたin_ファイルを入れてやっと本格的に使用できるようになった。要は、infファイルを指定時にはinfファイルが入っていたディレクトリー内に存在していたファイルが全部存在している必要がある可能性が高い。単純にドライバーの入っているCD内のinfファイルを直接指定するのが簡単である。もし、一度自分のユーザーディレクトリ内にコピーするときや、ダウンロードしたものを利用するときは、infファイルの入っているディレクトリー内の構成は変更しないようにしておいた方が良い。
ndiswrapper −l
infファイルが実際に読み込まれたかの確認
ndiswrapper −m
modprobeというカーネルモジュールをカーネルに組み込むコマンドで私用できるように環境ファイルを書き出す。ただし、ワーニングが出てしまう。
ndiswrapper -ma
modprobe -mとの違いが不明。maの場合は全ドライバ分を書き出すらしいが、通常無線装置は一つだけだと思う。ただ、こちらだとワーニングが出ない。解説サイトにより−mであったり、−maであったり、−mも−maも実行しない書き方をしているところもあったりでよく分からないポイントである。
depmod -a
このコマンドを行うように記述しているサイトと行っていないサイトがある。このコマンドはmodprobeコマンドのために、依存リストを作成するものらしい。−aはすべてのモジュールが大将だと言う意味だ。もし、これを実行せずにうまくいかない場合は、やってみるとうまくいくかもしれない。
modprobe ndiswrapper
ndiswrapperというモジュールをカーネルに取り込む。カーネルに取り込まれないうちは、openSUSEを起動する度にndiswrapperを動作するように設定する必要があるが、一度取り込んでしまえば、起動後は当然動作するので、いちいち動作させるためにごちゃごちゃいじる必要がなくなる。
lsmod | grep ndis
lsmodはカーネルに組み込まれているモジュールの情報を表示するコマンド。これでndiswrapperが組み込まれたか確認する。ただ、モジュール数は多いので、パイプでgrepに出力を受け渡し、ndisという文字列を含んでいる行だけを出力する。何も表示されていなければ、組み込まれていない。組み込まれていればndiswrapper........という行が通常1行表示される。
これ以降はopenSUSEの場合:
ndiswrapperが動作していれば、YaSTの「ネットワークの設定」でその無線ターミナルが認識されているはずだ。無線のタブにその機種が表示されていない時は、認識されていない。
openSUSEの場合、従来からのやり方のiwを利用する方法と、NetworkManagerを利用する方法がある。NetworkManagerを利用する方が簡単だ。YaST→ネットワークの設定のグローバルオプションタブで、NetworkManagerを使ってユーザーが制御にチェックをいれ、右下のOKをクリックしよう。続いて再起動をかける。するとネットワークマネージャーが動く。
KDE利用時にはネットワークマネージャー起動時にKDEのウォレットが動作する。もし、これを利用しないとネットワークようのパスワードも保存されなくなるので、必ず利用しよう。Gnome利用時にはKeyringsだったかが起動するかもしれないが、未検証である。このウォレットがうざったい方は、iwを利用した従来のやり方で設定しよう。(わたしは、このiwを使う方法で未だ成功していない)
NetworkManagerは下部パネルの右側に表示される。これを右クリックし設定する。
| 11.3でテストWEBサーバー< 前 | 次 >openSUSE11.2でテストサーバー |
|---|
| < 前 | 次 > |
|---|