2016年6月9日木曜日

Linksys WUSB54G v4 と Linux

Linksys WUSB54G-JP を昔、オークションで中古ルーターを落札したときのオマケで入手したものの、ほとんど使われる機会のないまま眠らせていた。ふと今使っている Linux (Ubuntu) マシンで有線 LAN の代わりに使おうと思って調べてみたら、あっけなく上手く行った。

WUSB54G-JP はアメリカの WUSB54G v4 と同じもののようで、v1~3 と違って v4 だけチップが Ralink 製で、Ralink チップ用のドライバー(p54usb)で動くとの話。今使っている Ubuntu 15.04 では標準でモジュールが含まれているようなので、modprobe するとすぐに動くようになった:

sudo modprobe p54usb

ひとつだけクリアしなければならない問題があって、このドライバーは、省電力機能がちゃんと対処できていないため、通信がブツ切れになってしまい、例えば、インターネットラジオなどを聴くに耐えない状態になる。

これに対する対処法は省電力機能全体を無効化してしまうこと:

sudo iwconfig wlan0 power off

これで見違えるようにスムーズな通信が確立できる。

あとはこの iwconfig コマンドを PC を起動する毎に入力するのもバカらしいので、起動スクリプトで実行するようにしておけばいい。

uwsb54gv4.sh という名のスクリプトでも作って、そこにコマンドを記述する:

#!/bin/sh
iwconfig wlan0 power off

これを /etc/init.d に移動し、パーミッションを適当に設定し:

sudo mv wusb54gv4.sh /etc/init.d
chmod 755 /etc/init.d/wusb54gv4.sh

最後に、起動スクリプトとして設定する:

update-rc.d /etc/init.d/wusb54gv4.sh

※起動時はこれで自動で省電力機能の無効化コマンドが実行されるわけだが、ルーター側を再起動するなりして、何らかの拍子に Wi-Fi の接続が一旦切れてしまったような場合は、ドライバーがリセットされて省電力機能が復活してしまうので、都度 iwconfig コマンドで無効化し直す必要があることには留意する。

2016-06-23 追記

Ubuntu GNOME 16.04 にクリーンインストールでアップグレードしたところ、WUSB54G に関するセットアップも自動で行われ、上記のような作業は「全く」必要がなかった。その結果を見てみると、ドライバーは p54usb ではなく、rt2500 のものが使われており、省電力機能関係の不具合も全くない。上の苦労は何だったんだろう……。


今使っているデスクトップ PC は、10 年目で、有線の LAN ポートしか備わっていない。時代的にまだ Wi-Fi というと、ノート PC にしか付いていなかった時代だった。それで WiMAX 2+ のモバイルルーター(ファーウェイ W01)からの Wi-Fi 電波を受信するのに、余った旧い WiMAX(無印)のモバイルルーター(NEC WM3800R)を公衆 LAN モードで使って Wi-Fi 電波を受信し、WM3800R のクレードルから有線 LAN で PC につなげるという、究めてアクロバチックな態勢になっていた。当然二重ルーター状態である。それも、WM3800R は Wi-Fi 電波が拾えなくなると、WiMAX の契約画面に移行してしまうため、W01 を起動し直す度に、Wi-Fi 電波が受信可能な状態になってから、WM3800R を改めて起動するという手順が必要である。よくこんな面倒な態勢で一年以上やってきたものだ……。

それでふと思い付いて、この WUSB54G の存在を思い出したわけだ。Windows 専用というイメージがあったので、使おうというアイデアが意識に上ることなく放置してきたのだが、アメリカで流通している Linksys だし、あまりにも当然のように使えて、拍子抜けする程だった。何でこれをもっと早く使おうとしていなかったのかと思うくらいだ。

0 件のコメント:

コメントを投稿