bc10/prebuilt-20110127 概要 †bc10/prebuilt-20110127は、rowboat コミュニティーのTI-Android-FroYo-Devkit-V2がベースのAndroidのバージョンとなります。
主な変更は以下のとおりです。
bc10/TI-Android-FroYo-Devkit-V2 †
TI-Android-FroYo-Devkit-V2のfroyo について †前述のとおりTI-Android-FroYo-Devkit-V2 は、 またlunchコマンド実行時に以下のような表示がされます。 BUILD_ID=MASTER TI-Android-FroYo-Devkit-V2のfroyoはmaster branch (略) /TI-Android-FroYo-DevKit-V2$ 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=MASTER ============================================ 主な特徴 †TI-Android-FroYo-Devkit-V2は、OMAP35x EVM, AM35x EVM, 以下、TI-Android-FroYo-Devkit-V2 の開発環境、bc10用へ変更方法や prebuilt イメージの作成手順 †開発環境 †今回の開発環境の概略は以下のとおりです。
パッケージインストール †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 †TI-Android-FroYo-Devkit-V2 のビルドに必要なsun-java5-jdkはUbuntu 9.10 以降 $ 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 $ 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 ソースファイル取得 †repo 設定 †androidのソースコードを取得するためにrepoの設定を行います。 $ cd ~ $ mkdir bin $ curl http://android.git.kernel.org/repo >~/bin/repo $ chmod a+x ~/bin/repo Ubuntuでは、一度ログアウトしてログインし直すと~/binへのPATHは通っています。 $ export PATH=~/bin:$PATH ファイルの取得 †TI-Android-Froyo-Devkit-V2の取得方法を記載します。 $ cd ~ $ mkdir TI-Android-FroYo-DevKit-V2 $ cd TI-Android-FroYo-DevKit-V2 $ wget http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/02_00_00/exports/TI-Android-FroYo-DevKit-V2.xml $ repo init -u git://gitorious.org/rowboat/manifest.git -m TI-Android-FroYo-DevKit-V2.xml $ repo sync bc10 用 DevKit V2 patch †添付ファイルにあるbc10用DevKit V2 patchのdevkitv2-patches-for-bc10.tar.gzを $ cd ~ $ tar xvfz devkitv2-patches-for-bc10.tar.gz $ cd devkitv2-patches-for-bc10 bc10-devkitV2-patch.sh 内のANDROID_DIR、SETUP_DIRと ### Settings
#ANDROID_DIR=${HOME}/TI_Android_FroYo_DevKit-V2/Android_Source_Manifest/rowboat-android
ANDROID_DIR=${HOME}/prebuilt-20110122-DevkitV2/TI-Android-FroYo-DevKit-V2
SETUP_DIR=${HOME}/prebuilt-20110122-DevkitV2/devkitv2-patches-for-bc10
PATCH_DIR=${SETUP_DIR}/patches
###
patch適用後、device/ti以下にbc10ディレクトリが作成されます。 $ cd ~ $ tar xvfz devkitv2-patches-for-bc10.tar.gz $ cd ~/devkitv2-patches-for-bc10 $ ./bc10-devkitV2-patch.sh $ ls TI-Android-FroYo-DevKit-V2/device/ti/ am3517evm bc10 beagleboard igepv2 omap3evm Android のビルド †bc10用設定ファイルを読み込みビルドします。 $ cd ~/TI-Android-FroYo-DevKit-V2 $ source build/envsetup.sh $ lunch bc10-eng $ make イメージの作成 †ビルドが終了したらビルドされたuserlandのバイナリを起動可能な配置に整えます。 ### Settings
#ANDROID_DIR=${HOME}/bc10
ANDROID_DIR=${HOME}/prebuilt-20110122-DevkitV2/TI-Android-FroYo-DevKit-V2
###
$ cd ~/devkitv2-patches-for-bc10 $ ./mkbc10-image.sh 実行後、TI-Android-FroYo-DevKit-V2/out/target/product/bc10/に、 環境変数の設定 †bootに必要なx-loader、u-boot、kernelはAndroidのソースコードと共に $ export PATH=/home/beat/TI-Android-FroYo-DevKit-V2/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin:$PATH $ export ARCH=arm $ export CROSS_COMPILE=arm-eabi- kernel のビルド †$ 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 arch/arm/boot/ Image Makefile bootp compressed install.sh uImage zImage USB Wifi (RT3070USB) ドライバー ビルド †ここでは、RT3070USBを使用している無線LAN USBデバイス、
+LINUX_SRC = /home/beat/prebuilt-20110122-DevkitV2/bc10-rowboat-kernel +CROSS_COMPILE = /home/beat/prebuilt-20110122-DevkitV2/TI-Android-FroYo-DevKit-V2/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- $ cd ~ $ tar xvfz 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO.tar.bz2 $ patch -p0 < RT3370USB.diff $ cd 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/ 修正が完了したら、makeを実行します。make 完了後 os/linux 以下にrt3070sta.ko が作成されます。 $ make $ ls -l os/linux/rt3070sta.ko -rw-r--r-- 1 beat beat 10871281 2011-01-20 14:50 os/linux/rt3070sta.ko diff -urpN 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO-orig/Makefile 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/Makefile
--- 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO-orig/Makefile 2011-01-07 11:18:32.000000000 +0900
+++ 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/Makefile 2011-01-18 18:11:40.641082398 +0900
@@ -23,7 +23,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
@@ -176,6 +177,11 @@ LINUX_SRC_MODULE = /lib/modules/$(shell
CROSS_COMPILE =
endif
+ifeq ($(PLATFORM),BC10)
+LINUX_SRC = /home/beat/prebuilt-20110122-DevkitV2/bc10-rowboat-kernel
+CROSS_COMPILE = /home/beat/prebuilt-20110122-DevkitV2/TI-Android-FroYo-DevKit-V2/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-
@@ -384,6 +390,10 @@ 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
@@ -392,7 +402,7 @@ endif
endif
endif
endif
-
+endif
release:
$(MAKE) -C $(RT28xx_DIR)/striptool -f Makefile.release clean
@@ -423,6 +433,9 @@ ifeq ($(TARGET), LINUX)
$(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 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO-orig/RT2870STA.dat 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/RT2870STA.dat
--- 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO-orig/RT2870STA.dat 2011-01-07 11:18:32.000000000 +0900
+++ 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/RT2870STA.dat 2011-01-18 18:05:18.130569879 +0900
@@ -1,8 +1,10 @@
#The word of "Default" must not be removed
Default
CountryRegion=5
-CountryRegionABand=7
-CountryCode=
+#CountryRegionABand=7
+CountryRegionABand=1
+#CountryCode=
+CountryCode=JP
ChannelGeography=1
SSID=11n-AP
NetworkType=Infra
diff -urpN 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO-orig/common/rtusb_dev_id.c 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/common/rtusb_dev_id.c
--- 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO-orig/common/rtusb_dev_id.c 2011-01-07 11:18:32.000000000 +0900
+++ 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/common/rtusb_dev_id.c 2011-01-18 18:06:15.102333133 +0900
@@ -104,6 +104,13 @@ USB_DEVICE_ID rtusb_dev_id[] = {
{USB_DEVICE(0x13D3,0x3321)}, /* Azurewave */
{USB_DEVICE(0x07FA,0x7712)}, /* Edimax */
{USB_DEVICE(0x0789,0x0166)}, /* Edimax */
+ {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 */
{ }/* Terminating entry */
};
diff -urpN 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO-orig/include/firmware.h 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/include/firmware.h
--- 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO-orig/include/firmware.h 2011-01-07 11:18:32.000000000 +0900
+++ 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/include/firmware.h 2011-01-20 19:09:02.032635701 +0900
@@ -1,28 +1,5 @@
-/*
- *************************************************************************
- * Ralink Tech Inc.
- * 5F., No.36, Taiyuan St., Jhubei City,
- * Hsinchu County 302,
- * Taiwan, R.O.C.
- *
- * (c) Copyright 2002-2010, Ralink Technology, Inc.
- *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will beuseful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- * *
- *************************************************************************/
+/* AUTO GEN PLEASE DO NOT MODIFY IT */
+/* AUTO GEN PLEASE DO NOT MODIFY IT */
UCHAR FirmwareImage [] = {
diff -urpN 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO-orig/os/linux/config.mk 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/os/linux/config.mk
--- 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO-orig/os/linux/config.mk 2011-01-07 11:20:51.000000000 +0900
+++ 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/os/linux/config.mk 2011-01-18 18:08:15.011707777 +0900
@@ -11,7 +11,8 @@ HAS_QA_SUPPORT=n
HAS_XLINK=n
# 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
@@ -415,6 +416,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-rame-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)
diff -urpN 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO-orig/os/linux/usb_main_dev.c 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/os/linux/usb_main_dev.c
--- 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO-orig/os/linux/usb_main_dev.c 2011-01-07 11:18:32.000000000 +0900
+++ 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/os/linux/usb_main_dev.c 2011-01-20 14:49:31.713651825 +0900
@@ -40,6 +40,7 @@ MODULE_DESCRIPTION("RT2870 Wireless Lan
#ifdef CONFIG_STA_SUPPORT
#ifdef MODULE_VERSION
MODULE_VERSION(STA_DRIVER_VERSION);
+MODULE_LICENSE("GPL");
#endif
#endif /* CONFIG_STA_SUPPORT */
注: EXTRA_CFLAGS := -D__KERNEL__ -DMODULE=1 -I$(LINUX_SRC)から-nostdinc -iwithprefix include $(WFLAGS)までは1行になります。
USB Wifi (RT3070USB) ドライバー 配置について †
接続設定の詳細については 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/README_STA_usb
$ sudo mkdir ~/TI-Android-FroYo-DevKit-V2/out/target/product/bc10/bc10-image/system/lib/modules $ sudo mkdir -p ~/TI-Android-FroYo-DevKit-V2/out/target/product/bc10/bc10-image/system/etc/Wireless/RT2870STA $ sudo cp -afr os/linux/rt3070sta.ko ~/TI-Android-FroYo-DevKit-V2/out/target/product/bc10/bc10-image/system/lib/modules/ $ sudo cp -afr RT2870STA.dat ~/TI-Android-FroYo-DevKit-V2/out/target/product/bc10/bc10-image/system/etc/Wireless/RT2870STA/ $ cd ~ $ unzip RT2870_Firmware_V22.zip $ cd RT2870_Firmware_V22/ $ sudo mkdir ~/TI-Android-FroYo-DevKit-V2/out/target/product/bc10/bc10-image/system/etc/firmware $ sudo cp -afr * ~/TI-Android-FroYo-DevKit-V2/out/target/product/bc10/bc10-image/system/etc/firmware/ $ sudo chown -R root.root ~/TI-Android-FroYo-DevKit-V2/out/target/product/bc10/bc10-image/system $ sudo chmod -R 777 ~/TI-Android-FroYo-DevKit-V2/out/target/product/bc10/bc10-image/system SGX SDK のビルド †bc10/froyoと同じ手順でTI Android SGX SDKを取得します。 $ 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 インストールディレクトリ位置を聞かれるので今回はデフォルトインストールディレクトリ Rules.make の変更 †Rules.make のHOME、GRAPHICS_INSTALL_DIR、ANDROID_ROOT、CSTOOL_DIR、 $ cd ~/OMAP35x_Android_Graphics_SDK_3_01_00_03 $ vi Rules.make Rules.make PLATFORM=LinuxOMAP3 ################# FIELDS MODIFIABLE BY THE USER ############ ################### #set home area HOME (relative location for all SDK operations) #HOME=INVALIDVAL HOME=/home/beat #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)/TI-Android-FroYo-DevKit-V2/out/target/product/bc10/bc10-image #set toolchain root path for arm-eabi #CSTOOL_DIR=INVALIDVAL CSTOOL_DIR=$(HOME)/TI-Android-FroYo-DevKit-V2/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0 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 TARGETFS_INSTALL_DIR=$(ANDROID_ROOT) GFX_TARGETFS_KERMOD_PATH=$(TARGETFS_INSTALL_DIR)/lib/modules/2.6.32 #Android ANDROID_DISCIMAGE=$(TARGETFS_INSTALL_DIR)/ RULE.make 変更完了後 make、make install を実行します。 $ make $ make OMAPES=3.x install u-boot †bc10(omap3530)でLinuxを動作させる場合、電源の投入後一般に以下のような順番で実行されます。 1. BootROM code 2. X-Loader 3. U-Boot 4. Linux kernel(uImage) u-bootはbc10起動時に実行される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 ビルド後出来たu-boot.binはSDカードFATパーティションにMLOファイルコピー後コピーします。 x-loader †x-loaderはbc10起動時に実行される第一段ブートローダです。 $ 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や $ signGP x-load.bin ビルド後出来たx-load.bin.iftはMLOという名前でSDカードのFATパーティション先頭に、 boot.scr †このファイルはシリアルコンソールでu-bootのコマンドプロンプトからsetenvで
boot.scr作成のためにboot.scriptというファイルを作成し以下の内容を記載します。 $ 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 omapfb.mode=dvi:1024x768MR-24@60 omapdss.def_disp=lcd cli6010.enable=0' bootm 84000000 注:setenvからcli6010.enable=0'までは1行です。 $ mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n ./boot.script -d ./boot.script ./boot.scr &> /dev/null 以上の作成ファイルを圧縮したものがprebuiltイメージになります。 prebuilt イメージの配置手順 †prebuilt-image †上記手順にて作成しましたイメージをsourceforge.jpからダウンロードできます。 以下のURLからbc10-boot-sd-image--release20110127.tar.gzをダウンロードしてください。 bc10-boot-sd-image--release20110127.tar.gz を展開すると FAT.tar.gz EXT3.tar.gz 上記の二つのアーカイブが入っています。 SD カードイメージ作成 †bc10/booting 起動用SDカード作成 の手順に従って作成していきます。
作業環境はLinuxを想定しています。
以下の説明は主にLinuxBootDiskFormat(code.google.com)から引用してアレンジしたものです。 SDカードのアンマウント †このあとパーティション操作やフォーマット作業をおこなうために、 $ df -h Filesystem Size Used Avail Use% Mounted on ... /dev/sdc1 400M 94M 307M 24% /media/disk ... アンマウントをおこないます。 $ umount /media/disk パーティションの初期化・設定 †fdiskコマンドを実行します。 $ 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 )~
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. ファイルシステムのフォーマット †FAT32パーティションとLinuxパーティションをそれぞれフォーマットします。 $ [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 のファイルの配置 †FAT32パーティションへのファイルの配置 †FAT32パーティションのファイルには配置方法に制限がありますので、 $ mkdir ~/FAT $ [tar xvfz FAT.tar.gz -C FAT/] 展開すると以下のファイルが含まれています。 $ ls FAT MLO boot.scr u-boot.bin uImage 1段目のブートローダであるX-Loader(MLO)は、
$ [cp MLO /media/FAT32/] 他のファイルには配置方法に特に制限はありません。 $ [cp u-boot.bin boot.scr uImage /media/FAT32/] 配置する順序を間違えたり、手順に失敗したりした場合には、 EXT3パーティションへのファイルの配置 †ext3パーティションのファイルの配置には特に制限はありませんので、 $ [sudo tar xvfz ext3.tar.gz -C /media/EXT3]
$ [sudo sync] $ [umount /media/EXT3] $ [umount /media/FAT32] SDカードからの起動 †用意できたSDカードをbc10のSDカードスロットに挿入して電源を投入します。 補足 †制限事項について †USBデバイスの認識について †USBカメラ接続時にUSBデバイスがdisconnectされUSBデバイスが動作しないことがあります。 CameraPreview Overlayについて †
Android 起動時の build.prop †デフォルトの表示デバイスro.sf.lcd_densityは120に設定しています。 $ cd ~/TI_Android_FroYo_DevKit-V2/Android_Source_Manifest/rowboat-android/out/target/product/bc10/bc10-image/system $ vi build.prop (略) ro.sf.lcd_density=120 Performance_Apps の導入について †注:このPerformance_Appsの導入については必須ではありません。 TI_Android_DevKit 02_00_00 Product Download Page $ wget http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/02_00_00/exports/Performance_Apps.tar.gz $ tar xvfz Performance_Apps.tar.gz $ cd Performance_Apps install_rowboperf.shを実行時にエラーが発生します、 $ vi install_rowboperf.sh *** 13,18 **** --- 13,19 ---- echo "Error: Rootfs location `basename $1` does not exist" exit $E_BADARGS fi + cd - echo "Rootfs location is $1" 完了後Android userlandを指定してスクリプトを実行します。 $ ./install_rowboperf.sh ~/TI_Android_FroYo_DevKit-V2/Android_Source_Manifest/rowboat-android/out/target/product/bc10/bc10-image install_rowboperf.shで追加されるapkと削除されるapkは以下のとおりです。 cp -r ./0xbench/Benchmark-release.apk $1/system/app/ cp -r ./0xbench/armeabi/* $1/system/bin/ cp ./3D/OGLES* $1/system/app/ cp ./3D/lib* $1/system/lib/ cp ./StorageIO/StorageIO.apk $1/system/app/ cp ./rowboatBench/rowboat.benchmark.runner-debug.apk $1/system/app/ cp -r ./RowboPERF/bin/armeabi-v7a/* $1/system/bin/ cp ./RowboPERF/RowboPERF.apk $1/system/app/ cp ./StorageIO/StorageIO.apk $1/system/app/ cp ./Launcher2/Launcher2.apk $1/system/app/ rm $1/system/app/Contacts.apk rm $1/system/app/Mms.apk rm $1/system/app/SpeechRecorder.apk Android SGX について †init.rc の最終行に記載のとおりSGX 機能が有効の設定になっています。 $ vi /media/LABEL2/init.rc # Start PowerVR SGX DDK service pvr /system/bin/sgx/rc.pvr start bc10 Wifi 設定手順 †Android GUI上からのWifi ON/OFF機能を実装していません。 メーカー 型番 対応 Device ID Buffalo WLI-UC-GN 0411:015d 上記のRT3070USBデバイスをbc10 に接続し起動します。 ... 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を行います。 # cd /system/lib/modules # ls rt3070sta.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 #
SSID=XXX-BC (略) AuthMode=OPEN EncrypType=WEP WPAPSK= DefaultKeyID=1 Key1Type=1 Key1Str=xxx.testessid Key2Type=0 SDカードについて †bc10でSDカード動作確認をとったSDカードは以下のものになります。
記載されている全てのSDカードの動作確認は取っておりませんが、
TI-Android-FroYo-DevKit-V2.2 UserGuide(本バージョンはV2です)のページに推奨SDカードが記載されています。 参照URL †
更新記録 †2011/01/27 初稿記載、文言修正 |