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の設定は、なにか種類の違うプラモデルをいろいろと組み合わせながら組み立てている時の楽しさに似た感じでした。

Debian Sarge の madwifi で WPA2 成功

ThinkPad 535X にインストールした Debian Sarge の madwifi を使って WPA2 通信が出来ました。

前回までに backports の madwifi や wpa_supplicant をインストールして設定を行っていたところまで報告していましたが、その後 WPA-PSK(AES) でも通信が出来るようになりました。

これが通信を開始する時の様子の動画です。キーの叩く音が聞こえると思いますが、このときwpa_supplicant を起動させて通信を開始させています。madwifi のドライバーだから windows のドライバーと同様に2個の LED で通信状況を表示してくれます。これに比べるとどうして ath5k は LED 表示が上手くできないのでしょうか?気になります。
※ 使用している無線LANカードは PLANEX GW-NS54CW です。

 
 
さて問題点は、何とThinkPad 535X でも Debian Sarge の madwifi や wpa_supplicant ではありませんでした。使用していたアクセスポイントに問題があったようです。

ずっと NETGEAR WG302 を使用してきました。これを予備で持っていた NETGEAR WGR614C へ変更したところ、すんなりと通信が出来てしまいました。以前の hostap_cs の時のように Encryption Key:off ということもなく、秘匿通信もちゃんと行われていました。

hostap_cs のときに WPA2 にも係わらず、秘匿通信が行われていなかったり、今回の WPA-PSK のハンドシェイクが上手く行かなかったりと、どうもNETGEAR WG302 のファームウェアには問題が内在しているようです。
この他、ブラウザから無線LANのアクセス状況を確認するために何度かリロードを繰り返していると WG302 の httpd が落ちてしまうようで、アクセスのページを更新しなくなる現象もあります。もちろんリロードと言ってもF5アタックのようなものではなく、ThinkPad 535X の設定を見直しては、その都度様子を見る(確認する)程度のものですから、F5の間隔は数十秒以上開いていて、それも頻繁ではありません。
こんなことから WG302 の引退の時期が来た感じとなっています。

これが問題の NETGEAR WG302 です。窓の上の鴨居の部分に棚を設けているのですが、ここに逆さまに取り付けてあります。写真が上下逆のように見えますが、これで正解です。

そしてピンチヒッターとなった NETGEAR WGR614C です。以前ヤフオクで未使用品というものを格安で落札したまま放置していたものでした。今回急遽ルーターとしてではなく、単純なアクセスポイントとして設定をして使用しています。設定内容などはさすがに WG302 に劣りますが、普通の家庭用としては十分に使える内容と性能の製品のようです。


今回の教訓!
何事も複数の環境で確認してみる必要があるようです。また人生の勉強になりました。

ThinkPad 535X (Debian Sarge) のサウンド設定


この ThinkPad 535X で音楽を聴いたり、音を出すことはほとんどないと思いますが、念のために設定しておきました。

ThinkPad 535X のサウンドチップの設定は結構鬼門のようで、この時代の ThinkPad の同様の問題のようです。
しかし先人たちのご努力で様々な情報がネット上に掲載されていたので助かりました。

搭載されているチップは確かめたわけではありませんが CS4237B のようです。Sound Blaster 8 互換のチップということで、snd-sb8 で音が出ました。

まず alsa-modules-2.4-386 を aptitude でインストールしました。

そして念のために alsaconf でチップを検索しました。旧式カード(ISA)の項目でいろいろと引っかかりますが、動作しないようです。

modprobe で直接設定すれば大丈夫ということで以下の設定を確かめたところ、ちゃんと動作しました。

 # modprobe snd-sb8 port=0x220 irq=5 dma=8

動作確認が出来たところでこの内容を /etc/modules へ “snd-sb8 port=0x220 irq=5 dma=8” を追加して、パソコンが立ち上がれば自動的に読み込まれるようにしておきました。

こうしてサウンドの設定をしてしまうと、しばらくはいろいろな楽曲データをこのThinkPad 535X へ送り込んでは次々と再生させて楽しんでいます。イヤホンやヘッドホンで聴くには十分な感じでした。小さくチリチリとノイズが入るのが少し残念です。

Debian Sarge の madwifi の進捗状況

Debian Sarge の madwifi モジュールのビルドが出来たことから、一気に新展開を期待していましたが、そうは問屋は卸してくれないようです。

madwifi と wpa_supplicant の間で何か問題が発生しているようにも感じました。
そこで wpa_supplicant のバージョンを調べていると、Sarge のカレントの 0.3.8 の他にバックポートに 0.5.4-1 が存在していることが判りました。そこでバックポートのものをインストールしてみることとしました。

事前に現在インストール済みの wpa_supplicant をアンインストールしておいて、バックポート指定のインストールを行いました。

 # aptitude -t sarge-backports install wpasupplicant

このインストールで dhcp-client も新しいものに置き換わってしまうようで、一緒にインストールしました。

さてバックポートの wpa_supplicant がインストールされた後、動作を確認してみました。

今まで箸にも棒にかからなかったアクセスポイントへの接続に光明が見えてきました。

アクセスポイント側で接続を使用していることを認識してアクセスログが残っていました。

しかし接続できません。

wpa_supplicant のデバックモードで問題を探っているところです。

 # wpa_supplicant -i ath0 -D madwifi -c /etc/wpa_supplicant/wpa_supplicant/conf -dd

backports の wpa_supplicant をインストールしたところ、/etc/wpa_supplicant のディレクトリが新しく作られ、そこで wpa_updown のスクリプトがインストールされていました。そこで wpa_supplicant.conf をここへ移動させました。

Prism 2 な無線LANカード


先日ヤフオクで落札した無線LANカードが届きました。写真のように古いものです。落札金額が100円で送料の方が高いというパターンです。ヤフオクなどのインターネット・オークションでは安く落札できるのですが、その後の送料の方が高いということが度々あります。これもデフレの影響なのでしょうか?

さて2枚のカードですがどちらも Prism 2 のチップを使用したものでした。

Intersil 社謹製のフラッシュ ROM 書き換えソフト(FLASH.EXE)で内容を確認してみました。

左の Laneed LD-WL11/PCC は P40003C0.HEX と 1.4.9 という結果でした。
右のAllied Telesis WR211PCM Plus は P40003C0.HEX と S10008C3.HEX ということでした。

どうもどちらも 8008 チップを使用しているようでした。

意外なのが左の Laneed のもので STA-firmware が単純にバージョン番号だけが入っているだけでした。こんな firmware も存在することを知りました。

そしてファームウェアのバージョンアップですが、プライマリ側のものはネット上で公開がないようです。そしてステーション側のものは S1010409.HEX (1.4.9) が最新のもののようです。

これらのカードはファームウェアの書き換えなしで、動作確認用にこのまま保存することとしました。

(余談)
この時代のカードはアンテナ部分の張り出しが大きく電波の受信状況が良さそうでした。そして厚みがあり、しっかりカード本体と繋がっていて少々のことでは壊れそうにないのが好印象でした。今でもこれだけしっかりしたアンテナ部分のカードを作って欲しいところです。中途半端な大きさだとかえって壊してしまいそうです。

Debian Sarge の madwifi に新展開

ThinkPad 535X の Debian Sarge で無線LANを諦めようと思っていましたが、今一度 可能性のある madwifi を再挑戦しました。

なんと!モジュール・パッケージを作ることができました!

依存関係で debhelper が backports のものではなく 通常のものがインストールされる問題が解決しました。私が backports の取扱いをよく知らなかったことが原因でした。

モジュールアシスタントまかせでインストール作業をすると backports のものを引っ張ってこない場合には、必要なものを事前に backports を指定してダウンロードさせておけばよかったのです。

 # aptitude -t sarge-backports install madwifi-source

これで Sarge の backports を指定して madwifi や依存関係のあるものが一緒にダウンロードされてビルドする準備ができました。

 # m-a a-i madwifi

通常のモジュール・アシスタントの操作でモジュール・パッケージがビルドされました。

そしてインストールの途中で、最初の準備段階でダウンロードしきれていなかった madwifi-tools がダウンロード・インストールされました。

これで目出度し!と思って wpa_supplicant 経由でアクセスポイントへ接続しようとしましたが繋がりません。現在原因を解明中です。

まだ接続できた状態ではありませんが Debian Sarge 入りの ThinkPad 535X でも無線LANが使用できる可能性が出てきました。今日はゆっくり眠れそうです(笑)。

ThinkPad 535X (Debian Sarge) の man

意外な盲点がありました。man コマンドが利かないのです。エラー表示されます。この Debian Sarge 入りの ThinkPad 535X ではじめて man を叩いてこれを知りました(汗)

どうもロケールの問題かと思ってロケールの設定を調べてみました。

 # dpkg-reconfigure locales

ちゃんと ja_JP.EUC-JP EUC-JP のところにアスタリスクがついていて設定に間違いはないようです。

ページャーが日本語に対応していないのではと思って jless を調べてみるとインストールされていなかったので aptitude でインストールしました。そしてページャーの設定をしてみました。

 $ export PAGER=jless

これでちゃんと日本語のマニュアルが表示されるようになりました。やはりページャーが日本語非対応だったようです。

~/.bashrc の最終行へ export PAGER=jless を追記して環境変数で対応することとしました。