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 初稿記載、文言修正 |