2012年7月20日金曜日

【.tested】Logitec LAN-W300AN/U2 LAN-W450AN/U2 無線LANアダプタ [AX3][A6]



Logitec LAN-W300AN/U2およびLAN-W450AN/U2は、802.11b/g/nおよび5Ghz帯の802.11a/nに対応したUSB無線LANアダプタです。
Openblocks AX3およびA6での動作検証を行いました。


OBDN技術ブログによる動作検証は、該当するデバイスの動作を保証およびサポートを行うものではありません。
内容に関するご指摘などありましたら、ブログ記事の担当までご連絡下さい。

<検証環境>

OpenBlocks AX3/4 Debian 6.0 kernel: 3.0.6
OpenBlocks A6 Debian 6.0 kernel: 2.6.31.8

1. 対応ドライバと事前準備

当該デバイスは、Ralink社のWebページの情報から推測するにRT5572を使用していると考えられます。
本デバイスは、AX3の標準リリースカーネルであるkernel-3.0.6および、A6の標準リリースカーネルであるkernel-2.6.31のソースコードパッケージではサポートされていません。
そのため、ralink社のWebページより、ドライバのソースコードパッケージを入手し、ビルドして検証を行いました。

Ralink-A MEDIATEK COMPANY

# bzip2 -d DPO_RT5572_LinuxSTA_2.6.0.1_20120629.tar.bz2.bz2
# tar xvzf DPO_RT5572_LinuxSTA_2.6.0.1_20120629.tar.bz2

(ダウンロードしたドライバはパッケージングの不具合によるのか、上記の名前になっていました。)

ただし、このソースコードは、当該デバイスの登録がされていないこと、wpa_supplicantへの対応ががデフォルトでnになっていることに加え、AX3ではkernel2.4もしくは2.6をベースとしたパッケージであるため若干のパッチが必要となりました。
パッチに関しては、以下のサイトより情報を得ています。

BERNAERTS Family site : Ubuntu 12.04 - Install DLink DWA-160 B2 wifi adapter

以下、作業は展開したソースコードの場所を基準にしています。
修正箇所は以下の通りです。

./common/rtusb_dev_id.c ( AX3/A6 )

...
#ifdef RT5572
        {USB_DEVICE(0x148F,0x5572)}, /* Ralink 5572 */
        {USB_DEVICE(0x043E,0x7A32)}, /* Arcadyan */
        {USB_DEVICE(0x2001,0x3C1A)}, /* D-Link DWA-160B2 */
        {USB_DEVICE(0x0789,0x016b)}, /* Logitec LAN-W450AN/U2 */
        {USB_DEVICE(0x0789,0x0170)}, /* Logitec LAN-W300AN/U2 */
#endif /* RT5572 */
...

./os/linux/config.mk ( AX3/A6 )

...
# Support Wpa_Supplicant
HAS_WPA_SUPPLICANT=y
# Support Native WpaSupplicant for Network Manger
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
...

./common/cmm_mac_usb.c ( AX3のみ )

...
#ifdef RTMP_MAC_USB
#define usb_buffer_alloc(a, b, c, d) usb_alloc_coherent(a, b, c, d)
#define usb_buffer_free(a, b, c, d) usb_free_coherent(a, b, c, d)
#include "rt_config.h"
...

上記修正を行い、makeします。
makeが正常に終わりましたら、ドライバをインストールします。

# make install

上記操作で再起動すればモジュールは自動的に組み込まれますが、そのままテストをする場合は、

# cd os/linux
# insmod rt5572sta.ko

として手動で組み込んでみてください。
dmesgの結果は以下の通りです。

rtusb init rt2870 --->


=== pAd = e0969000, size = 554976 ===

<-- RTMPAllocAdapterBlock, Status=0
(Reassign Efuse for 3x7x/3x9x/53xx) Size=0x3c [3c0-3fb]
NVM is EFUSE
usbcore: registered new interface driver rt2870

ifconfigコマンドによりデバイスを確認します。

# ifconfig ra0
ra0       Link encap:Ethernet  HWaddr 00:01:8e:5a:88:1f
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:23264 errors:9 dropped:0 overruns:0 frame:0
          TX packets:168 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5839433 (5.5 MiB)  TX bytes:11976 (11.6 KiB)

2. wpasupplicantパッケージの導入

wpasupplicantパッケージの導入に関しては以下の記事を参照して下さい。

【.tested】Logitec LAN-W150N/U2WH(BK) 無線LANアダプタ [AX3]

3. インターフェースの設定


インターフェースの設定は、/etc/network/interfacesに、以下の行を追加します。

auto ra0
iface ra0 inet dhcp
wpa-conf        /etc/wpa_supplicant/wpa_supplicant.conf

インタフェースを立ち上げて動作を確認します。

# ifup ra0
# ifconfig ra0
ra0       Link encap:Ethernet  HWaddr 00:01:8e:5a:88:1f
          inet addr:192.168.10.64  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::201:8eff:fe5a:881f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:23430 errors:9 dropped:0 overruns:0 frame:0
          TX packets:213 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5879860 (5.6 MiB)  TX bytes:16993 (16.5 KiB)

上記の作業により、該当するデバイスは動作します。
ただし、現状、このドライバを使用すると、頻繁に、"Err;FC.ToDs"というエラーをコンソールに吐き出します。
コンソールでの作業の妨げとなりますので、なんらかの対策が必要かと考えます。
ralink社のUSB Wifiアダプタは、一般的にはカーネルに組み込まれたrt2800usbを使えということなのですが、現行のkernelのバージョンでは対応していませんので、一過的な対応とお考え下さい。



[PR]

0 件のコメント:

コメントを投稿