[[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の記載追加~