ArmadilloでRalink Chipの無線LANアダプタを利用する方法について説明する。 対象とするのは、比較的ポピュラーな Ralink Chipを(RT3070/RT3370/RT5370/RT5372系チップ) 搭載したUSB無線LANインターフェース。
Armadillo-440用のデフォルトのカーネル (linux-a400-1.09.bin.gz) では無線LANに関するオプションが有効になっていないため、無線LANを有効にしカーネルの再コンパイルが必要となる。
上のようなカーネルの設定画面が表示されたら、下記の無線LANデバイスに関するオプションにチェックをつける。
Exitしてカーネルの設定メニューを抜ける。
カーネルの設定画面を抜けると、ユーザランドの設定画面が起動する。
Network Applicationsの設定に入り、下の方の hostap にチェックをいれる。すると、更に下層のメニューが開くので、wpa_supplicant にチェックを入れる。
この他
などのWLAN関係のツールがチェックされていることを念のため確認。
以上が終わったらExitで抜ける。
このままmakeを行うと、madwifi関係のコンパイルでエラーになるため、user/hostap/wpa_supplicant/.config の設定を変更する。
$ vi user/hostap/wpa_supplicant/.config
として、以下のように CONFIG_DRIVER_MADWIFI=y をコメントアウトする。
# Driver interface for madwifi driver #CONFIG_DRIVER_MADWIFI=y # Change include directories to match with the local setup CFLAGS += -I$(ROOTDIR)/$(LINUXDIR)/drivers/net/wireless/madwifi
以上が終了したら、コンパイルを行います。 atmark-dist 直下のディレクトリで make clean と make を行います。 以前コンパイルしたオブジェクトファイルなどが残っている場合があるので、make clean は必ず行ってください。 コンパイルはPCの性能にもよりますが、数分から十数分かかります。
atmark@atde3:~/work/atmarkdist/atmark-dist$ make make -C tools/sg-cksum make[1]: ディレクトリ `/home/atmark/work/atmarkdist/atmark-dist/tools/sg-cksum' に入ります : 数分から十数分 : /home/atmark/work/atmarkdist/atmark-dist/tools/cksum -b -o 2 /home/atmark/work/atmarkdist/atmark-dist/images/linux.bin.gz >> /home/atmark/work/atmarkdist/atmark-dist/images/linux.bin.gz make[1]: ディレクトリ `/home/atmark/work/atmarkdist/atmark-dist/vendors/AtmarkTechno/Armadillo-440' から出ます atmark@atde3:~/work/atmarkdist/atmark-dist$
Ralinkのサイトからドライバのソースコードをダウンロードする。
以下に、Ralinkチップを使用したUSB無線LANデバイスのリストを示す。
RT3070/RT3370/RT5370/RT5372系チップ用ドライバは以下からダウンロード可能。
メーカー | 型番 | VID:PID | Chip |
RT8070系チップ | |||
BUFFALO | WLI-UC-GNM | 0411:01a2 | RT8070V |
LOGITEC | LAN-GMW/DS | 0789:0168 | RT8070V |
LOGITEC | LAN-GMW/PSP | 0789:0168 | RT8070V |
LOGITEC | LAN-W150N/U2 | 0789:0164 | RT8070V |
RT3070系チップ | |||
PLANEX | GW-USMicroN | 2019:ED14 | RT3070L |
PLANEX | GW-USMicroN-G | 2019:ED14 | RT3070L |
PLANEX | GW-USMicro300 | 2019:AB29 | RT3072L |
Logitec | LAN-W150N/U2DS | 0789:0164 | RT3070? |
Logitec | LAN-WN11/U2 | 0789:0164 | RT3070L |
BUFFALO | WLI-UC-GN | 0411:015D | RT3070L |
BUFFALO | WLI-UC-GNHP | 0411:0158 | RT3070L |
BUFFALO | WLI-UC-GNP | 0411:019E | RT3070L |
BUFFALO | WLI-UC-GNT | 0411:015D | RT3070L |
BUFFALO | WLI-UC-GNM | 0411:01A2 | RT3070L? |
BUFFALO | WLI-UC-GNM2 | 0411:01A2 | RT3070L? |
BUFFALO | WLI-UC-GNM2R | 0411:01A2 | RT3070L? |
BUFFALO | WLI-UC-G301N | 0411:01A2 | RT3070L? |
IODATA | WN-G150U | 04BB:0947 | RT3070 |
RT3370系チップ | |||
BUFFALO | WLI-UC-G300N | 0411:00E8 | RT3370 |
BUFFALO | WLI-UC-G300HP | 0411:0148 | RT3370 |
BUFFALO | WLI-UC-GNHP | 0411:0158 | RT3370 |
BUFFALO | WLI-UC-GN | 0411:015D | RT3370 |
BUFFALO | WLI-UC-GNP | 0411:019E | RT3370 |
BUFFALO | WLI-UC-GNM | 0411:01A2 | RT3370 |
Logitec | LAN-W300N/U2 | 0789:0166 | RT3370 |
PLANEX | GW-USMini2N | 2019:AB25 | RT3370 |
RT5370系チップ | |||
BUFFALO | WLI-UC-G300N | 0411:00E8 | RT5370 |
BUFFALO | WLI-UC-AG300N | 0411:012E | RT5370 |
BUFFALO | WLI-UC-G300HP | 0411:0148 | RT5370 |
BUFFALO | WLI-UC-GNHP | 0411:0158 | RT5370 |
BUFFALO | WLI-UC-GN | 0411:015D | RT5370 |
BUFFALO | WLI-UC-GNP | 0411:019E | RT5370 |
BUFFALO | WLI-UC-GNM | 0411:01A2 | RT5370 |
Logitec | LAN-W300N/U2 | 0789:0166 | RT5370 |
PLANEX | GW-USMini2N | 2019:AB25 | RT5370 |
RT2800系チップ用ドライバは以下からダウンロード可能。RT3070/RT3370/RT5370/RT5372系チップ用ドライバで動作するとの情報もあるが詳細は不明。
http://www.ralinktech.com/en/04_support/license.php?sn=5021
メーカー | 型番 | VID:PID | Chip |
RT2800系チップ | |||
BUFFALO | WLI-UC-G300N | 0411:00E8 | RT2800 |
BUFFALO | WLI-UC-AG300N | 0411:012E | RT2800 |
BUFFALO | WLI-UC-G300HP | 0411:0148 | RT2800 |
BUFFALO | WLP-UC-AG300 | 0411:0150 | RT2800 |
BUFFALO | WLI-UC-GNHP | 0411:0158 | RT2800 |
BUFFALO | WLI-UC-GN | 0411:015D | RT2800 |
BUFFALO | WLI-UC-G301N | 0411:016F | RT2800 |
BUFFALO | WLI-UC-GNM | 0411:01A2 | RT2800 |
Logitec | LAN-WN22/U2 | 0789:0162 | RT2800 |
Logitec | LAN-WN12/U2 | 0789:0163 | RT2800 |
Logitec | LAN-W150/U2M | 0789:0164 | RT2800 |
Logitec | LAN-W300N/U2 | 0789:0166 | RT2800 |
Logitec | LAN-W150N/U2 | 0789:0168 | RT2800 |
Corega | CG-WLUSB2GNL | 07AA:002F | RT2800 |
Corega | CG-WLUSB2GNL | 07AA:003C | RT2800 |
Corega | CG-WLUSB300AGN | 07AA:003F | RT2800 |
Corega | CG-WLUSB300GNS | 07AA:0041 | RT2800 |
Corega | CG-WLUSB300GNM | 07AA:0042 | RT2800 |
PLANEX | GW-US300MiniS | 2019:AB24 | RT2800 |
PLANEX | GW-USMini2N | 2019:AB25 | RT2800 |
PLANEX | GW-US300MiniW | 2019:ED06 | RT2800 |
RT2870系チップ | |||
エレコム | LAN-W150N/U2KT | 0789:0168 | RT2870 |
BUFFALO | WLI-UC-G300N | 0411:00E8 | RT2870 |
Logitec | LAN-WN22/U2 | 0789:0162 | RT2870 |
Logitec | LAN-WN12/U2 | 0789:0163 | RT2870 |
Logitec | W150/U2M | 0789:0164 | RT2870 |
Corega | CG-WLUSB2GNL | 07AA:002F | RT2870 |
Corega | CG-WLUSB2GNL | 07AA:003C | RT2870 |
Corega | CG-WLUSB300AGN | 07AA:003F | RT2870 |
PLANEX | GW-USMini2N | 2019:AB25 | RT2870 |
PLANEX | GW-US300Mini | 2019:ED06 | RT2870 |
PLANEX | GW-USMicroN | 2019:ED14 | RT2870 |
ダウンロードしたソースをatmark-distと同じディレクトリに展開する。 なお、ダウンロードしたソースはファイル名の拡張子がbz2のみになっているが実際はtar.bz2圧縮である。
$ tar xvjf 2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2 $ mv 2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO RT3070 // ディレクトリ名が長いので修正 $ cd RT3070
を当てる。
$ wget http://aaaaa/RT3070.patch $ patch -p1 < RT3070.patch
makeする。 atmark-dist と同じディレクトリ以外に展開した場合、環境変数 ATMARKDIST_DIRに設定してmakeする必要がある。 以下の例では、atmark-dist が /home/atmark/work/atmark-dist にあると仮定している。
$ ATMARKDIST_DIR=/home/atmark/work/atmark-dist make $ ATMARKDIST_DIR=/home/atmark/work/atmark-dist make install
これにより、atmark-dist/romfs以下のディレクトリにカーネルモジュール (rt5370sta.ko) と設定ファイル (RT2830STA.dat) が保存される。
Armadilloに書き込むための romfs イメージを再度作成する。
$ cd /home/atmark/work/atmark-dist $ make image $ ls -al images 合計 45300 drwxr-xr-x 2 atmark atmark 4096 2012-08-12 11:46 . drwxr-xr-x 15 atmark atmark 4096 2012-08-13 01:26 .. -rwxr-xr-x 1 atmark atmark 3626594 2012-08-12 15:54 linux.bin -rw-r--r-- 1 atmark atmark 1769841 2012-08-12 15:54 linux.bin.gz -rw-r--r-- 1 atmark atmark 29314085 2012-08-12 15:54 romfs.img -rw-r--r-- 1 atmark atmark 11603547 2012-08-12 15:54 romfs.img.gz
カーネル linux.bin.gz およびユーザランド romfs.img.gz
hermitなどを立ち上げてromfs.img.gz をユーザランドにダウンロードする。 詳細については、アットマークテクノの以下のページを参照してください。
# wpa_passphrase <SSID>
により、パスフレーズ入力プロンプトが表示されるので、パスフレーズを入力すると以下のように暗号化された psk のキーが出力される。
# wpa_passphrase HOGE # reading passphrase from stdin 4332221111 network={ ssid="HOGE #psk="4332221111" psk=b7752c14f1586911c99a4bbce1ad3921f5bbbb9e62a05dcc8f7be6fae8c2fca5
無線LAN用に /etc/config/interfaces を以下のように修正する。
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) auto lo ra0 iface lo inet loopback #iface eth0 inet dhcp iface ra0 inet dhcp pre-up modprobe rt5370sta wpa-ssid MARISA wpa-psk b7752c24f1586911c99a4bbce1ad3921f5bbbb9e62a05dcc8f7be6fae8c2fca5 scan_ssid 0 ap_scan 11
さらに、flatfsd で変更された interfaces ファイルを flatfsd で config 領域に保存する。
# flatfsd -s
再起動し無線LANが動作していることを確認する。
Configuring network interfaces: Using /lib/modules/2.6.26-at16/kernel/drivers/net/wireless/rt5370sta.ko rtusb init rt2870 ---> usbcore: registered new interface driver rt2870 no /sbin/wpa_supplicant found; none killed. ioctl[SIOCSIWPMKSA]: Network is down ioctl[SIOCSIWMODE]: Network is down Could not configure driver to use managed mode 0x1300 = 00064300 ioctl[SIOCSIWAUTH]: Operation not supported WEXT auth param 4 value 0x0 - udhcpc (v0.9.9-pre) started Sending discover... Sending discover... Sending discover... Sending select for 192.168.11.16... Lease of 192.168.11.16 obtained, lease time 86400 done Starting inetd: done
ログイン後、iwconfig, ifconfig などで動作状況を確認できる。
# iwconfig ra0 ra0 Ralink STA ESSID:"MARISA" Nickname:"RT2870STA" Mode:Managed Frequency=2.437 GHz Access Point: 00:3A:9D:DC:7C:6A Bit Rate=270 Mb/s RTS thr:off Fragment thr:off Encryption key:BA10-1A03-2808-3D5E-1F43-2A50-BF10-25A7 Security mode:open Link Quality=100/100 Signal level:-53 dBm Noise level:-74 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 # ifcnofig ra0 ra0 Link encap:Ethernet HWaddr 00:22:CF:41:6F:4D inet addr:192.168.11.16 Bcast:192.168.11.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:658590 (643.1 KiB) TX bytes:50439 (49.2 KiB)
何らかの理由でモジュールがロードできていない場合、無線LANデバイスは使用できない。
# lsmod (ロードされているモジュールを見る) Module Size Used by Not tainted rt5370sta 752944 1 - Live 0xbf000000
もし、rt5370sta モジュールがロードされていない場合、手動でロードしてみる。
# modprobe rt5370sta または # insmod /lib/modules/2.6.26-at16/kernel/drivers/net/wireless/rt5370sta.ko
モジュールがロードされているのにに、ネットワーク・インターフェース ra0 が起動しない場合、手動で起動してみる。
# ifconfig ra0 up # ifconfig ra0 ra0 Link encap:Ethernet HWaddr 00:22:CF:41:6F:4D inet addr:192.168.11.16 Bcast:192.168.11.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:658590 (643.1 KiB) TX bytes:50439 (49.2 KiB)
ネットワークインターフェースが割り当てられない場合、手動でDHCPクライアントを起動してみる。
# udhcpc -b -p /var/run/udhcpc.ra0.pid -i ra0
この節で使用したファイルを以下からダウンロードできます。
ファイル名 (サイズ) | 説明 | 日付 |
ドライバ設定: カーネルモジュール | ||
rt3070_mod_linux.bin.gz 1,765,638 bytes |
CDC ACM, RT3070系ドライバを組み込んだArmadillo-440用カーネルイメージ。 CMSのシステムの都合上ファイル名が linux.bin_.gz となっています。 |
2012.08.19 |
rt3070_mod_romfs.img.gz 11,594,936 bytes |
CDC ACM, RT3070系ドライバを組み込んだArmadillo-440用ユーザランドイメージ。 CMSのシステムの都合上ファイル名が romfs.img_.gz となっています。 |
2012.08.19 |
rt3070_configs.tar.gz 19,440 bytes |
上記設定をしたLinuxカーネル設定ファイル。 | 2012.08.19 |