bc10

experimental-section

ここでは、主にbc10向けの試験、調整中の項目を記載します。
記載時点から更に調整を加えることを前提としたページです。
特に記載時からの開発環境、ソースコード、機能の変更があることが
ありますのでご了承ください。

USB-WiFi

以下にbc10/froyo で動作を確認している、USB-WiFiデバイスを記載します。
主に kernel 側での対応になり Android でのGUI操作はできません。

RT2870USB(RT2870/RT2770)

Buffalo WLI-UC-AG300N にて動作を確認

下記のデバイスIDの項にあるように、同じRT2870を使用している
Logitec LAN-W150N/U2
Planex GW-USMicroN
でも動作確認を行いましたが、dhcp による IPアドレスの取得に失敗し、
vendor id 追加の修正だけでは正しく動作していません。(11月15日現在)

ドライバー入手先

RT2870USB(RT2870/RT2770)

ダウンロードには名前とメールアドレスの入力が必要になります。

クロスコンパイル

2010_0709_RT2870_Linux_STA_v2.4.0.1 でARM 用にクロスコンパイルするには
以下の修正が必要になります。

ダウンロードしたらまず展開します。

$ tar xvfj 2010_0709_RT2870_Linux_STA_v2.4.0.1.tar.bz2
$ cd 2010_0709_RT2870_Linux_STA_v2.4.0.1

1. Makefile
PC をコメントアウトして BC10 を追加します。

- # PLATFORM = PC
+ PLATFORM = BC10

BC10の時のkernelソースの場所とツールチェインの場所の設定を追加します。
Line:217〜

  CROSS_COMPILE = /opt/montavista/pro/devkit/arm/v5t_le_mvl5/bin/arm_v5t_le-
  endif

+ ifeq ($(PLATFORM),BC10)
+ LINUX_SRC = /home/beat/android/beagle-droid/kernel
+ CROSS_COMPILE = /home/beat/android/beagle-droid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
+ endif

BC10 の場合のクロスコンパイル設定を追加します。
Line:247〜

 ifeq ($(PLATFORM),FREESCALE8377)
 	$(MAKE) ARCH=powerpc CROSS_COMPILE=$(CROSS_COMPILE) -C  $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules
 else
-	$(MAKE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules
+	$(MAKE) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules
endif

他のクロスコンパイル設定の判定に追加していますので 条件分岐の整合性に注意してください。

2. os/linux/config.mk
wpa_supplicant は使用し、NetworkManager は使用しないビルド設定(OpenEmbedded)をします。

  # Support Wpa_Supplicant
- HAS_WPA_SUPPLICANT=n
+ HAS_WPA_SUPPLICANT=y

n から y に変更します。

BC10 の場合のコンパイルオプションを設定します。
Line:399〜

  endif

 +ifeq ($(PLATFORM),BC10)
 +    ifneq (,$(findstring 2.4,$(LINUX_SRC)))
 +	# Linux 2.4
 +	CFLAGS := -D__KERNEL__ -I$(LINUX_SRC)/include -I$(RT28xx_DIR)/include -O2 -fomit-frame-pointer \ 
                 -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 \
                 -DMODULE -DMODVERSIONS -include $(LINUX_SRC)/include/linux/modversions.h $(WFLAGS)
 +     export CFLAGS
 +    else
 +	# Linux 2.6
 +	EXTRA_CFLAGS := $(WFLAGS) -I$(RT28xx_DIR)/include
 +    endif
 +endif
 +
  #If the kernel version of RMI is newer than 2.6.27, please change "CFLAGS" to "EXTRA_FLAGS"

3.common/rtusb_dev_id.c
社内にある RT2870 を使った Wifiモジュールの VendorID:DeviceID を追加します。

+ {USB_DEVICE(0x0789,0x0164)}, /* Logitec LAN-W150N/U2 2870 */ 
+ {USB_DEVICE(0x2019,0xED14)}, /* Planex GW-USMicroN */
+ {USB_DEVICE(0x0411,0x012e)}, /* Buffalo WLI-UC-AG300N */

4. ビルド

$ sudo make

これで make が通り、os/linux/ に rt2870sta.ko がビルドされます。

driver の配置とロード

ホストPC上でSDカード上の Android ユーザランドの /system/lib/modules/ に rt2870sta.koを、
同じく /system/etc/Wireless/RT2870STA/ に RT2870STA.dat を配置します。
また、RT2870STA.dat にはWiFi の設定を記述します。
以下は SSID: SSIDXXXX、WPAPSK AES PATH: XXXXXXXX としたときのdat ファイルです。

Default
CountryRegion=5
CountryRegionABand=7
CountryCode=
ChannelGeography=1
SSID=SSIDXXXX
NetworkType=Infra
WirelessMode=5
Channel=0
BeaconPeriod=100
TxPower=100
BGProtection=0
TxPreamble=0
RTSThreshold=2347
FragThreshold=2346
TxBurst=1
PktAggregate=0
WmmCapable=1
AckPolicy=0;0;0;0
AuthMode=WPAPSK
EncrypType=AES
WPAPSK=XXXXXXXX
DefaultKeyID=1
Key1Type=0
Key1Str=

system/etc/init.omap3.sh に以下を追加するか、Android のシリアルコンソールなどから 以下のコマンドを実行してください。

insmod /system/lib/modules/rt2870sta.ko
netcfg ra0 up
netcfg ra0 dhcp

RT3070USB

Buffalo WLI-UC-G301N、Buffalo WLI-UC-GNで動作確認

ドライバー入手先

http://www.ralinktech.com/support.php?s=2
RT3070USB(RT8070/RT3070/RT3370 USB)
ソースファイルの入手先は上記のRT2870USBと同じようにメールアドレス、
氏名の入力を要します。
2010_0831_RT3070_Linux_STA_v2.3.0.0_DPO.bz2 をダウンロードします。

$ tar xvfj 2010_0831_RT3070_Linux_STA_v2.3.0.0_DPO.bz2
$ cd 2010_0831_RT3070_Linux_STA_v2.3.0.0_DPO

bc10用の変更点

上記RT2870USBと同じようにbc10向けの変更を加えます。
(注):ドライバーのバージョンによって修正位置などに変化があります。
1. 2010_0831_RT3070_Linux_STA_v2.3.0.0_DPO/Makefile PLATFORM を PC から BC10に変更し CROSS_COMPILE の設定をします。

$ vi Makefile

  #PLATFORM: Target platform
- PLATFORM = PC
+ #PLATFORM = PC
  (略)
  #PLATFORM = NXP_TV550
  #PLATFORM = MVL5
+ PLATFORM = BC10

Line:238〜

  ifeq ($(PLATFORM),MVL5)
  LINUX_SRC = /home2/charlestu/AP-VT3426/linux-2.6.18
  CROSS_COMPILE = /opt/montavista/pro/devkit/arm/v5t_le_mvl5/bin/arm_v5t_le-
  endif

+ ifeq ($(PLATFORM),BC10)
+ ANDROID_DIR = ${HOME}/TI_Android_FroYo_DevKit-V2/Android_Source_  \
+              Manifest/rowboat-android 
+ LINUX_SRC = /home/beat/bc10-rowboat-kernel
+ CROSS_COMPILE = ${ANDROID_DIR}/prebuilt/linux-x86/toolchain/arm-eabi- \
               4.4.0/bin/arm-eabi-
+ endif

  export OSABL RT28xx_DIR RT28xx_MODE LINUX_SRC CROSS_COMPILE \ 
         CROSS_COMPILE_INCLUDE PLATFORM RELEASE CHIPSET RTMP_SRC_DIR \
         LINUX_SRC_MODULE TARGET

Line:323〜

  ifeq ($(PLATFORM),FREESCALE8377)
        $(MAKE) ARCH=powerpc CROSS_COMPILE=$(CROSS_COMPILE) -C  $(LINUX_SRC) \
        SUBDIRS=$(RT28xx_DIR)/os/linux modules
  else
+ ifeq ($(PLATFORM),BC10)
+       $(MAKE) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C  $(LINUX_SRC) \ 
               SUBDIRS=$(RT28xx_DIR)/os/linux modules
+ else
       $(MAKE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules
  endif
  endif
  endif

  ifeq ($(OSABL),YES)

2. 2010_0831_RT3070_Linux_STA_v2.3.0.0_DPO/os/linux/config.mk

  # Support Wpa_Supplicant
- HAS_WPA_SUPPLICANT=n
+ #HAS_WPA_SUPPLICANT=n
+ HAS_WPA_SUPPLICANT=y

  # Support Native WpaSupplicant for Network Maganger
  HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n

最終行に以下を追加します。

+ ifeq ($(PLATFORM),BC10)
+ EXTRA_CFLAGS := $(WFLAGS) -I$(RT28xx_DIR)/include -DMODILE
+ endif

3. 2010_0831_RT3070_Linux_STA_v2.3.0.0_DPO/common/rtusb_dev_id.c

   USB_DEVICE_ID rtusb_dev_id[] = {
   #ifdef RT3070
   (略)  
      {USB_DEVICE(0x13D3,0x3321)}, /* Azurewave */
      {USB_DEVICE(0x07FA,0x7712)}, /* Edimax */
      {USB_DEVICE(0x0789,0x0166)}, /* Edimax */
      {USB_DEVICE(0x0DB0,0x822B)}, /* MSI 3070*/^M
      {USB_DEVICE(0x0DB0,0x871B)}, /* MSI 3070*/
+     {USB_DEVICE(0x0411,0x015d)}, /* Melco,Inc. */
+     {USB_DEVICE(0x0411,0x016f)}, /* Melco,Inc. */

4. ビルド

$ sudo make

driver の配置とロード

Android のユーザランドの /system/lib/modules/ に rt3070sta.ko を、
/system/etc/Wireless/RT2870STA/ に RT2870STA.dat を配置します。
(3070 でない点に注意。ソースの修正で変更できますが default では 2870 になっています。)
また、RT2870STA.dat にはWiFi の設定を記述します。
/system/etc/init.omap3.sh に以下を追加するか、Android のシリアルコンソールなどから 以下のコマンドを実行してください。

insmod /system/lib/modules/rt3070sta.ko
netcfg ra0 up
netcfg ra0 dhcp

更新履歴

2010/11/22: experimental-section 作成、RT2870USB、RT3070USBの記載追加


BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2010-12-10 (金) 01:10:39 (4886d)