Image: ubuntuでUSB WLAN WLI-UC-G300HP を使う

ubuntu 12.04 LTSでUSB2.0接続の無線LAN子機「Buffalo WLI-UC-G300HP」を使う。

USBの無線LAN子機を使いたいというニーズは結構あるようだが、ドライバのインストールに苦戦する方が多いようだ。中には10時間以上奮闘したという人も見かける。
そして私自身も数十ページのWebサイトを覗きながら何度もいろんな作業を試してみて、結果的に5時間近くも無駄に時間をつぶしてしまった。Intel製の無線LANモジュールなら標準でサポートされているから全く苦労しないのに。
まあそんなことは置いておいて、本題に入ってみる。

○ドライバの導入方法について

ubuntuで無線LANアダプタを利用する方法は次の4通りがある。

  1. 既にLinuxカーネルにドライバが組み込まれており、何もしなくても最初からLANアダプタを認識している。あとはアクセスポイントの接続設定をするだけ。
  2. 「追加のドライバー」でプロプライエタリなドライバをインストールする。
  3. Windows用のデバイスドライバをndiswrapperで組み込む。
  4. メーカーのサイトからLinux用ドライバーのソースコードをダウンロード、makeコマンドでインストールする。

1.はIntel製、2.はBroadcom製の無線LANアダプタが当てはまる。
残念ながらBuffaloはLinux用のドライバを提供していないため、1や2の方法は当てはまらない。
そこでまずは3の方法を試してみる。

○ndiswrapperでWindowsドライバを使う

1. Buffaloのサイトからエアナビゲータライトをダウンロード。
ダブルクリックで開くと適当な場所にファイルが展開される。インストール画面が出たらキャンセルする。

2. デバイスマネージャを開いて使用している無線LANアダプタのプロパティを開き、「詳細」タブを開いてプロパティから「ハードウェアID」を選択する。
値に「VID_xxxx」「PID_xxxx」とあるので、この2つをメモしておく。(VID=Vendor ID、PID=Product ID)
この画面の場合はVIDが0411、PIDが01A8となる。
(※ubuntu上ではlsusbコマンドでUSB機器のデバイス名とVID、PIDの一覧を照会できる。)
Buffalo WLI-UC-G300HP Wireless LAN Adapterのプロパティ

3. エアナビゲータライトは多数の製品のドライバを同梱しているため、どれを用いるのかを絞り込む必要がある。
エアナビゲータライトを展開したフォルダーに対して、Grepなどのファイル内テキスト検索を用いてPIDを検索する。画面例ではEmEditorの「ファイルから検索」機能を使っている。
ファイルから検索

4. infファイルを絞り込めたら、そのinfファイルと同じフォルダーにあるsysファイルを一緒に、ubuntuに持って行く。

5. ubuntu上でSynapticパッケージマネージャやaptitudeなどでパッケージ ndiswrapper-commonndiswrapper-utils-1.9ndisgtk をインストールする。

6. アプリケーションから「Windows用無線LANドライバ」を開く。
無線LANドライバ

7. 「追加」ボタンをクリック。先ほど持ってきたinfファイルを開く。(このとき同じディレクトリに*.sysなどの必要なファイルが揃っていなければならない。)
ドライバのインストール

認識に成功すれば組み込んだ時点で右上のネットワークのアイコンが変化するはずなのだが、どうもうまくいかない...orz
結局あきらめてndiswrapperは削除した。

○手動でドライバをインストール

WLI-UC-G300HPではRaLink Technologyという会社のチップが使われているらしい。しかし詳しい型まではわからない。USB子機をかち割って確かめるわけにはいかないので、適当にこれだと思ったものを入れてみる。

1. RaLink TechnologyのサポートページからLinux用ドライバをダウンロード入手する。
今回は「RT8070 /RT3070 /RT3370 /RT5370 /RT5372 USB」(2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2)をダウンロードした。
Ralink-A MEDIATEK download  linux driver

2. ダウンロードしたファイルを展開する。
展開したディレクトリの中のos/linux/config.mkをGEditなどのエディタで開く。
「HAS_WPA_SUPPLICANT=n」を「HAS_WPA_SUPPLICANT=y」に、
「HAS_NATIVE_WPA_SUPPILICANT_SUPPORT=n」を「HAS_NATIVE_WPA_SUPPILICANT_SUPPORT=y」に書き換える。
config.mk - GEdit

3. 次に、展開したディレクトリの中のcommon/rtusb_dev_id.cをエディタで開く。
#ifdef RT3070 - #endifで囲んだ部分に「{USB_DEVICE(0x0411,0x01A8)},」を追加する。もちろん0x0411,0x01A8は先ほどメモしたVIDとPID。
rtusb_dev_id.c - GEdit

4. ドライバをインストールする。
具体的には、端末を起動して

$ cd ~/デスクトップ/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO
$ sudo make
$ sudo make install

5. モジュールをカーネルに登録する

$ sudo insmod rt5370sta

問題が無ければこのコマンドを実行した後すぐに無線LANが使用できるようになる。GNOMEネットワークマネージャーなどで接続の設定を行う。

普通ならこれでいいはずなんだが、再起動するとなぜか無線LANを認識していない。
起動ログをgrepしても何もヒットしない。ちゃんと組み込まれているか「modprobe -l」で確認してみる。

$ modprobe -l|grep "rt5370sta"
kernel/drivers/net/wireless/rt5370sta.ko
$ ls /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt5370sta.ko
/lib/modules/3.2.0-24-generic/kernel/drivers/net/wireless/rt5370sta.ko
$

設定の方は問題なさそう。試しにもう一度端末上で「sudo insmod rt5370sta」を実行すると、今度は無線LANが使えるようになる。
でも毎度端末を起動してコマンドを入れるのは面倒だ。そこで次のようにする。

6. root権限でエディタを起動して/etc/modulesを開く、(「gksudo gedit /etc/modules」を実行。)
新しい行に「rt5370sta」を加える。
modules - GEdit
これで起動時に自動でデバイスドライバが読み込まれるようになる。

○参考資料


○追記

いろいろと試してみましたが、結局のところ無線LANの接続は安定しませんでした。デスクトップPCをお使いの方はminiPCIe-PCIe変換アダプタを通してIntel製Wi-Fiモジュールを取り付けるか、WLI-UTX-AG300/CなどのLANケーブル接続タイプの無線LANアダプタを使用することを推奨します。

[EOF]


旧ブログでのコメント

AUTHOR: Mai Phuoc Loc
URL:
DATE: 2012/08/01 00:14:46
分かりません。
すみません。
私はベトナム人です。
エート、「ndiswrapperでWindowsドライバを使う」と書きました。分かりません。英語でかいてください。
私のメールは「」です。
ありがとう。

AUTHOR: akm
URL:
DATE: 2012/08/01 01:42:00
To Mai Phuoc Loc.
当サイトをご覧頂きありがとうございます。
ごめんなさい。私は英語を読むことはできますが、書くことは苦手です。
このページを使ってみて下さい。
http://translate.google.com/
------------------------------------
Thank you for visiting my site.
I'm sorry. I can read English a little, but I'm not good at writing in English.
Try this page.
http://translate.google.com/

AUTHOR: yuki
URL:
DATE: 2014/01/13 20:13:22
感謝
ありがとうございます!!
リナックス初心者ですが、Ubuntu 13.10で無事接続できました!

WLI-UC-GNHPは何もすることなく接続できるのですが、せっかくもっているのだからとWLI-UC-G300HP を使いたく調べておりました。しかしながら別の方の記事を参考にやっていっても記事が古いため、落としたデータのファイル構成が違い、IDを追加するファイルの中にそれらしき記述が見つからず困っておりました。
こちらで「common/rtusb_dev_id.c」のファイルにあると記事でわかり、あっけないほどに作業終了しました。

「手動でドライバをインストール」の1~4で認識し、その状態で再起動しても自動で認識いたしました。
ちなみに落としたファイルは”DPO_RT5572_LinuxSTA_2.6.1.3_20121022.tar.bz2”でした。

本当にありがとうございましたm(__)m


※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい。コメントはスパム防止フィルターによる承認制のため、投稿してもすぐに反映されない場合があります。

管理人 : Akamaki (akm)

は、PCとVTuberに夢中になっている電気技術者です。

私はレトロコンピューティングの愛好家ですが、そのようなリグはもう収集していません。

私の活動はトップページで見ることができます。読んでくれてありがとう!