[[bc10/ソフトウェア]]

COLOR(red){現在調整中}~

- 目次
#contents

* bc10用 android-2.2_r1.1 概要 [#ua4f8727]
bc10 向けに修正を加えた android-2.2_r1.1 userland の作成について記載します。~

作業の流れは以下のとおりです。~

 android-2.2_r1.1 の開発環境作成 ->ソースコード取得 -> bc10用変更スクリプト実行 -> SGX SDK のインストール

COLOR(red){現在調整中: 現在一部デバイスに対応中の箇所があります。予告無く更新することがありますのでご了承ください。}~

* 開発環境 [#p209889b]
今回の開発環境の概略は以下のとおりです。~
-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]

tag 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

* ソース取得 [#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-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〜3GB のファイルをダウンロードしますので回線速度に応じてそれなりに時間がかかります。


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

android-2.2_r1.1 を bc10 向けに最適化してビルドするための patch および設定ファイルを~
github のリポジトリから~
git clone で取得し、patch_to_android-2.2_r1.1_for_b10/bc10-patch.sh を実行します。~
~
%%bc10/ 直下に git clone し、device/beatcraft/patch-for-bc10内の bc10-patch.sh を実行します。%%~
%% $ cd ~/bc10/device/ %%~
%% $ git clone git://github.com/bc-dev/device_beatcraft_bc10.git beatcraft %%~
%% $ cd beatcraft/patch-for-bc10/ %%~
%% $ ./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 に合うよう修正してください。~

 ### 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


この patch で以下の機能を追加しています。~

- マウス対応、マウスカーソル表示の追加
- v4l2インタフェースを使用したUSBカメラ用対応


* Android ビルド [#abc9999a]
android ビルドのため 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

make を実行する際はビルドの環境(CPU のコア数)に応じて -j2 など並列実行を指定すると~
所要時間を減らすことができます。~
make 中に出力される情報を増やしたい場合は showcommands を付加して実行すると~
make 中に実行されているコマンドのログを詳細に出力します。~
~
例:
 $ time make showcommands -j2 2>&1 | tee make.log-20101115-01


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

%% $ cd ~/bc10 %%~
%% $ cd device/beatcraft/patch-for-bc10/image/ %%~
%% $ ./bc10-image.sh %%~

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

実行すると以下のように ~/bc10/out/target/product/bc10/ に 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]

x-loader、u-boot、kernel 部分の主な変更点は本ページ下部にあります~
[[x-loader、u-boot、kernel の変更点>http://labs.beatcraft.com/ja/index.php?bc10%2Ffroyo#sb45e0b4]]をご覧ください。~

**環境変数設定 [#x363e564]
boot に必要な x-loader、u-boot、kernel は全て android のソースコードと~
共に配布されている 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-


** x-loader [#r82ab56e]

 $ cd ~/bc10
 $ 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-loader.bin
 $ ./signGP x-load.bin

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

** u-boot [#w583bb25]

 $ cd ~/bc10
 $ git clone git://gitorious.org/bc10/u-boot-bc10.git u-boot-bc10
 $ cd u-boot-bc10
 $ git checkout -t -b build origin/build
 $ make omap3_bc10_config
 $ make

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


** kernel [#m4983c49]
 
 $ cd ~/bc10
 $ git clone git://gitorious.org/~bc-dev/rowboat/bc10-rowboat-kernel.git bc10-rowboat-kernel
 $ cd bc10-rowboat-kernel
 $ git checkout -t -b bc10-2.6.32-build origin/bc10-2.6.32-build
 $ make omap3_bc10_defconfig
 $ make uImage
 $ make modules

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

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


* SGX SDK の導入 [#adfdca2a]
SGX SDK を導入します。~
注:SGX_SDK のダウンロードには少々時間がかかります。~

 $ cd bc10
 $ git clone git://gitorious.org/rowboat/ti_android_sgx_sdk.git TI_Android_SGX_SDK
 $ 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}/OMAP35x_Android_Graphics_SDK_3_01_00_03にファイルが配置されます。~


** Rules.make の編集 [#sdbc1a26]
Rules.make を以下のように修正したものが ${HOME}/bc10/device/beatcraft/bc10 にありますので、その~
ファイルをコピーします。~
~
SGX SDK のビルドには android userland、toolchain と kernel ソースが必要になります。~
Rules.make は SGX SDK のビルドおよびインストールの際に上記のディレクトリ位置を参照するためのものです。~

 $ cd ${HOME}/OMAP35x_Android_Graphics_SDK_3_01_00_03
 $ mv Rules.make Rules.make.orig
 $ cp ${HOME}/bc10/device/beatcraft/bc10/Rules.make ${HOME}/OMAP35x_Android_Graphics_SDK_3_01_00_03/


 #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
 #GRAPHICS_INSTALL_DIR=$(HOME)/bc10/TI_ANDROID
 #Android Specific
 #Path of Android Root FS
 # ANDROID_ROOT=$(HOME)/INVALIDVAL
 ANDROID_ROOT=$(HOME)/bc10/out/target/product/bc10/bc10-image
 #set toolchain root path for arm-eabi
 # CSTOOL_DIR=INVALIDVAL
 CSTOOL_DIR=$(HOME)/bc10/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/kernel-rowboat-bc10
 TARGETFS_INSTALL_DIR=$(ANDROID_ROOT) 
 
 GFX_TARGETFS_KERMOD_PATH=$(TARGETFS_INSTALL_DIR)/lib/modules/2.6.32 
 
 #Android
 ANDROID_DISCIMAGE=$(TARGETFS_INSTALL_DIR)/

コピー完了後、ビルドを実行します。~

 $ cd ~/OMAP35x_Android_Graphics_SDK_3_01_00_03
 $ make
 $ make OMAPES=3.x install

上記 make install の OMAPES=3.x という option は bc10 に搭載している OMAP3530 の~
Graphic Chip の Revison を指定するものです。他オプションとしては以下のものがあります。~

 For OMAP3530 ES 1or2 = 2.x
 For OMAP3530 ES3.0   = 3.x
 For AM3517           = 3.x
 For AM37x           = 5.x

ビルド完了後以下のメッセージがでます。~

 Installation complete!

これで ~/bc10/out/target/product/bc10/bc10-image/ に必要なファイルがコピーされ、~
bc10 用 android userland の作成作業は完了です。~

* 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
-- boot.scr
- 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.

** ファイルシステムのフォーマット [#p5bb43e7]

FAT32パーティションとLinuxパーティションをそれぞれフォーマットします。~
LABEL1とLABEL2の文字列の部分はパーティションのラベルになりますので、~
お好きな名前で設定してください。このページではLABEL1、LABEL2 と設定しています。~

- FAT32 パーティションのフォーマット

 $ sudo mkfs.msdos -F 32 /dev/sdc1 -n LABEL1

 mkfs.msdos 2.11 (12 Mar 2005)

- Linux パーティションのフォーマット

 $ sudo mkfs.ext3 -L LABEL2 /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: 

** ファイルの配置 [#a5b17eea]
ブートローダのイメージファイルをSDカードに配置します。~
まず、SDカードを挿しなおすなどして、再度マウントさせます。~
SDカードのマウントポイントはシステムの都合に合わせて読みかえてください。~

*** FAT パーティション [#z650e5c7]
- X- Loader ~

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

 $ cd  ~/bc10/x-load-bc10
 $ cp x-load.bin.ift /media/LABEL1/MLO

- u-boot ~

続いて、2段目のブートローダであるU-Bootを配置します。
ファイル名を「u-boot.bin」とします。

 $ cd ~/bc10/u-boot-bc10
 $ cp u-boot.bin /media/LABEL1/u-boot.bin

- uImage ~

bc10-rowboat-kernel でビルドした uImage を配置します。~

 $ sudo cp ~/bc10/bc10-rowboat-kernel/arch/arm/boot/uImage /media/LABEL1/


- boot.scr ~

[[bc10/rowboat-eclair-dsp>http://labs.beatcraft.com/ja/index.php?bc10%2Frowboat-eclair-dsp-4#s65eda56]] と
同様に boot.scr を作成します。~
このファイルはシリアルコンソールで u-boot のコマンドプロンプトから setenv で設定するのと同じ内容を作成し、~
起動時に毎回手動で設定する手間を省略するためのものです。~
また、メモリマッピングを変えないよう設定します。~
~
まず以下の内容の boot.script を作成します。
 $ 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 omapfb.video_mode=680x480MR-24@60'
 bootm 84000000

このファイルを引数に指定して、以下のように mkimage を実行します。

 $ mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n ./boot.script -d ./boot.script ./boot.scr &> /dev/null

生成された boot.scr をSDカードのFATパーティションにコピーします。

 $ sudo cp boot.scr /media/LABEL1/


*** Linux パーティション [#xd92312d]
ビルドしたbc10用 android の userland を配置します。~

 $ cd ~/bc10/out/target/product/bc10/bc10-image
 $ sudo cp -fr * /media/LABEL2/


最後にSDカードをアンマウントする前に念のため sync を実行します。
 
 $ sync
 $ sudo umount /media/LABEL1
 $ sudo umount /media/LABEL2

以上で SDカードイメージ作成は完了です。~


* x-loader、u-boot、kernel の変更点 [#sb45e0b4]
bc10 froyo 対応 u-boot、x-loader、kernel に関する項目です。~

** bc10-rowboat-kernel [#neda8d63]

*** 派生元 [#xe958c61]
- リポジトリ
-- git://gitorious.org/rowboat/kernel.git
- ブランチ
-- rowboat-eclair-2.6.32

*** 主な変更点 [#mec7c1a0]
- bc10向けプロファイルの作成
-- arch/arm/configs/omap3_bc10_defconfig
-- arch/arm/mach-omap2/Kconfig
-- arch/arm/mach-omap2/Makefile
-- arch/arm/mach-omap2/board-omap3bc10.c
- CMEL OLED43 有機ELディスプレイドライバの追加
-- drivers/video/omap2/displays/Kconfig
-- drivers/video/omap2/displays/Makefile
-- drivers/video/omap2/displays/panel-cmel-oled43.c
- TSC2003 タッチスクリーンコントローラドライバの追加
-- arch/arm/configs/omap3_bc10_defconfig
-- arch/arm/mach-omap2/board-omap3bc10.c
-- drivers/input/touchscreen/Kconfig
-- drivers/input/touchscreen/Makefile
-- drivers/input/touchscreen/tsc2003.c
- bc10向け sound/soc ドライバの追加
-- arch/arm/configs/omap3_bc10_defconfig
-- sound/soc/omap/Kconfig
-- sound/soc/omap/Makefile
-- sound/soc/omap/omap3bc10.c
- sysfsパーミッション問題の回避コードを0xlabカーネルから移植
-- fs/namei.c
-- fs/sysfs/dir.c
-- fs/sysfs/file.c
-- fs/sysfs/inode.c
-- fs/sysfs/symlink.c
-- fs/sysfs/sysfs.h
-- include/linux/namei.h
- AICHI STEEL AMI602 6軸センサドライバの追加
-- arch/arm/configs/omap3_bc10_defconfig
-- arch/arm/mach-omap2/board-omap3bc10.c
-- drivers/hwmon/Kconfig
-- drivers/hwmon/Makefile
-- drivers/hwmon/ami602.c
-- include/linux/i2c/ami602.h


** u-boot-bc10 [#h6617f85]

*** 派生元 [#ieca1777]
- リポジトリ
-- git://git.denx.de/u-boot.git
- ブランチ
-- master

*** 主な変更点 [#f35e278f]
- bc10向けプロファイルの作成
-- board/beatcraft/bc10/Makefile
-- board/beatcraft/bc10/bc10.c
-- board/beatcraft/bc10/bc10.h
-- board/beatcraft/bc10/config.mk
-- boards.cfg
-- doc/README.omap3
-- include/configs/omap3_bc10.h
- MUX設定の調整
-- board/beatcraft/bc10/bc10.h

** x-load-bc10 [#r4265c37]

*** 派生元 [#t15c7281]
- リポジトリ
-- git://gitorious.org/x-load-omap3/mainline.git
- ブランチ
-- master

*** 主な変更点 [#b58bfd42]
- bc10向けプロファイルの作成
-- Makefile
-- board/omap3530bc10/Makefile
-- board/omap3530bc10/config.mk
-- board/omap3530bc10/omap3530bc10.c
-- board/omap3530bc10/platform.S
-- board/omap3530bc10/x-load.lds
-- drivers/Makefile
-- include/configs/omap3530bc10.h
- MUX設定の調整
-- board/omap3530bc10/omap3530bc10.c



* 参照URL [#e90654f8]
- rowboat ConfigureAndBuild ~
-- http://code.google.com/p/rowboat/wiki/ConfigureAndBuild#Install_the_drivers_in_Target_filesystem

*更新記録 [#t39491d0]
2010/09/06 環境構築、android ソース取得部分まで記載、x-loader、u-boot、kernel調整中~
2010/09/06 x-loader、u-boot、kernel 部分記載~
2010/09/08 SDカードイメージ作成部分記載~
2010/09/09 SDカードイメージ作成 uImage 部分記載~
2010/09/29 SDカードイメージ作成 マイクロSDからのbootは不可~
2010/11/16 android-2.2_r1.1 への patch を行うスクリプトと実行手順を修正

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