[[bc10]]

#contents

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

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

** RT2870USB(RT2870/RT2770) [#va493358]
Buffalo WLI-UC-AG300N にて動作を確認~
~
下記のデバイスIDの項にあるように、同じRT2870を使用している~
Logitec LAN-W150N/U2~
Planex GW-USMicroN~
でも動作確認を行いましたが、dhcp による IPアドレスの取得に失敗し、~
vendor id 追加の修正だけでは正しく動作していません。(11月15日現在)~
*** ドライバー入手先 [#o28fc948]
[[RT2870USB(RT2870/RT2770):http://www.ralinktech.com/license_us.php?n=2&p=0&t=U0wyRnpjMlYwY3k4eU1ERXdMekEzTHpBNUwyUnZkMjVzYjJGa05ETTVOalU0TXpVeU5pNWllakk5UFQweU1ERXdYekEzTURsZlVsUXlPRGN3WDB4cGJuVjRYMU5VUVY5Mk1pNDBMakF1TVM1MFlYST1D]]

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

***クロスコンパイル [#l46a7950]
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 の配置とロード [#p59e9d79]
ホスト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 [#va9c74f3]
Buffalo WLI-UC-G301N、Buffalo WLI-UC-GNで動作確認~
*** ドライバー入手先 [#l112db64]
http://www.ralinktech.com/support.php?s=2~
[[RT3070USB(RT8070/RT3070/RT3370 USB)>http://www.ralinktech.com/license_us.php?n=2&p=0&t=U0wyRnpjMlYwY3k4eU1ERXdMekV4THpFeEwyUnZkMjVzYjJGa05UWTNOelF6TURJNE5TNWllakk5UFQweU1ERXdYekE0TXpGZlVsUXpNRGN3WDB4cGJuVjRYMU5VUVY5Mk1pNHpMakF1TUY5RVVFOD1D]]  ~
ソースファイルの入手先は上記の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用の変更点 [#k8442db3]
上記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 の配置とロード [#h08b8b0f]
Android のユーザランドの /system/lib/modules/ に rt3070sta.ko を、~
同じく /system/etc/Wireless/RT2870STA/ に RT2870STA.dat を配置します。~
/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

* 更新履歴 [#cd8f7b8b]
2010/11/22: experimental-section 作成、RT2870USB、RT3070USBの記載追加~

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