印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
HardwareLinux Linux で無線 LAN の成功と挫折: デバイスドライバの導入

Vine Linux 4.2 のマシンに,無線 LAN USB アダプタ Buffalo WLI-UC-GN を接続して通信できるようにしたい。まずはデバイスドライバを導入する。

■ ■ ■

はじめに

Linux マシンに接続できる安価な無線 LAN アダプタがあるという。アダプタに使用されているチップのメーカーが Linux 用のデバイスドライバを公開しているのだ。これはラッキー。早速やってみることにした。最終目標は,Linux マシンを無線ブリッジにすることである。

しかし,買った後でよくよく調べてみると,このアダプタでハマっている人がウジャウジャ! あっー,しまった! そして,私も見事にハマっていくのであった。

無線 LAN アダプタ

今回使用するのは,Buffalo WLI-UC-GN である。定価1300円。ビックカメラで購入した価格は1280円。ほとんど値引きがネェ〜。10%ポイント還元だったが,全額ポイント精算してしまったので,本当に1280円だった。同梱のセットアップシートに若干の問題があるようだが (WLI-UC-GN ってどうなの? : パソコントラブル出張修理・サポート日記),どうせ読まないので気にしないことにする。

このアダプタが使っているチップは Ralink corp. 社製。安いからか,他の製品にも多く使われているようだ。例えば,Buffalo WLI-UC-GNM, WLI-UC-GNP, WLI-UC-G300HP, Planex GW-USMicroN など。

使用環境

ドライバは Ralink corp. | Linux で公開されている。現時点での最新版は RT8070/RT3070/RT3370 USB 2.5.0.1 である。

インストールするのは Vine Linux 4.2 である。最新版は 5.2 であるが (Vine Linux),CD イメージからインストールしようとすると何故か失敗してしまう。バージョン 4.2 までは文字コードが EUC だったが,5.0 以降は UTF-8 になっている。この点もバージョンアップをためらう理由になっている。ただし,現在の主流が UTF-8 であることは確かである。

Vine Linux 4.2 を動かしているハードウェアは ThinkPad T22 である。このサイトのサーバとして以前使用していたマシンである (nlog(n): ThinkPad T22 に Vine Linux 3.1 をインストール)。無線 LAN アクセスポイントは corega CG-WLR300NNH である (nlog(n): CG-WLR300NNH を購入したがレビュー)。

ソフトウェアのバージョン

  • OS: Vine Linux 4.2 kernel-2.6.16-76.55vl4
  • Driver: Ralink RT8070/RT3070/RT3370 USB 2.5.0.1
  • WPA 認証: wpa_supplicant 0.4.8
  • USB 接続確認: lsusb (usbutils) 0.72

最初の自動認識

WLI-UC-GN を USB ポートに接続すると,自動認識が行われる。ただし,ドライバは orinoco_cs が選択され,インターフェースは eth1 となる。どちらも正しくない。そしてもちろん,正しく動作しない。

準備

コンパイルに kernel-devel パッケージ,デバイスの ID の確認に lsusb コマンドを使用するので,あらかじめインストールしておく。

# apt-get install kernel-devel
# apt-get install usbutils

lsusb は usbutils パッケージに入っている。

# lsusb
Bus 001 Device 002: ID 0411:015d MelCo., Inc.
Bus 001 Device 001: ID 0000:0000

デバイスのIDは「0411:015d」だということが分かる。表示されるメーカーは「メルコ」。いつから「メルコ」は「バッファロー」になったのだろう?

その他のデバイスの ID は Ubuntu10.10 と WLI-UC-G300HP - いわゆるおっさんのブログ - Yahoo!ブログ でまとめられている。

ドライバのインストール

ドライバのソースをダウンロードしたら,コンパイルしてインストールする。ありがたいことに,UbuntuとXLinkでレッツ狩猟生活!の通りにやればできるようになっている。

最初に躓くのがダウンロードしたファイルの圧縮形式である。ダウンロードしたファイルは 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO.tar.bz2 だが,bzip2 で圧縮されていない。正しくは gzip 形式なのでファイル名を変更してから展開する必要があるのだ。

$ mv 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO.tar.{bz2,gz}
$ tar zxf 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO.tar.gz

コンパイルからインストールまでは難なくいく。コンフィグレーションは次のファイルに格納される。

/etc/Wireless/RT2870STA/RT2870STA.dat

モジュールがインストールされたかは,lsmod で確認できる。

# lsmod | grep rt
parport_pc             30276  1
parport                38472  2 lp,parport_pc
gameport               19208  2 snd_cs46xx
rt3070sta             523900  1

リストに「rt3070sta」があれば成功である。

ハードウェアの認識

/etc/modprobe.conf に次の行を追加する。もし,USBアダプタが間違って認識されているのであれば,該当する行「alias eth1 orinoco_cs」を削除する。

alias ra0 rt3070sta

IPv6 を停止するなら,ついでに次の行を追加しておく (レッドハット | オープンソース・カンパニー)。

alias net-pf-10 off

ポート「ra0」のためのコンフィグレーションファイルを作る。例えば次のように作る。

# cat > /etc/sysconfig/network-scripts/ifcfg-ra0  << EOF
DEVICE=ra0
TYPE=Wireless
ONBOOT=yes
IPV6INIT=no
WIRELESS_MODE=Managed
EOF

「BOOTPROTO=dhcp」はタイミングが悪いようでうまく動作しないので,外してある。

再起動して,ポート「ra0」が応答ネットワークのポートとして動作していることになる。

$ ifconfig ra0

iwconfig を使って,近くにあるアクセスポイントが表示されれば,無線 LAN アダプタが動作していることになる。

$ iwconfig ra0 scan

追記: nlog(n): Linux で無線 LAN の成功と挫折: WPA Supplicant の導入 に続く。

Posted by n at 2011-05-10 23:49 | Edit | Comments (0) | Trackback(0)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?