[[bc10]]
~
- 目次
#contents

* bc10/prebuilt-20110107 概要 [#ua4f8727]
COLOR(red){bc10/prebuilt-201101207は、AOSP android-2.2_r1.1がAndroidベースバージョンになります。}~
COLOR(red){bc10/prebuilt-20110107は、AOSP android-2.2_r1.1がAndroidベースバージョンになります。}~

[[bc10/froyo]]に追加修正を加えたandroid-2.2_r1.1 prebuiltイメージの作成方法・配置手順について説明します。~
作業の流れとして、以下の2つの項目に大きく分かれます。~

- [[prebuilt イメージの作成手順>http://labs.beatcraft.com/ja/index.php?bc10%2Fprebuilt-20110107#kceb09db]]~
-- イメージの作成手順では、 prebuilt-20110107 作成のための開発環境作成、~
ビルド手順、無線LANのドライバーの追加方法について解説します。~

- [[prebuilt イメージの配置手順>http://labs.beatcraft.com/ja/index.php?bc10%2Fprebuilt-20110107#zabf94e9]]~
イメージの配置手順では、prebuilt-20110107 のイメージ[[bc10-boot-sd-image--release20110107.tar.gz>http://sourceforge.jp/projects/bc10-dev/releases/50494]]の~
ダウンロード、SDへの配置方法を説明します。~

* prebuilt イメージの作成手順 [#kceb09db]
* 開発環境 [#p209889b]
開発環境構築において重要な物は以下の3つです。~
-OS: Ubuntu 10.04(32bit版)~
-JAVA:  java 1.5x ~
-Android Version: android-2.2_r1.1

** パッケージインストール [#de53ff68]
Ubuntuのリポジトリから必要なパッケージを取得してインストールします。~

 $ sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev \
   libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev uboot-mkimage

** java5 [#ef8bd7c6]
android-2.2_r1.1のビルドに必要なsun-java5-jdkはUbuntu 9.10 以降リポジトリから外されていますので、~
/etc/apt/sources.listに一時的に古いリポジトリを追加します。~

 $ sudo vi /etc/apt/sources.list

   ## respective vendors as a service to Ubuntu users.
   deb http://archive.canonical.com/ubuntu lucid partner
   deb-src http://archive.canonical.com/ubuntu lucid partner
  
   deb http://archive.ubuntu.com/ubuntu lucid-security main restricted
   deb-src http://archive.ubuntu.com/ubuntu lucid-security restricted main multiverse universe #Added by software-properties
   deb http://archive.ubuntu.com/ubuntu lucid-security universe
   deb http://archive.ubuntu.com/ubuntu lucid-security multiverse
 + deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
 + deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse

追加完了後、apt-get updateコマンドでリポジトリ情報の取得をしsun-java5-jdkをインストールします。

 $ sudo apt-get update
 $ sudo apt-get install sun-java5-jdk

インストール完了後、誤って他の古いパッケージをインストールしないよう上記で追加したリポジトリを削除しておきます。~

 $ sudo vi /etc/apt/sources.list

   ## respective vendors as a service to Ubuntu users.
   deb http://archive.canonical.com/ubuntu lucid partner
   deb-src http://archive.canonical.com/ubuntu lucid partner
  
   deb http://archive.ubuntu.com/ubuntu lucid-security main restricted
   deb-src http://archive.ubuntu.com/ubuntu lucid-security restricted main multiverse universe #Added by software-properties
   deb http://archive.ubuntu.com/ubuntu lucid-security universe
   deb http://archive.ubuntu.com/ubuntu lucid-security multiverse
 - deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
 - deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse

もう一度apt-get updateで現状のリポジトリ情報の取得をして元の状態に戻します。~

 $ sudo apt-get update

* Android ソースファイル取得 [#nea0dd19]
** repo 設定 [#o0b0c850]
Androidのソースコードを取得するためにrepoの設定を行います。~

 $ cd ~
 $ mkdir bin
 $ curl http://android.git.kernel.org/repo >~/bin/repo
 $ chmod a+x ~/bin/repo

Ubuntuでは一度ログアウトしてログインし直すと~/binへのPATHは通っています。~
ログアウトせずそのまま作業したい場合は、以下のようにして~/binを環境変数のPATHに追加します。~

 $ export PATH=~/bin:$PATH

** repo 初期化 [#y1d65e4e]
bc10というandroidソースファイル用ディレクトリを作成し、android-2.2_r1.1 branch ~
を取得するためにrepo initを実行します。~

 $ cd ~
 $ mkdir bc10 
 $ cd bc10
 $ repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.2_r1.1

** local_manifest.xml の追加 [#u4bf5191]
android-2.2_r1.1 tagで取得できるソースコード内にはALSAが含まれていません。~
音声ライブラリにALSAを使用するためbc10/.repo/以下にlocal_manifest.xmlを作成します。~
local_manifest.xmlにALSA関連ファイルを追加しソースコードを取得できるようにします。~
~
また ALSA 関連ファイルにはandroid-2.2_r1.1 tagが切られていないため、Froyo branchを使用します。~

 $ vi .repo/local_manifest.xml

 <?xml version="1.0" encoding="UTF-8"?>
 <manifest>
   <project path="external/alsa-lib" name="platform/external/alsa-lib" revision="froyo"/>
   <project path="external/alsa-utils" name="platform/external/alsa-utils" revision="froyo"/>
   <project path="hardware/alsa_sound" name="platform/hardware/alsa_sound" revision="froyo"/>
 </manifest>

** repo sync [#i804a5a7]
local_manifest.xmlの追加後repo syncを実行し、androidのソースコードを取得します。~

 $ repo sync

2〜4GBのファイルをダウンロードしますので回線速度に応じて時間がかかります。~

* bc10 用ビルド設定ファイルの適用 [#nc942ebf]

android-2.2_r1.1をbc10向けに最適化してビルドするためのpatchおよび設定ファイルを~
githubのリポジトリからgit cloneで取得し、patch_to_android-2.2_r1.1_for_b10/bc10-patch.shを
実行します。~

 $ cd ~
 $ git clone git://github.com/bc-dev/patch_to_android-2.2_r1.1_for_b10.git
 $ cd patch_to_android-2.2_r1.1_for_b10

git cloneで取得する場所はどこでも構いませんが、bc10-patch.shを実行する前に~
bc10-patch.shの中の以下の環境変数をファイルのPATHに合うよう修正してください。~

 $ vi bc10-patch.sh

 ### Settings 
 ANDROID_DIR=${HOME}/bc10
 SETUP_DIR=${HOME}/patch_to_android-2.2_r1.1_for_b10
 PATCH_DIR=${SETUP_DIR}/patches-for-bc10

ファイルのPATH指定を確認後bc10-patch.shを実行します。~

 $ ./bc10-patch.sh


* Android ビルド [#abc9999a]
bc10用の環境設定をします。~

 $ cd ~/bc10
 $ source build/envsetup.sh
 $ lunch bc10-eng

 ============================================
 PLATFORM_VERSION_CODENAME=REL
 PLATFORM_VERSION=2.2
 TARGET_PRODUCT=bc10
 TARGET_BUILD_VARIANT=eng
 TARGET_SIMULATOR=false
 TARGET_BUILD_TYPE=release
 TARGET_BUILD_APPS=
 TARGET_ARCH=arm
 HOST_ARCH=x86
 HOST_OS=linux
 HOST_BUILD_TYPE=release
 BUILD_ID=FRF91
 ============================================

上記のように設定確認後makeを実行します。~

 $ make

** イメージ作成 [#j4b9ee56]
ビルドが終了したらビルドされたuserlandのバイナリを起動可能な配置に変更します。~
userlandを整えるスクリプトmkbc10-image.shを使用します。~

 $ cd ~/patch_to_android-2.2_r1.1_for_b10
 $ ./mkbc10-image.sh

実行すると以下のようにbc/out/target/product/bc10/にbc10-image/という~
ディレクトリが作成されます。~
このbc10-imageディレクトリ内にandroid userlandが配置されます。 ~

 /home/beat/bc10/out/target/product/bc10
 mkdir android for android-rfs
 /home/beat/bc10/out/target/product/bc10
 copy android-root
 copy android-system
 change permission and owner
 [sudo] password for beat:
 $ cd ~/bc10/out/target/product/bc10
 $ ls -l

 -rw-r--r--  1 beat beat        7 2010-08-27 23:37 android-info.txt
 drwxrwxrwx  8 root root     4096 2010-08-30 11:34 bc10-image
 -rw-r--r--  1 beat beat     8866 2010-08-27 21:16 clean_steps.mk
 drwxr-xr-x  3 beat beat     4096 2010-08-27 21:54 data
 -rw-r--r--  1 beat beat    22869 2010-08-27 23:37 installed-files.txt
 drwxr-xr-x 13 beat beat     4096 2010-08-27 23:28 obj
 -rw-r--r--  1 beat beat      189 2010-08-27 21:16 previous_build_config.mk
 -rw-r--r--  1 beat beat   163811 2010-08-27 23:37 ramdisk.img
 drwxr-xr-x  8 beat beat     4096 2010-08-27 21:54 root
 drwxr-xr-x  4 beat beat     4096 2010-08-27 21:54 symbols
 drwxr-xr-x 11 beat beat     4096 2010-08-27 23:17 system
 -rw-------  1 beat beat 78486144 2010-08-27 23:37 system.img
 -rw-------  1 beat beat  1522752 2010-08-27 23:37 userdata.img

 $ cd bc10-image
 $ ls -l

 drwxrwxrwx  2 root root   4096 2010-08-27 21:26 data
 -rwxrwxrwx  1 root root    118 2010-08-27 21:54 default.prop
 drwxrwxrwx  2 root root   4096 2010-08-27 21:26 dev
 -rwxrwxrwx  1 root root 107440 2010-08-27 21:54 init
 -rwxrwxrwx  1 root root   1677 2010-08-27 20:53 init.goldfish.rc
 -rwxrwxrwx  1 root root    197 2010-08-24 20:58 init.omap3.rc
 -rwxrwxrwx  1 root root  13605 2010-08-24 20:58 init.rc
 drwxrwxrwx  2 root root   4096 2010-08-27 21:26 proc
 drwxrwxrwx  2 root root   4096 2010-08-27 21:54 sbin
 drwxrwxrwx  2 root root   4096 2010-08-27 21:26 sys
 drwxrwxrwx 11 root root   4096 2010-08-30 11:34 system

* kernel ビルド [#fed99519]

**環境変数設定 [#x363e564]
bootに必要なx-loader、u-boot、kernelは全てandroidのソースコードと~
共に配布されているtoolchainを使用してビルドします。~
ここでは、prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin内のtoolchainを使用します。~
~
ビルド時にこのtoolchainを使ってcross compileが行われるように環境変数を設定します。~

 $ export PATH=/home/beat/bc10/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin:${PATH}
 $ export ARCH=arm
 $ export CROSS_COMPILE=arm-eabi-

** kernel [#m4983c49]
 
 $ cd ~
 $ git clone git://gitorious.org/~bc-dev/rowboat/bc10-rowboat-kernel.git bc10-rowboat-kernel
 $ cd bc10-rowboat-kernel/
bc10向けリリースブランチに切り替えます。~
 $ git checkout -t -b bc10-2.6.32 origin/bc10-2.6.32
 $ make omap3_bc10_defconfig
 $ make uImage
 $ make modules

ビルド完了後以下のディレクトリにuImageが作成されます。~

 $ ls ~/bc10-rowboat-kernel/arch/arm/boot/
 Image  Makefile  bootp  compressed  install.sh  uImage  zImage

* USB Wifi (RT3070USB) ドライバー ビルド [#qef844a3]
USB Wifiに対応する為にRT3070USBのドライバーを追加します。~
動作を確認したデバイスは以下のとおりです。~
COLOR(red){ 一部デバイスに対応中の箇所があります。予告無く更新することがありますのでご了承ください。}~

 メーカー   型番               対応 Device ID   備考
 PLANEX     GW-USMicroN-G      2019:ED14
 Logitec    LAN-W150N/U2IPH    0789:0164
 Logitec    LAN-W150N/U2BK     0789:0168
 Buffalo    WLI-UC-GNM         0411:01a2
 Buffalo    WLI-UC-G301N       0411:016f    Baffalo WLI-UG-G301N は USB ACパワードハブ経由に接続した場合の動作を確認しています
 Buffalo    WLI-UC-GN          0411:015d

ここでは、RT3070USBを使用している上記のBaffalo社製の無線LANとLogitec社の無線LANを前提に説明します。~
~
ドライバーは[[RALINK Web>http://www.ralinktech.com/support.php?s=2]] にあるLinuxドライバー~
2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO.bz2を使用します。~
あわせて ファームウェア RT28XX/RT30XX USB series (RT2870/RT2770/RT3572/RT3070)を使用します。~
(ファームウェアはドライバーのアーカイブ内にも同梱されていますので別途ダウンロードする必要はありません。)~
~
ソースコード及びファームウェアの入手はメールアドレスと氏名の入力を必要とします。~
ダウンロードしてきたファイルは/home/beat/に置くものとして記載します。~
~
またtoolchainは上記 kernelビルド時に設定したAndroidソースファイル内の ~
prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/binを使用します。~
~
prebuilt イメージはビルド時にos/linux/config.mkを' WFLAGS += -DCONFIG_STA_SUPPORT 'と~
修正していますのでdebugログが表示されません。~
debugログが出力されないため接続できない際に必要なログが表示されないことがありますのでご注意ください。~
~
debugログを出力する場合は os/linux/config.mk の該当箇所を' -WFLAGS += -DCONFIG_STA_SUPPORT -DDBG'と ~
してソースファイルをビルドし、ファイルの再配置を行ってください。~
この変更によって debug ログが出力されるようになります。~
ただしコンソールに電波状態など大量の debug ログが出力されるためコンソールからの操作がし辛い場合があります。~
~
以下の patch を当てることで bc10 向けにクロスコンパイルできるようになります。~
変更内容は、~
・bc10 向けのコンパイル設定の追加(platform、toolchain の PATH、コンパイルフラグの設定)~
・ファームウェアのリージョン設定を日本にし、設定項目例をわかりやすいものに変更~
・USB Wifi のベンダーID、製品IDの追加~
です。~
#ref(2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO.bz2)~
#ref(RT3070USB.diff)~

 diff -urpN 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO-orig/Makefile 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/Makefile
 --- 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO-orig/Makefile       2010-08-31 18:12:20.000000000 +0900
 +++ 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/Makefile    2011-01-12 16:46:57.732360338 +0900
 @@ -15,7 +15,8 @@ endif
  RTMP_SRC_DIR = $(RT28xx_DIR)/RT$(CHIPSET) 
 
  #PLATFORM: Target platform
 -PLATFORM = PC
 +#PLATFORM = PC
 +PLATFORM = BC10
  #PLATFORM = 5VT
  #PLATFORM = IKANOS_V160
  #PLATFORM = IKANOS_V180
 @@ -147,6 +148,11 @@ LINUX_SRC_MODULE = /lib/modules/$(shell
  CROSS_COMPILE =
  endif 
 
 +ifeq ($(PLATFORM),BC10)
 +LINUX_SRC = /home/beat/prebuilt-20101227/bc10-rowboat-kernel
 +CROSS_COMPILE = /home/beat/prebuilt-20101227/bc10/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
 +endif
 +
  ifeq ($(PLATFORM),IXP)
  LINUX_SRC = /project/stable/Gmtek/snapgear-uclibc/linux-2.6.x
  CROSS_COMPILE = arm-linux-
 @@ -347,6 +353,9 @@ ifeq ($(OSABL),YES)
         cp -f $(RT28xx_DIR)/os/linux/rtnet$(CHIPSET)apsta.ko /tftpboot
  endif
  else
 +ifeq ($(PLATFORM),BC10)
 +       $(MAKE) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C  $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules
 +else
         cp -f $(RT28xx_DIR)/os/linux/rt$(CHIPSET)sta.ko /tftpboot
  ifeq ($(OSABL),YES)
         cp -f $(RT28xx_DIR)/os/linux/rtutil$(CHIPSET)sta.ko /tftpboot
 @@ -355,7 +364,7 @@ endif
  endif
  endif
  endif
 -
 +endif 
  
 release:
 ifeq ($(TARGET), LINUX)
 @@ -388,6 +397,9 @@ endif
         $(MAKE) -C os/linux clean
         rm -rf os/linux/Makefile
  endif
 +ifneq ($(TARGET),THREADX)
 +       $(MAKE) -C tools clean
 +endif
  ifeq ($(TARGET), UCOS)
         $(MAKE) -C os/ucos clean MODE=$(RT28xx_MODE)
  endif
 diff -urpN 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO-orig/RT2870STA.dat 2010_0831_RT3070_Lin
 ux_STA_v2.4.0.1_DPO/RT2870STA.dat
 --- 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO-orig/RT2870STA.dat  2010-08-31 18:12:20.000000000 +0900
 +++ 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/RT2870STA.dat       2011-01-12 16:46:57.732360338 +0900
 @@ -1,10 +1,12 @@
  #The word of "Default" must not be removed
  Default
  CountryRegion=5
 -CountryRegionABand=7
 -CountryCode=
 +#CountryRegionABand=7
 +#CountryCode=
 +CountryRegionABand=1
 +CountryCode=JP
  ChannelGeography=1
 -SSID=11n-AP
 +SSID=ssidname
  NetworkType=Infra
  WirelessMode=5
  Channel=0
 @@ -18,9 +20,9 @@ TxBurst=1
  PktAggregate=0
  WmmCapable=1
  AckPolicy=0;0;0;0
 -AuthMode=OPEN
 -EncrypType=NONE
 -WPAPSK=
 +AuthMode=authtype
 +EncrypType=encrptype
 +WPAPSK=passname
  DefaultKeyID=1
  Key1Type=0
  Key1Str=
 diff -urpN 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO-orig/common/rtusb_dev_id.c 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/common/rtusb_dev_id.c
 --- 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO-orig/common/rtusb_dev_id.c  2010-09-01 10:47:30.000000000 +0900
 +++ 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/common/rtusb_dev_id.c       2011-01-12 16:46:57.755056649 +0900
 @@ -107,8 +107,14 @@ USB_DEVICE_ID rtusb_dev_id[] = {
         {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(0x0DB0,0x822B)}, /* MSI 3070*/
 +       {USB_DEVICE(0x2019,0xED14)}, /* PLANEX*/
 +       {USB_DEVICE(0x2019,0xAB29)}, /* PLANEX*/
 +       {USB_DEVICE(0x0789,0x0164)}, /* Logitec*/
 +       {USB_DEVICE(0x0789,0x0168)}, /* Logitec*/
 +       {USB_DEVICE(0x0411,0x01a2)}, /* Buffalo*/
 +       {USB_DEVICE(0x0411,0x016f)}, /* Buffalo*/
 +       {USB_DEVICE(0x0411,0x015d)}, /* Buffalo*/
  #endif // RT3070 //
  #ifdef RT3370
         {USB_DEVICE(0x148F,0x3370)}, /* Ralink 3370 */
 diff -urpN 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO-orig/os/linux/config.mk 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/os/linux/config.mk
 --- 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO-orig/os/linux/config.mk     2010-08-31 18:12:20.000000000 +0900
 +++ 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/os/linux/config.mk  2011-01-12 16:46:57.765058823 +0900
 @@ -26,7 +26,7 @@ HAS_WDS=n
  HAS_APCLI=n 
 
  # Support Wpa_Supplicant
 -HAS_WPA_SUPPLICANT=n
 +HAS_WPA_SUPPLICANT=y 
 
  # Support Native WpaSupplicant for Network Maganger
  HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n
 @@ -149,6 +149,7 @@ endif 
 
  ifeq ($(RT28xx_MODE),STA)
 -WFLAGS += -DCONFIG_STA_SUPPORT -DDBG
 +#WFLAGS += -DCONFIG_STA_SUPPORT -DDBG
 +WFLAGS += -DCONFIG_STA_SUPPORT
 
  ifeq ($(HAS_XLINK),y)
  WFLAGS += -DXLINK_SUPPORT
 @@ -545,6 +546,10 @@ ifeq ($(PLATFORM),PC)
      endif 
  endif 
 
 +ifeq ($(PLATFORM),BC10)
 +EXTRA_CFLAGS := $(WFLAGS) -I$(RT28xx_DIR)/include -DMODILE
 +endif
 +
  #If the kernel version of RMI is newer than 2.6.27, please change "CFLAGS" to "EXTRA_FLAGS"
  ifeq ($(PLATFORM),RMI)
  EXTRA_CFLAGS := -D__KERNEL__ -DMODULE=1 -I$(LINUX_SRC)/include -I$(LINUX_SRC)/include/asm-mips/mach-generic
                  -I$(RT28xx_DIR)/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common
                  -DCONFIG_IFX_ALG_QOS -DCONFIG_WAN_VLAN_SUPPORT -fomit-frame-pointer -DIFX_PPPOE_FRAME -G 0 -fno-pic
                  -mno-abicalls -mlong-calls -pipe -finline-limit=100000 -mabi=32 -G 0 -mno-abicalls -fno-pic -pipe -msoft-float
                  -march=xlr -ffreestanding-march=xlr -Wa,--trap, -nostdinc -iwithprefix include $(WFLAGS)
 (上記の EXTRA_CFLAGS := -D__KERNEL__ -DMODULE=1 から $(WFLAGS) 迄は1行です。)

以下のようにアーカイブの展開、patch 後 makeを実行します。make 完了後 os/linux 以下に rt3370sta.ko が作成されています。~
 $ cd ~
 $ tar xvfj 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO.bz2
 $ patch -p0 < RT3070USB.diff
 $ cd 2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/
 $ make
 $ ls -l os/linux/rt3370sta.ko
 -rw-r--r-- 1 beat beat 10746686 2011-01-05 12:42 os/linux/rt3370sta.ko

** USB Wifi (RT3070USB) ドライバー 配置について [#adbdb5c3]
- rt3370sta.ko~
上記で作成したドライバーファイルrt3370sta.koを~
android userlandのあるbc10/out/target/product/bc10/bc10-image/system/lib/に~
modules/というディレクトリを作成し配置します。~
~
- RT2870STA.dat~
Wifiの設定ファイル RT2870STA.dat に、SSID、認証形式、パスフレーズなどの設定をし~
同じくbc10/out/target/product/bc10/bc10-image/system/etc/~
にWireless/RT2870STAというディレクトリを作成し配置します。~
設定方法の詳細についてはREADME_STA_usbをご覧ください。~

- rt2870.bin ~
ファームウェアrt2870.binとLICENSE.ralink-firmware.txtを同じくsystem/etc/に ~
firmware/というディレクトリを作成し配置します。~

ファイルのオーナーと権限はmkbc10-image.shにあわせてrootと777にします。~

 $ sudo mkdir ~/bc10/out/target/product/bc10/bc10-image/system/lib/modules
 $ sudo mkdir -p ~/bc10/out/target/product/bc10/bc10-image/system/etc/Wireless/RT2870STA
 $ sudo cp -afr os/linux/rt3370sta.ko ~/bc10/out/target/product/bc10/bc10-image/system/lib/modules/
 $ sudo cp -afr RT2870STA.dat ~/bc10/out/target/product/bc10/bc10-image/system/etc/Wireless/RT2870STA/
 $ cd ~
 $ unzip RT2870_Firmware_V22.zip
 $ cd RT2870_Firmware_V22/
 $ sudo mkdir ~/bc10/out/target/product/bc10/bc10-image/system/etc/firmware
 $ sudo cp -afr * ~/bc10/out/target/product/bc10/bc10-image/system/etc/firmware/
 $ sudo chown -R root.root ~/bc10/out/target/product/bc10/bc10-image/system
 $ sudo chmod -R 777 ~/bc10/out/target/product/bc10/bc10-image/system

* SGX SDK のビルド [#g555a2b6]
[[bc10/froyo]]と同じ手順でTI Android SGX SDKを取得します。~
~
(注):~
- 取得完了までに時間がかかることがあります。~
- [[bc10/froyo]]にてOMAP35x_Android_Graphics_SDK_3_01_00_03をインストール済みの場合は~
同じファイルなので転用しても問題ありません、Rules.makeのディレクトリ位置の変更には~
注意してください。再度ダウンロードの際は任意にバックアップもしくは削除などをしてください。~
- kernelもしくはAndroid userlandの入れ替えを行う際はkernel、Android全体のリビルドが必要になります。~

 $ cd ~
 $ git clone git://gitorious.org/rowboat/ti_android_sgx_sdk.git
 $ cd ti_android_sgx_sdk/
 $ ./OMAP35x_Android_Graphics_SDK_setuplinux_3_01_00_03.bin

インストールディレクトリ位置を聞かれるので今回はデフォルトインストールディレクトリ~
の${HOME}/OMAP35x_Android_Graphics_SDK_3_01_00_03 を指定します。~
${HOME}は、ホームディレクトリーの意味で、/home/beatを指します。~
(以降、ホームディレクトリーは、/home/beatを指します。)~
~
[[To download TI's Android SGX SDK>http://code.google.com/p/rowboat/wiki/Source#To_download_TI%27s_Android_SGX_SDK]] ~
~
** Rules.make の変更 [#ke48d729]
Rules.make のHOME、GRAPHICS_INSTALL_DIR、ANDROID_ROOT、CSTOOL_DIR、~
KERNEL_INSTALL_DIRをそれぞれのファイルPATHに合うよう修正してください。~
以下のRules.makeは上記ビルド時の設定にあわせています。~
ANDROID_ROOTはmkbc10-image.shで作成したbc10-imageのディレクトリ位置~
にあわせています。~

 $ cd ~/OMAP35x_Android_Graphics_SDK_3_01_00_03

 --- Rules.make  2011-01-05 14:20:43.863788943 +0900
 +++ Rules.make-orig     2011-01-05 14:17:04.661291128 +0900
 @@ -4,24 +4,20 @@ PLATFORM=LinuxOMAP3 
 
  ################# FIELDS MODIFIABLE BY THE USER ###############################
  #set home area HOME (relative location for all SDK operations)
 -#HOME=INVALIDVAL
 -HOME=/home/beat/prebuilt-20101227
 +HOME=INVALIDVAL
  #Current Directory where Graphics SDK is installed
  GRAPHICS_INSTALL_DIR=$(HOME)/OMAP35x_Android_Graphics_SDK_3_01_00_03
  #Android Specific
  #Path of Android Root FS
 -#ANDROID_ROOT=$(HOME)/INVALIDVAL
 -ANDROID_ROOT=$(HOME)/bc10/out/target/product/bc10/bc10-image
 +ANDROID_ROOT=$(HOME)/INVALIDVAL
  #set toolchain root path for arm-eabi
 -#CSTOOL_DIR=INVALIDVAL
 -CSTOOL_DIR=$(HOME)/bc10/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0
 +CSTOOL_DIR=INVALIDVAL
  CSTOOL_PREFIX=arm-eabi-
  CSTOOL_PATH=$(CSTOOL_DIR)/bin
  CSTOOL_LIBSTDC++_PATH=$(CSTOOL_DIR)/arm-none-linux-gnueabi/libc/usr/lib 
 
  #set the kernel installation path
 -#KERNEL_INSTALL_DIR=$(HOME)/INVALIDVAL
 -KERNEL_INSTALL_DIR=$(HOME)/bc10-rowboat-kernel
 +KERNEL_INSTALL_DIR=$(HOME)/INVALIDVAL
  TARGETFS_INSTALL_DIR=$(ANDROID_ROOT)
 
  GFX_TARGETFS_KERMOD_PATH=$(TARGETFS_INSTALL_DIR)/lib/modules/2.6.32

RULEs.make変更完了後make、make installを実行します。~

 $ make 
 $ make OMAPES=3.x install

** u-boot [#w583bb25]
u-boot-bc10のアップデートにより、有機ELを表示デバイスの初期値とするboot.scrの設定を~
予め組込むように修正しています。~
またアップデート後のbc10起動時の入力待機時間を10秒から2秒に変更しています。~

 $ cd ~
 $ git clone git://gitorious.org/bc10/u-boot-bc10.git u-boot-bc10
 $ cd u-boot-bc10
 $ make mrproper
 $ make omap3_bc10_config
 $ make

有機ELを表示デバイスの初期値とする設定はu-boot-bc10内の~
include/configs/omap3_bc10.hに以下のように記載しています。~

 u-boot-bc10/include/configs$ vi omap3_bc10.h
 #define CONFIG_EXTRA_ENV_SETTINGS \
         "loadaddr=0x82000000\0" \
         "usbtty=cdc_acm\0" \
         "console=ttyS2,115200n8\0" \
         "androidconsole=ttyS2\0" \
         "mem=256M\0" \
         "vram=12M\0" \
         "dvimode=1024x768MR-24@60\0" \
         "defaultdisplay=lcd\0" \
         "mmcroot=/dev/mmcblk0p2 rw\0" \
         "mmcrootfstype=ext3 rootwait\0" \
         "nandroot=/dev/mtdblock4 rw\0" \ 

これは、以下のboot.scr と同じ内容になります。~

 if fatload mmc 0 84000000 uImage
 then
  echo ***** Kernel: /dev/mmcblk0p1/uImage.bin *****
 fi
 echo ***** RootFS: /dev/mmcblk0p2 *****
 setenv bootargs 'mem=256M androidboot.console=ttyS2 console=tty0  
 console=ttyS2,115200n8 root=/dev/mmcblk0p2 init=/init rootwait omapdss.def_disp=lcd'
 bootm 84000000
 (注)setenv bootargs〜 disp=lcd' は改行していますが、使用される際は1行で記述してください。

ビルド後u-boot.binはSDカードFATパーティションにMLOファイルコピー後にコピーします。~
SDカードイメージ作成についてはページ下部にあります[[SDカードイメージ作成]]をご覧ください。~

** x-loader [#r82ab56e]

 $ cd ~
 $ git clone git://gitorious.org/~bc-dev/x-load-omap3/x-load-bc10.git x-load-bc10
 $ cd x-load-bc10
 $ git checkout -t -b bc10 origin/bc10
 $ make omap3530bc10_config
 $ make

x-load.binはOMAP BootROMの仕様とフォーマットが合っていないため、このままNAND Flashや~
SDカードに書きこんでもブートローダとして動作させることができません。~
この問題を解決するため、signGPというツールでx-load.binを加工する必要があります。~
~
signGPの実行ファイルは以下の場所からダウンロードすることができます。 ~
http://beagleboard.googlecode.com/files/signGP ~
ダウンロードしたsignGPを以下のように実行します。~

 $ signGP x-load.bin

ビルド後作成されたx-load.bin.iftはMLOという名前に変更します。~
MLOはSDカードFATパーティションの先頭に書き込むためのファイルです。~
SDカードイメージ作成についてはページ下部にあります[[SDカードイメージ作成]]をご覧ください。~

 $ mv x-load.bin.ift MLO

以上の作成ファイルを圧縮したものが prebuilt イメージになります。~

* prebuilt イメージの配置手順 [#zabf94e9]
* prebuilt-image [#ab8cb783]
上記手順にて作成したイメージを sourceforge.jp からダウンロードできます。(URLは以下の通りです。)~
http://sourceforge.jp/projects/bc10-dev/downloads/50494/bc10-boot-sd-image--release20110107.tar.gz/ ~

ダウンロードしてきたファイルはホームディレクトリに置くものとします。~
bc10-boot-sd-image--release20110107.tar.gz を展開すると ~

 FAT.tar.gz
 EXT3.tar.gz

上記の二つのアーカイブが入っています。 ~
それぞれをSDカードのFAT32パーティションとEXT3パーティションに書き込んで下さい。~
書き込みの手順は以下のようになります。~

* SD カードイメージ作成 [#o13ac30f]
[[bc10/booting 起動用SDカード作成 >http://labs.beatcraft.com/ja/index.php?bc10%2Fbooting#q0449272]]の~
手順に従って作成していきます。~
この作成手順はSDカード用です。~
bc10は、設計上マイクロSDからのブートは出来ません。~
~
SDカードの概略は以下のようになります。~

- FAT32パーティション
-- X- Loader
-- U-Boot
-- Linux kernel
- Linuxパーティション
-- Linuxルートファイルシステム

作業環境はLinuxを想定しています。~
作業手順は以下のようになります。~
+ パーティションの初期化・設定
+ ファイルシステムのフォーマット
+ ファイルの配置

以下の説明は主に[[LinuxBootDiskFormat(code.google.com):http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat]]から引用してアレンジしたものです。~

** SDカードのアンマウント [#s015a679]
このあとパーティション操作やフォーマット作業をおこなうために、~
SDカードがマウントされている場合には、まずアンマウントをおこないます。~
以下のようにSDカードがマウントされているとします。~

 $ df -h

 Filesystem            Size  Used Avail Use% Mounted on
 ...
 /dev/sdc1             400M   94M  307M  24% /media/disk
 ...

アンマウントをおこないます。~

 $ umount /media/disk

** パーティションの初期化・設定 [#y9078f7c]
fdiskコマンドを実行します。~
引数にはSDカードのデバイスファイルを指定します。~
この位置は作業環境によって変わりますので、事前に確認しておいてください。~
以下は実行例です。~

 $ sudo fdisk /dev/sdc

 Command (m for help): [p]
 
 Disk /dev/sdc: 2021 MB, 2021654528 bytes
 255 heads, 63 sectors/track, 245 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
 
    Device Boot      Start         End      Blocks   Id  System
 /dev/sdc1   *           1         246     1974240+   c  W95 FAT32 (LBA)
 Partition 1 has different physical/logical endings:
      phys=(244, 254, 63) logical=(245, 200, 19)

パーティションを全て削除します。
 Command (m for help): [d]
 Selected partition 1

エキスパートモードにモード変更します。
 Command (m for help): [x]

ヘッダ数を255に設定します。
 Expert Command (m for help): [h]
 Number of heads (1-256, default xxx): [255]

セクタ数を63に設定します。
 Expert Command (m for help): [s]
 Number of sectors (1-63, default xxx): [63]

シリンダ数の設定は使用するSDカードごとに異なります。~
以下の計算式でシリンダ数を計算します。(小数点以下切り捨て)
 #シリンダ数 = 小数点以下切り捨て (SDカードのバイト数 / 255 / 63 / 512 )

今回の例で使用しているSDカードでは以下のようになります。
 2021654528 / 255 / 63 / 512 = 245.79
 -> 245

シリンダ数を設定します。今回の例では245になります。
 Expert Command (m for help): [c]
 Number of cylinders (1-256, default xxx): [上式で求めた値]

ノーマルモードにモード変更します。
 Expert Command (m for help): [r]

FAT32パーティションを作成します。
 Command (m for help): [n]
 Command action
    e   extended
    p   primary partition (1-4)
 [p]
 Partition number (1-4): [1]
 First cylinder (1-245, default 1): [(press Enter)]
 Using default value 1
 Last cylinder or +size or +sizeM or +sizeK (1-245, default 245): [+50]
 
 Command (m for help): [t]
 Selected partition 1
 Hex code (type L to list codes): [c]
 Changed system type of partition 1 to c (W95 FAT32 (LBA))

ブートフラグを設定します。
 Command (m for help): [a]
 Partition number (1-4): [1]

Linuxのファイルシステム用パーティションを作成します。
 Command (m for help): [n]
 Command action
    e   extended
    p   primary partition (1-4)
 [p]
 Partition number (1-4): [2]
 First cylinder (52-245, default 52): [(press Enter)]
 Using default value 52
 Last cylinder or +size or +sizeM or +sizeK (52-245, default 245): [(press Enter)]
 Using default value 245

パーティション設定を確認します。
 Command (m for help): [p]
 
 Disk /dev/sdc: 2021 MB, 2021654528 bytes
 255 heads, 63 sectors/track, 245 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
 
    Device Boot      Start         End      Blocks   Id  System
 /dev/sdc1   *           1          51      409626    c  W95 FAT32 (LBA)
 /dev/sdc2              52         245     1558305   83  Linux

パーティションテーブルの変更を保存します。
 Command (m for help): [w]
 The partition table has been altered!
 
 Calling ioctl() to re-read partition table.
 
 WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
 The kernel still uses the old table.
 The new table will be used at the next reboot.
 
 WARNING: If you have created or modified any DOS 6.x
 partitions, please see the fdisk manual page for additional
 information.
 Syncing disks.

** ファイルシステムのフォーマット [#g51c7516]
FAT32パーティションとLinuxパーティションをそれぞれフォーマットします。~
FAT32とEXT3の文字列の部分はパーティションのラベルになりますので、お好きな名前で設定してください。~

 $ [sudo mkfs.msdos -F 32 /dev/sdc1 -n FAT32]
 mkfs.msdos 2.11 (12 Mar 2005)

 $ [sudo mkfs.ext3 -L EXT3 /dev/sdc2]
 mke2fs 1.40-WIP (14-Nov-2006)
 Filesystem label=
 OS type: Linux
 Block size=4096 (log=2)
 Fragment size=4096 (log=2)
 195072 inodes, 389576 blocks
 19478 blocks (5.00%) reserved for the super user
 First data block=0
 Maximum filesystem blocks=402653184
 12 block groups
 32768 blocks per group, 32768 fragments per group
 16256 inodes per group
 Superblock backups stored on blocks: 
         32768, 98304, 163840, 229376, 294912
 
 Writing inode tables: done                            
 Creating journal (8192 blocks): done
 Writing superblocks and filesystem accounting information: 

* prebuilt-image のファイルの配置 [#a5b17eea]
**FAT32パーティションへのファイルの配置 [#g32d86a9]
FAT32パーティションのファイルには配置方法に制約がありますので、~
作業環境でアーカイブを一旦展開します。~
 
 $ mkdir FAT
 $ [tar xvfz FAT.tar.gz -C FAT]

展開すると以下のファイルが含まれています。~

 $ ls FAT.tar.gz
%% MLO  boot.scr  u-boot.bin  uImage %%
 MLO  u-boot.bin  uImage


1段目のブートローダであるX-Loader(MLO)は、SDカード上の配置方法に制約があります。~
必ず以下のように配置してください。~
- FAT32パーティションのフォーマット後、最初に配置するようにします。
- パーティション内のトップディレクトリに配置します。

 $ [cp MLO /media/FAT32/]

他のファイルには配置方法に特に規則はありません。そのままSDカード上にコピーしてください。

 $ [cp u-boot.bin boot.scr uImage /media/FAT32/]

配置する順序を間違えたり、手順に失敗したりした場合には、~
FAT32パーティションのフォーマットからやり直すのが確実な手順になります。~

**EXT3パーティションへの配置 [#g73e209f]
EXT3パーティションへの配置には特に制限はありませんので、アーカイブを直接SDカード上に展開します。

 $ [sudo tar xvfz EXT3.tar.gz -C /media/EXT3]

~
以上で prebuild イメージのSDカード上への配置は完了です。~
念のため sync を行ってからアンマウントしてください。

 $ [sudo sync]
 $ [umount /media/EXT3]
 $ [umount /media/FAT32]

* SDカードからの起動 [#w6faa303]
用意できたSDカードをbc10のSDカードスロットに挿入して電源を投入します。~
Androidは初回起動時にSQLite3設定DBの作成やDalvik EXecutable(.dex)ファイルの生成を行い~
それらの起動ディスクへの書き込みを行いますので、初回起動には少し長めに時間がかかります。~
~
起動時間は初回起動には約1分40秒程度、2回目以降は50秒程度の時間になります。~

* 補足 [#ceeee919]
** ボタン配置について [#q4e5c3ef]
bc10の本体正面右側に7つのボタンがあります。~
図a.の数字で示した各ボタンは、以下ように予め設定してあります。~
(図のbc10 筐体は試作用筐体です)~
 1. Menu
 2. Back
 3. Home
 4. 上
 5. 左
 6. 右
 7. 下

#ref(keypad_android.jpg);
~

** Android SGX について [#b80953e2]
init.rcの最終行に記載のとおりSGX機能が有効の設定になっています。~
不要の場合はコメントアウトで無効にしてください。~
またkernel、userland更新時は更新されたkernel、userlandを~
含むSGXのリビルドが必要になります。~

 $ vi init.rc

 # Start PowerVR SGX DDK
 service pvr /system/bin/sgx/rc.pvr start

** bc10 Wifi 設定手順 [#a7be2574]
Android GUI上からのWifi ON/OFF機能を実装していません。~
起動の際にシリアルでinsmod 、netcfgコマンドで動作確認をしています。~
対象は、RT3070USB搭載の以下の機器になります。~

 メーカー   型番               対応 Device ID
 PLANEX     GW-USMicroN-G      2019:ED14
 Logitec    LAN-W150N/U2IPH    0789:0164
 Logitec    LAN-W150N/U2BK     0789:0168
 Buffalo    WLI-UC-GNM         0411:01a2
 Buffalo    WLI-UC-GN          0411:015d
 Buffalo    WLI-UC-G301N       0411:016f    Baffalo WLI-UG-G301N は USB ACパワードハブ経由に接続した場合の動作を確認しています

上記のRT3070USBデバイスをbc10に接続し起動します。~
デバイスが認識された場合、シリアルコンソールに以下のように表示されます。~
(WLI-UC-GNでの接続例)~

 ...
 usb 1-2.4: new high speed USB device using ehci-omap and address 3
 usb 1-2.4: New USB device found, idVendor=0411, idProduct=015d
 usb 1-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
 usb 1-2.4: Product: 802.11 n WLAN
 usb 1-2.4: Manufacturer: Ralink
 usb 1-2.4: SerialNumber: 1.0
 ...

rt3070sta.koファイルをinsmodし、netcfgコマンドでデバイスのup dhcpを行います。~
RT2870STA.datはファイル内で指定したSSIDへの接続に使用します。~
以下にシリアルコンソールからのnetcfg dhcp接続までの例を記載します。~
(出力されるログは省略しています。また、/system/lib/modules以下のRT2870STA.datは使用しません)

 # cd /system/lib/modules
 # ls
 RT2870STA.dat  rt3370sta.ko
 # netcfg
 lo       UP    127.0.0.1       255.0.0.0       0x00000049
 # insmod rt3070sta.ko
 ...
 # netcfg
 lo       UP    127.0.0.1       255.0.0.0       0x00000049
 ra0      DOWN  0.0.0.0         0.0.0.0         0x00001002
 # netcfg ra0 up 
 ...
 # netcfg
 lo       UP    127.0.0.1       255.0.0.0       0x00000049
 ra0      UP    0.0.0.0         0.0.0.0         0x00001043
 # netcfg ra0 dhcp
 # netcfg
 lo       UP    127.0.0.1       255.0.0.0       0x00000049
 ra0      UP    192.168.13.4    255.255.255.0   0x00001043
 # 

prebuiltイメージのRT2870STA.datは以下のように設定しています。~
お使いの環境に合わせて設定してください。~
~
また接続設定例として以下にSSID:XXX-BC、認証方式:AuthMode OPEN、~
暗号化方式:EncrypType WEP、暗号キーの文字タイプ:Key1Type 1(acsii)、~
暗号キー:Key1Str xxx.testessidの接続設定例を記載します。~
~
詳細については2010_0831_RT3070_Linux_STA_v2.4.0.1_DPO/README_STA_usb ~
をご覧ください。~

- RT2870STA.dat
 ...
 SSID=ssidname
 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=authmodetype
 EncrypType=encyptype
 WPAPSK=
 DefaultKeyID=1
 Key1Type=0
 Key1Str=
 ...

- 接続設定例
 SSID=XXX-BC
 ...
 AuthMode=OPEN
 EncrypType=WEP
 WPAPSK=
 DefaultKeyID=1
 Key1Type=1
 Key1Str=xxx.testessid
 Key2Type=0

** USB Wifi (RT3070USB) ドライバーについて [#nd94ed05]
prebuiltイメージでは' WFLAGS += -DCONFIG_STA_SUPPORT 'としてビルドしています。~
debug ログが出力されないため必要なログが表示されないことがありますのでご注意ください。~
~
またオリジナルのos/linux/config.mkでは ' WFLAGS += -DCONFIG_STA_SUPPORT -DDBG 'と~
なっていてdebugログを出力するように設定しています。~
使用の際 シリアルに多くのログが表示され使いにくい場合があります。~
~
 $ vi os/linux/config.mk
 
 # config for STA mode
 
 ifeq ($(RT28xx_MODE),STA)
 WFLAGS += -DCONFIG_STA_SUPPORT -DDBG

また以下のURLにrt3370sta.koのdebugプリント版rt3370sta.ko.tar.gzがあります。~
使用される際は、ダウンロードしsystem/lib/modulesにある同名ファイルrt3370sta.koと~
入れ替えて使用してください。~
http://sourceforge.jp/projects/bc10-dev/releases/50494 ~
~
以下は、RT3070USB を bc10 に挿し insmod rt3370sta.ko を実行した際の~
シリアルに表示されたログです。~

- ' WFLAGS += -DCONFIG_STA_SUPPORT -DDBG ' 時のログ ~

 # insmod rt3370sta.ko
 rtusb init --->
 ===>rt2870_probe()!
 --> RTMPAllocAdapterBlock
 
 
 === pAd = d284d000, size = 503240 ===
 
 <-- RTMPAllocAdapterBlock, Status=0
 NumEndpoints=7
 BULK IN MaxPacketSize = 512
 EP address = 0x81
 BULK OUT MaxPacketSize = 512
 EP address = 0x 1
 BULK OUT MaxPacketSize = 512
 EP address = 0x 2
 BULK OUT MaxPacketSize = 512
 EP address = 0x 3
 BULK OUT MaxPacketSize = 512
 EP address = 0x 4
 BULK OUT MaxPacketSize = 512
 EP address = 0x 5
 BULK OUT MaxPacketSize = 512
 EP address = 0x 6
 STA Driver version-2.4.0.1
 NVM is EEPROM
 Allocate a net device with private data size=0!
 Allocate net device ops success!
 The name of the new ra interface is ra0...
 RtmpOSNetDevAttach()--->
 <---RtmpOSNetDevAttach(), ret=0
 <===rt2870_probe()!
 usbcore: registered new interface driver rt2870
 # netcfg
 lo       UP    127.0.0.1       255.0.0.0       0x00000049
 ra0      DOWN  0.0.0.0         0.0.0.0         0x00001002
 
- ' WFLAGS += -DCONFIG_STA_SUPPORT ' 時のログ ~

 # insmod rt3370sta.ko
 rtusb init --->
 usbcore: registered new interface driver rt2870
 # netcfg
 lo       UP    127.0.0.1       255.0.0.0       0x00000049
 ra0      DOWN  0.0.0.0         0.0.0.0         0x00001002

** boot.scr について [#j14f31cf]
u-boot-bc10のアップデートにより、有機ELを表示デバイスの初期値とする設定は~
u-boot-bc10内のinclude/configs/omap3_bc10.hに以下のように予め記載しています。~
そのため boot.scrがこのバージョンでは含まれていません。~

また同じ内容の設定をboot.scrに記載し起動することも可能です。~
その際は、u-boot.binの設定をboot.scrの設定で上書きして起動します。~
有機ELを表示デバイスの初期値とする設定のboot.scrは以下のように作成します。~

 $ cd ~
 $ vi boot.script
 
 if fatload mmc 0 84000000 uImage
 then
   echo ***** Kernel: /dev/mmcblk0p1/uImage.bin *****
  fi
  echo ***** RootFS: /dev/mmcblk0p2 *****
  setenv bootargs 'mem=256M androidboot.console=ttyS2 console=tty0  
  console=ttyS2,115200n8 root=/dev/mmcblk0p2 init=/init rootwait omapdss.def_disp=lcd'
  bootm 84000000
 (注)setenv bootargs〜 disp=lcd' は改行していますが、使用される際は1行で記述してください。
 
 $ mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n ./boot.script -d ./boot.script ./boot.scr &> /dev/null

またdvi接続での起動の際は上記boot.scrのomapdss.def_disp=lcdをomapdss.def_disp=dviに変更し、~
解像度を設定してください。~
解像度は1024x768での動作確認になります。~

 if fatload mmc 0 84000000 uImage
 then
   echo ***** Kernel: /dev/mmcblk0p1/uImage.bin *****
  fi
 setenv bootargs 'mem=256M androidboot.console=ttyS2 console=tty0  
 console=ttyS2,115200n8 root=/dev/mmcblk0p2 init=/init rootwait 
 omapfb.mode=dvi:1024x768MR-24@60 omapdss.def_disp=dvi'
  bootm 84000000
 (注)setenv bootargs〜 disp=lcd' は改行していますが、使用される際は1行で記述してください。

omapfb.modeやomapdssの詳細については、kernelソースファイル内 ~
kernel/Documentation/arm/OMAP/DSSをご覧ください~

* 参照URL [#e90654f8]
- rowboat ConfigureAndBuild ~
-- http://code.google.com/p/rowboat/wiki/ConfigureAndBuild#Install_the_drivers_in_Target_filesystem
- [Armadillo:06309] Re: Armadillo-440 で使用可能な無線LAN アダプタについて ~
-- http://lists.atmark-techno.com/pipermail/armadillo/2010-December/006309.html

* 更新記録 [#qcd29268]
2011/01/07 初稿記載、文言修正~
2011/01/12 ボタン配置について追記、USB Wifi (RT3070USB) ドライバー ビルドのdiff を修正、ファイル添付~
2011/01/13 boot.scr について追記~
2011/02/01 文言追加、修正~
2011/02/04 u-boot、boot.scrについて文言追加と修正

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