Wiiリモコンで操作できるプレゼン・マシンの製作(1) ―― オリジナルのAndroidマシンを自作する
tag: 組み込み ディジタル・デザイン
技術解説 2009年9月11日
●ボード構成設定ファイルを準備する
Androidのビルド・システムは,ターゲットとなるボード(基板)に合わせてビルド構成が変更可能なように,ボードごとに構成ファイル(BoardConfig.mk)を持つことができます.通常このファイルは,vendorディレクトリ配下のボードごとのディレクトリにそれぞれ配置されます.BeagleBoard向けのボード構成設定ファイルは存在しないため,ここではデフォルトのボード構成ファイルを使用します.デフォルト構成ではALSAやBluetoothが無効となっているため,修正する必要があります.また,パッケージ構成を設定するファイル(<ボード名>.mk)も修正が必要ですが,同じようにデフォルトのファイル(generic.mk)を使用します.
●SDカードを有効化する
Androidではボリューム・デーモン(vold)がSDカードのマウントを行います.デフォルトではエミュレータ用のvold設定ファイル(vold.conf)がインストールされますが,今回はこのファイルをBeagleBoard用の設定に修正します(これも本来はボードごとに用意するべきである).
また,voldはマウント時にファイル・システムの検証コマンドとして"fsck_msdos"コマンドを実行しますが,本稿執筆時点でデフォルトではこのコマンドはビルドされません.そこで,すでにexternalにあるdosfstoolsのdosfsckコマンドをビルドし,これを"fsck_msdos"として配置することにします.dosfstoolsにはAndroid.mkが含まれていないため,Android.mkを新規に追加する必要があります.
●Androidのソース・コードをビルドする
Androidのソース・コードをビルドしてUserlandを構築します(Androidのソースにはビルド済みのツール・チェーンも同梱されている).
$ make ※6
※6 "-j
●Userlandをコピーする
ビルドが完了すると"~/mydroid/out/target/product/generic"配下に,Userlandを構成する個別のファイルとそれをNAND配置用にまとめたイメージ・ファイルが作成されます(SDカードによる起動のため,イメージ・ファイルは使用しない).Userlandを構成する個別ファイルをSDカードのパーティション1にコピーし,パーミッションとオーナを変更します.
$ cd ~/mydroid/out/target/product/generic
$ sudo cp -a root/* /media/LABEL2/
$ sudo cp -a system/* /media/LABEL2/system/
$ sudo cp -a data/* /media/LABEL2/data/ ※7
$ sudo chown -R root.root /media/LABEL2/
$ sudo chmod -R 777 /media/LABEL2/
※7 通常この手順はコピー元のdataが空なので不要ですが,削除可能なプリインストール・アプリケーションなどが"data/app/"に配置されるため,記載しています.