Linuxでkai(wlan設定編) > rt3070sta > 設定例 > slackware-13.37 + GW-USMicroN

Total: - (Today: - Yesterday: - )
最終更新日 2011/06/04 00:42

Slackware 13.37でのXLinkKai用としてPLANEX GW-USMicroN (Ralink RT3070L)をセットアップしたときのメモです。
試したPSPゲームはMONSTER HUNTER PORTABLE 3rdです。



1.XLinkKai環境作成時の情報

  • Linuxに関する情報の確認
$ uname -a
Linux slackware 2.6.37.6 #3 SMP Sat Apr 9 22:49:32 CDT 2011 x86_64 Intel(R) Xeon(R) CPU L5420 @ 2.50GHz GenuineIntel GNU/Linux
  • GW-USMicroNをPCに取り付けて、VenderIDとProductIDを確認します
$ lsusb
Bus 001 Device 002: ID 2019:ed14 PLANEX GW-USMicroN

2.事前準備 - slackwareに含まれるrt2870staドライバは使わないようにする -

slackware 13.37はGW-USMicroNを認識すると自動的にstaging/rt2870/rt2870staドライバをロードしていました。しかし、slackware 13.37に含まれるrt2870staドライバはXLinkKai用としては使えません。slackware 13.37がこれらのドライバをロードしないよう設定します。

  • rt2870staドライバを未使用状態にするためインタフェース"wlan0"をダウンします
$ sudo ifconfig wlan0 down
  • rt2870staドライバをアンロードします
$ lsmod | grep rt2870sta
rt2870sta            433234  0
crc_ccitt              1347  1 rt2870sta
$ sudo modprobe -r rt2870sta
$ lsmod | grep rt2870sta
  • 次から自動でロードされないようにblacklistに追加しておきます
$ sudo vi /etc/modprobe.d/blacklist.conf
270
271 blacklist rt2870sta    <= この行を追加しました
 
  • 念を入れるなら、この段階でslackwareを再起動してrt2870staドライバがロードされないことを確認しておくのも良いかもしれません

3.Ralink RT3070ドライバのビルドとslackwareへのインストール

Kai用として機能するRT3070STAドライバのソースコードを入手して、Kai用に修正していきます。

$ cd ~/Downloads
$ tar xvf 2011_0407_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.2_DPO.bz2
$ cd 2011_0407_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.2_DPO/
  • GW-USMicroNのVID:PIDを追加します
$ vi common/rtusb_dev_id.c
65      {USB_DEVICE(0x2019,0xAB25)}, /* Planex Communications, Inc. RT3070 */
66      {USB_DEVICE(0x2019,0xED14)}, /* Planex GW-USMicroN */    <= この行を追加しました
67      {USB_DEVICE(0x2019,0x5201)}, /* Planex Communications, Inc. RT8070 */
 
  • ライセンス情報を追加します
    • DESCRIPTIONはRT2870のままでも良いのですが、GW-USMicroNのチップはRT3070Lなので、RT3070に変更しました
$ vi os/linux/usb_main_dev.c
40 MODULE_DESCRIPTION("RT3070 Wireless Lan Linux Driver"); <= 28703070に変更します
41 MODULE_LICENSE("GPL");    <= この行を追加します
 
  • RT3070用としてビルドするためソースコードを一部書き換えます(書き換えた内容が正しいかは不明です)
    • 461~472行を以下のように書き換えました
$ cp chips/rtmp_chip.c{,.org}
$ vi chips/rtmp_chip.c
461  #if defined(RT30xx)            <== この行から
462      if (IS_RT30xx(pAd))
463      {
464          RT30xx_Init(pAd);
465      }
466  #endif /* defined(RT30xx) */
467  #if defined(RT33xx)
468      if (IS_RT3390(pAd))
469      {
470          RT33xx_Init(pAd);
471      }
472  #endif /* defined(RT33xx) */  <== この行まで書き換え
473      DBGPRINT(RT_DEBUG_TRACE, ("Chip specific bbpRegTbSize=%d!\n", pChipCap->bbpRegTbSize));
 
  • ファイルパス情報を修正します
$ vi include/os/rt_linux.h
130 #define STA_PROFILE_PATH        "/etc/Wireless/RT3070STA/RT3070STA.dat"    <= "2870"を"3070"に変更
131 #define STA_DRIVER_VERSION      "2.5.0.2"
 
  • ファイル名を変更して、インタフェースの初期値を設定します、RT2870 => RT3070
$ mv RT2870STA.dat RT3070STA.dat
$ vi RT3070STA.dat
7 SSID=PSP_AULJM05800_L_MHP3Q000     <= MHP3rdの集会浴場01の場合"PSP_AULJM05800_L_MHP3Q000"
8 NetworkType=Adhoc          <= "Infra""Adhoc"に変更します
...
10 Channel=1             <= PSPチャンネル設定(1, 6, 11のいずれか)と一致させます
...
73 PSP_XLINK_MODE=1          <= "0""1"に変更します
 
  • XLINKモードを有効にします
$ vi os/linux/config.mk
43 # Support XLINK mode
44 HAS_XLINK=y                <= "n""y"に変更します
 
56 # Support Wpa_Supplicant
57 HAS_WPA_SUPPLICANT=y           <= "n""y"に変更します
 
60 # Support Native WpaSupplicant for Network Maganger
61 HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y    <= "n""y"に変更します
...
407 CHIPSET_DAT = 3070            <= "2870""3070"に変更します
 
  • Makefile.cleanを修正します
    • slackwareでは不要なのですが、追加しても問題ないため追加しました
    • fedora、openSUSEの場合も不要です(/bin/sh -> /bin/bashのため)
    • ubuntu、debianの場合は必要に思います(/bin/sh -> /bin/dashのため、rmの正規表現が機能しない)
$ vi os/linux/Makefile.clean
1 SHELL=/bin/bash    <= この行を追加します "ubuntu, debianの場合に追加が必要"
...
 
  • Makefileを修正します
$ vi Makefile
11 ifeq ($(CHIPSET),)
12 CHIPSET = 3070     <== "5370""3070"に変更します
13 endif
...
387 else
388 # cp -f $(RT28xx_DIR)/os/linux/rt$(CHIPSET)sta.ko /tftpboot    <= この行をコメントにします
389 ifeq ($(OSABL),YES)
 
  • RT3070ドライバをビルドします
$ make clean && make
...
Building modules, stage 2.
MODPOST 1 modules
CC      /home/$USER/Downloads/2011_0407_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.2_DPO/os/linux/rt3070sta.mod.o
LD [M] /home/$USER/Downloads/2011_0407_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.2_DPO/os/linux/rt3070sta.ko
...
  • RT3070ドライバをインストールします
$ sudo make install
...
install -d /lib/modules/2.6.37.6/kernel/drivers/net/wireless/
install -m 644 -c rt3070sta.ko /lib/modules/2.6.37.6/kernel/drivers/net/wireless/
/sbin/depmod -a 2.6.37.6
...

4.RT3070ドライバを使う

RT3070ドライバをロードして、GW-USMicroNを使えるようにします。

  • RT3070ドライバをロードします、ついでにモジュール情報も確認しておきます
$ sudo modprobe rt3070sta
$ lsmod | grep rt3070sta
rt3070sta             664238  0
$ modinfo rt3070sta | head -4
filename:       /lib/modules/2.6.37.6/kernel/drivers/net/wireless/rt3070sta.ko
version:        2.5.0.2
license:        GPL
description:    RT3070 Wireless Lan Linux Driver
  • インタフェースを有効化します
$ sudo ifconfig ra0 up
  • インタフェース"ra0"を確認します
$ ifconfig ra0
ra0       Link encap:Ethernet  HWaddr 00:90:cc:??:??:??
          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:5064 (4.9 KiB)  TX bytes:1560 (1.5 KiB)
$ iwconfig ra0
ra0       Ralink STA  ESSID:"PSP_AULJM05800_L_MHP3Q000"  Nickname:"RT2870STA"
          Mode:Ad-Hoc  Frequency=2.412 GHz  Cell: 1A:41:E8:??:??:??
          Bit Rate=11 Mb/s
          RTS thr:off   Fragment thr:off
          Link Quality=70/100  Signal level:0 dBm  Noise level:0 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
  • ESSIDやMODEが設定されない場合にはRT3070ドライバをアンロードして、もう一度ロードしてみる
$ sudo ifconfig ra0 down
$ sudo modprobe -r rt3070sta
$ sudo modprobe rt3070sta
  • ESSIDやMODEが設定されない場合には手動で設定してみる
$ sudo iwconfig ra0 channel 1
$ sudo iwconfig ra0 essid PSP_AULJM05800_L_MHP3Q000
$ sudo iwconfig ra0 mode Ad-hoc
  • ここまで設定できたら、Kaiを起動してKaiConfigのNetwork Adapter="ra0"を選択して、設定保存しておきます

5.PSPと無線接続する


2011/06/04追記
iwconfigコマンドでSSID変更する手順としては、modeをmanagedにいったん戻してから、essidとmodeを設定すると良いみたいです
  • MHP3rd演習場01のSSIDに変更する場合の例
$ sudo iwconfig ra0 mode managed
$ sudo iwconfig ra0 essid PSP_AULJM05800_L_MHP3A000
$ sudo iwconfig ra0 mode ad-hoc

2011/05/22 追記
RutilT操作でSSID変更を繰り返すと、kernel oopsが発生する場合がある。
たとえばPSP側で集会浴場01から02に移動、RutilT操作で02のSSIDに接続、以下、03, 04, 05, ...とするとkernel oopsが発生。

+ ...
slackwareではリポジトリでRutilTが提供されていません。RutiltからRutilTのソースコードをダウンロードしてビルドします。
  • ビルドしてインストールします
$ tar xvf RutilTv0.18.tar.gz
$ cd RutilTv0.18/
$ ./configure.sh
$ make
$ make install DESTDIR=$(pwd)/PACKAGE
$ cd $(pwd)/PACKAGE
$ makepkg -l y -c n ../RutilT-0.18-`uname -m`-1.tgz
$ sudo installpkg ../RutilT-0.18-`uname -m`-1.tgz
  • Rutiltを起動します
$ sudo rutilt
  • Site Surveyタブを表示、Scanします
  • 一覧にPSPのSSIDが表示されたら、そのSSIDを選んで接続しましょう

以上でslackware 13.37へのGW-USMicroNのセットアップ例は終わり。


コメント

  • 新規作成 -- kar (2011-05-18 21:27:20)
  • kernel oopsを追加、詳細な原因は分かっていません -- kar (2011-05-22 10:47:33)
  • iwconfigコマンドでのSSID変更方法を追加 -- kar (2011-06-04 00:42:06)
名前:
コメント:
最終更新:2011年06月04日 00:42
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。