Howto

Armadilloで11n 対応のUSB無線LANモジュール(GW-USMicroN)を使う

802.11n (Draft2.0) 対応の USB 無線 LAN モジュール(GW-USMicroN)を Armadillo で使用する方法を説明します。60 Mbps ほどの転送速度(Armadillo-500 の場合)が必要な場合は、ぜひお試しください。

おおまかな手順は下記のようになります。

  1. Linux カーネルのフレームバッファドライバーの削除とコンパイル
  2. 無線 LAN ドライバーのコンパイル
  3. 無線 LAN ドライバーのインストール
  4. 無線 LAN の設定
  5. 無線 LAN ドライバーの登録
  6. ネットワークの設定

Armadillo-220, Armadillo-240 で利用した環境は以下となります。

Armadillo-420, Armadillo-440 で利用した環境は以下となります。

Armadillo-500 開発ポート で利用した環境は以下となります。

2010年07月01日現在では、Ralink 社の Web サイトからダウンロードできる USB 無線 LAN モジュールドライバーの最新バージョンは v2.4.0.0 となっています。ですが、最新バージョンでは、GW-USMicroN のチップセット用のソースコードが削除されているため使用できません。そのため、この Howto ではバージョン v1.4.0.0 を使用しました。

以降の説明では、USB 無線 LAN モジュールドライバーを無線 LAN ドライバーと表記します。

この Howto で作成したファイルは、Appendix B. ファイルからダウンロードできます。

1. Linux カーネルのフレームバッファドライバーの削除とコンパイル

Armadillo-240 の標準イメージでは、無線 LAN ドライバーが必要とする連続したメモリ領域が不足するため、GW-USMicroN を使用できません。 連続したメモリ領域を多く使用するフレームバッファドライバーを削除することで、GW-USMicroN を使えるようになります。

Armadillo-220, 420, 440, 500 をご使用の場合は、この章の手順は必要ありません。次の「2. 無線 LAN ドライバーのコンパイル」に進んでください。

フレームバッファドライバーを削除した Linux カーネルイメージを作成する方法を以下に示します。

まずは、Armadillo-200 シリーズ ソフトウェアマニュアル8.1.1. ソースコードの準備8.1.2. コンフィグレーションの手順を行います。

次に、make menuconfig を実行します。

[PC ~/atmark-dist/]$ make menuconfig

Main Menu では以下のように選択します。

Main Menu

Kernel/Library/Defaults Selection --->
  --- Kernel is linux-2.6.x
  (default) Cross-dev
  (None) Libc Version
  [ ] Default all settings
  [*] Customize Kernel Settings       ←チェックを入れる
  [ ] Customize Vendor/User Settings
  [ ] Update Default Vendor Settings

Linux Kernel Configuration では以下のように設定します。

Linux Kernel Configuration

Device Drivers  --->
  Graphics support  --->
    < > Support for frame buffer devices           ←チェックを外す

make を実行し、新しい Linux カーネルイメージを作成します。

[PC ~/atmark-dist/]$ make

ソフトウェアマニュアルを参照し、新しい Linux カーネルイメージを Armadillo に書き込んでください。

2. 無線 LAN ドライバーのコンパイル

この章では、無線 LAN ドライバーのソースコードの修正内容とコンパイル方法について説明します。

2.1. 無線 LAN ドライバーの修正

無線 LAN ドライバーのソースコードをダウンロードし、修正します。

[PC ~/]$ wget http://download.atmark-techno.com/sample/11n-wlan-usb-module/2008_0925_RT2870_Linux_STA_v1.4.0.0.tar.bz2
[PC ~/]$ tar jxvf 2008_0925_RT2870_Linux_STA_v1.4.0.0.tar.bz2
[PC ~/]$ cd 2008_0925_RT2870_Linux_STA_v1.4.0.0/

Makefile を以下のように変更します。

#PLATFORM=PC                                          ←コメントアウト

[...]

#PLATFORM = CAVM_OCTEON
PLATFORM = ARMADILLO                                  ←追加

ifeq ($(PLATFORM),ARMADILLO)                          ←追加
LINUX_SRC = /home/atmark/atmark-dist/linux-2.6.x      ←追加
CROSS_COMPILE = /usr/bin/arm-linux-                   ←追加
endif                                                 ←追加

[...]

#       cp -f $(RT28xx_DIR)/os/linux/rt$(CHIPSET)sta.ko /tftpboot    ←コメントアウト

(*)LINUX_SRC のパスはご使用の環境に合わせて読み替えてください。
(*)Armadillo-420, 440 をお使いの場合はCROSS_COMPILE = /usr/bin/arm-linux-gnueabi- に読み替えてください。

os/linux/config.mk を以下のように変更します。

# move to Makefile outside LINUX_SRC := /opt/star/kernel/linux-2.4.27-star
 
ifeq ($(PLATFORM),ARMADILLO)                          ←追加
EXTRA_CFLAGS := $(WFLAGS) -I$(RT28xx_DIR)/include -O3 ←追加
endif                                                 ←追加

include/rt2870.h に GW-USMicroN の Vendor/Product 情報を追加します。

#define RT2870_USB_DEVICES      \
[...]
     {USB_DEVICE(0x2019,0xED06)}, /* Planex Communications, Inc. */        \
     {USB_DEVICE(0x2019,0xAB25)}, /* Planex Communications, Inc. RT3070 */    \
    {USB_DEVICE(0x2019,0xed14)}, /* Planex GW-USMicroN */                    \  ←追加

上記の変更のパッチをダウンロードできます。

2.2. 無線 LAN ドライバーのデバッグメッセージの抑制

Armadillo-220, 240 をご使用の場合は、ネットワークインターフェースを有効にした時に、ドライバーのデバッグメッセージ("#"の文字)がコンソールに非常に多く出力されます。 このため、デバッグメッセージを抑制するためのソースコードの変更が必要です。

Armadillo-420, 440, 500 をご使用の場合は、この章の手順は必要ありません。

include/rt2870.h の以下の行を変更します。この変更はデバッグメッセージを抑制するための変更で、デバッグメッセージが出力されないことを保証するものではありません。

#define CONTROL_TIMEOUT_JIFFIES ( (100 * HZ) / 1000 * 2)    ←変更

上記の変更のパッチをダウンロードできます。

2.3. 無線 LAN ドライバーのコンパイル

make を実行し、無線 LAN ドライバーを作成します。

[PC ~/]$ make

3. 無線 LAN ドライバーのインストール

コンパイル済みの無線 LAN ドライバー(os/linux/rt2870sta.ko)と設定ファイルテンプレート(RT2870STA.dat)を Armadillo の以下のディレクトリに配置します。

ホスト上のファイル Armadillo 上のディレクトリ
os/linux/rt2870sta.ko /lib/module/[kernel_verion]/net/
RT2870STA.dat /etc/Wireless/RT2870STA/

[kernel_version] には Linux カーネルのバージョンを入れてください。Linux カーネルのバージョンは "uname -r" コマンドで確認できます。

コンパイル済みの無線 LAN ドライバーと設定ファイルテンプレートは Appendix B.2. コンパイル済み無線 LAN ドライバー、設定ファイルテンプレートからダウンロードできます。

4. 無線 LAN の設定

この章からは、Armadillo 上での作業になります。

/etc/Wireless/RT2870STA/RT2870STA.dat を無線 LAN ネットワーク環境に合わせて設定します。WPA-PSK を利用する場合の設定例は以下の通りです。

SSID=my-essid
AuthMode=WPAPSK
EncrypType=AES
WPAPSK=my-preshared-key

RT2870STA.dat の設定項目の詳細については、README_STA をご参照ください。

5. 無線 LAN ドライバーの登録

無線 LAN ドライバーを Linux カーネルに登録します。

[armadillo ~]# insmod /lib/modules/$(uname -r)/net/rt2870sta.ko
Using rt2870sta.ko                                                              
rtusb init --->                                                                 
usbcore: registered new interface driver rt2870                                 
[armadillo ~]# usb 1-1: new high speed USB device using fsl-ehci and address 2                                      
usb 1-1: configuration #1 chosen from 1 choice
[...]

6. ネットワークの設定

GW-USMicroN のネットワークインターフェースを有効にします。

[armadillo ~]# ifconfig ra0 up

以降は、通常のネットワークデバイスと同様に IP アドレスの設定などを行います。また、iwconfig や iwscan コマンドを利用して無線 LAN 接続の状態確認や管理ができます。

以上で、Armadillo で GW-USMicroN を使う手順は終了です。

Appendix A. スループット

NPtcp を使用して転送速度を測定したところ、結果は以下のようになりました。 測定には、無線 LAN 接続の環境として1メートル程度離れている 802.11n 対応アクセスポイント(BUFFALO エアステーション エヌフィニティ Giga[WZR-AGL300NH])を使用しました。

ポート 受信最大転送速度 送信最大転送速度
Armadillo-220 USB Full-Speed 約 3.69 Mbps 約 3.70 Mbps
Armadillo-240 USB Full-Speed 約 3.70 Mbps 約 3.71 Mbps
Armadillo-420 USB Hi-Speed 約 37.2 Mbps 約 37.05 Mbps
Armadillo-420 USB Full-Speed 約 5.79 Mbps 約 5.80 Mbps
Armadillo-440 USB Hi-Speed 約 38.04 Mbps 約 37.04 Mbps
Armadillo-440 USB Full-Speed 約 5.75 Mbps 約 5.72 Mbps
Armadillo-500 USB Hi-Speed 約 58.63 Mbps 約 59.23 Mbps
Armadillo-500 USB Full-Speed 約 5.54 Mbps 約 5.54 Mbps

Appendix B. ファイル

Appendix B.1. Linux カーネルイメージ、ユーザーランドイメージ

この Howto の内容を簡単に試すことができるように、3. 無線 LAN ドライバーのインストールまでの手順で作成したファイルを含んだイメージを作成しました。作成した Linux カーネルイメージとユーザーランドイメージは以下からダウンロードできます。

以下のイメージを使用する場合は、4. 無線 LAN の設定からの手順を行います。

Armadillo-220

Armadillo-240

Armadillo-420, Armadillo-440

Armadillo-500

ユーザランドには以下のファイルが組み込まれています。

  • RT2870STA.dat (/etc/Wireless/RT2870STAに配置)
  • rt2870sta.ko (/lib/modules/[kernel_version]/netに配置)

Appendix B.2. コンパイル済み無線 LAN ドライバー、設定ファイルテンプレート

コンパイル済みの無線 LAN ドライバー、設定ファイルテンプレートは以下からダウンロードできます。

  • Armadillo-220、Armadillo-240 無線 LAN ドライバー :rt2870sta.ko
  • Armadillo-420、Armadillo-440 無線 LAN ドライバー :rt2870sta.ko
  • Armadillo-500 無線 LAN ドライバー :rt2870sta.ko
  • 設定ファイルテンプレート :RT2870STA.dat