2010年9月29日水曜日

ThinkPad 535X Debian Sarge の 無線LANのまとめ


今回は一連の madwifi による Atheros チップを載せた無線LANカードの設定のまとめです。

前回までに PLANEX GW-NS54CW で動作確認をしていましたが、Atheros チップを載せた I/O DATA WN-G54/CBL を ThinkPad 535X の PCMCIA スロットへ刺し込んで動作確認をしてみました。
動作をしましたが、なぜか動作が少し不安定なようです。通信が途中で止まる現象が発生するのです。ネットワークを再起動させると再接続をするのですが、これも繰り返すと cardservice を道連れにしてカーネルが落ちてしまうことがありました。
madwifi が認識したチップ情報が同じでしたが、実際にはチップや内部のハードウェアが異なっているのかもしれませんでした。

さて madwifi や wpa_supplicant の設定ですが、いろいろと問題があってどのような状態で記述しておくのが読者さんにとって役に立つのか悩むところがあります。

大きな問題は backports の wpasupplicant にあります。まだ完成していない起動スクリプトなどがインストールされていたり、これらのファイルの配置も元々のカレントのものとバックポートで異なっていることもあって、スマートな取扱いができてないところもあります。これらをご承知の上で、これ以降の設定を読んでください。

まずバックポートの wpasupplicant の起動スクリプトの /etc/init.d/wpa-ifupdown は作りかけで、使い物になりません。このスクリプトが利くのは stop だけです。start や restart は何も動作させません。スクリプトの中に No-op (ノーオペレーションの略か?)となっています(笑)。
さらに /etc/rc0.d/ から /etc/rc6.d/ に登録されるのは /etc/init.d/wpa-ifupdown ではなく、存在しない /etc/init.d/wpasupplicant です。この /etc/init.d/wpasupplicant は元々の wpasupplicant をアンインストールした時点で自動的に削除されてありません。このことからバックポートの wpasupplicant をインストールした時点で、パワーオン起動で自動的に起動されることはないのです。
そして wpasupplicant の本体も、カレントの /usr/sbin/ からバックポートは /sbin/ へ移動しています。

以上のことを勘案して以下のように設定しました。

まずカレントの起動スクリプトの /etc/init.d/wpasupplicant を入手するために、一度バックポートの wpasupplicant をアンインストールした後、カレントの wpasupplicant をインストールしなおします。これでカレントの /etc/init.d/wpasupplicant をコピーして保管しておきます。そして再度カレントの wpasupplicant をアンインストールした後、再びバックポートの wpasupplicant をインストールします。この一連の作業で /etc/init.d/wpasupplicant が削除されてしまいますので、先ほど保存しておいた /etc/init.d/wpasupplicant を戻します。これからはバックポートの /etc/init.d/wpa-ifupdown を使用せず、この /etc/init.d/wpasupplicant を使用することとします。

/etc/init.d/wpasupplicant はカレントのファイル配置となることから以下の位置に各ファイルを移動させるかリンクを設定します。

設定ファイル /etc/wpa_supplicant.conf
 ctrl_interface=/var/run/wpa_supplicant
 network={
     ssid="アクセスポイントのSSID"
     psk="暗号キー"
 }
※network の部分は wpa_passphrase で作ります。wpa_passphrase アクセスポイントのSSID 暗号キー (return) です。表示された内容をコピーアンドペーストします。


初期設定ファイル /etc/default/wpasupplicant
 ENABLE=1
 OPTION="-i ath0 -D madwifi -c /etc/wpa_supplicant.conf -w"
※バックポートの wpasupplicant のインストールのとき、ファイル名が変更されています。リネームして使用します。

wpasupplicant のバイナリ本体
リンクを設定して起動スクリプトからアクセスできるようにしました。
 # ln -s /sbin/wpasupplicant /usr/sbin/wpasupplicant

これで基本的な部分ができました。/etc/init.d/wpasupplicant ( start / stop / restart ) が使用できるようになりました。

これで ThinkPad 535X を再起動させても、スクリプトの配置が悪いのか?自動的に立ち上がってきません。そこでネットワークの起動スクリプトの設定ファイルにも wpa_supplicant の設定を行いました。

/etc/network/interfaces へ以下を追加
 auto ath0
 iface ath0 inet dhcp
    wpa-driver madwifi <---追加
    wpa-conf /etc/wpa_supplicant.conf <---追加

これでパソコンの起動とともに wpa で無線LANのアクセスポイントに自動的に接続して立ち上がります。

今さら古〜い Debian Sarge で無線LAN接続で苦しもうとする人はいないことと思いますが、参考になればどうそ!

ついでですが、アクセスポイントで接続不良だった NETGEAR WG302 ですが、内部設定を工場出荷状態にリセットした後、再度設定をしたところ無事この ThinkPad 535X と接続できました。何か設定に問題があったようです。

この一連の無線LANの設定は、なにか種類の違うプラモデルをいろいろと組み合わせながら組み立てている時の楽しさに似た感じでした。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。