これも基本的には「ICSonBeagleboard_WithSGX」の手順の通りですが、いくつか補足を付けてステップを説明します。
補足はこんな風にイタリックにしています。
私のPC環境ですが
- OSはUbuntu 10.10 64bit
- CPUはCore2 Quad Q9650 (3.00GHz)
- メモリは4GB
といったところです。
作業には以下が必要です。
- sudoできるアカウント
- microSDにアクセスできる (USBのアダプタとか)
- HDDの空き容量25GB程度
- 作業時間として、ダウンロードから始めて最速でも約2,3時間
ビルドは以下の方針で進めます。
- x-loaderはビルドしない (Pre-built Imageのを使う)
- u-bootはビルドしない (Pre-built Imageのを使う)
- kernel, Android, SGX対応モジュールをビルドする
何かカスタマイズするにしても、通常、x-loaderやu-bootは変更しないことが多いです。
あるとして、ブート手順の早い側ではu-bootの起動スクリプトboot.scrを変更することがあるぐらいです。
やっと手順です。
シェルはbash (つまりデフォルトのまま)を使って、少なくとも作業するターミナルでは環境変数LANGをCにします。
export LANG=C
repoコマンド用にディレクトリを用意します。
mkdir -p ~/bin
PATH=~/bin:$PATH
PATHの設定は~/.bashrcにしておくのがいいでしょう。
次にrepoコマンドを用意します。
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod +x ~/bin/repo
既にrepoコマンドを用意してある場合は、改めてダウンロードする必要はありません。
でも時々アップデートされているので、最新のを使うのがいいかもしれません。
でも時々アップデートされているので、最新のを使うのがいいかもしれません。
これまた時々、ダウンロードに失敗して、エラーのHTML記述が~/bin/repoに記録されることがあります。
正しくスクリプトがダウンロードされたか確認します。
head ~/bin/repo
先頭の行が#!/bin/shとなっていたら大丈夫でしょう。
レポジトリを置くディレクトリを用意します。
mkdir ~/rowboat-android
cd ~/rowboat-android
ここが20GBぐらいになりますので、空き容量の十分な場所に用意してください。
レポジトリを用意します。
repo init -u git://gitorious.org/rowboat/manifest.git -m rowboat-ics.xml
元Wikiはちょっと誤字になってます(repo init -uが余分)。
若干時間かかります。
repo sync
repo syncには1時間以上かかります(インターネット接続環境にもよります)。
エラーになることがありますが、最初からやり直さずに(つまりディレクトリ消したりせずに)、何回か上のコマンド実行すれば大抵大丈夫です。
元WikiではRowboatTools.tar.gzをダウンロードしていますが、今回のビルド方針では不要なのでダウンロードしません。
クロスコンパイラへのパスを準備します。
export PATH=~/rowboat-android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
元Wikiではx-loaderのビルドしていますが、ビルド方針の通りスキップします。
同様にu-bootのビルドもスキップします。
u-bootをビルドすると生成されるmkimageが後で必要になりますが、Ubuntuのパッケージのを使えばOKです。
インストールは sudo apt-get install uboot-mkimage とします。
kernel、Android、SGXモジュールをビルドします。
make TARGET_PRODUCT=beagleboard OMAPES=5.x
数十分かかります。マルチコアな環境なら-j 4などと並列実行のオプション付けると高速化できます。
ここから元Wikiとちょっと違います。
microSDカードに書く準備としてrootfs.tar.bz2を作ります。
make fs_tarball
これでout/target/product/beagleboard/rootfa.tar.bz2が生成されます。
別のディレクトリでPre-built Imageをダウンロード、展開します。
wget http://rowboat.googlecode.com/files/beagleboard_xm_sgx.tar.gz
tar xfz beagleboard_xm_sgx.tar.gz
自前ビルドのものに置き換えるのでPre-built Imageのファイルを消します。
cd beagleboard_xm
rm Boot_Images/uImage
rm Filesystem/rootfs.tar.bz2
自前ビルドした結果を配置してmicroSDカードに書き込みます。
cp ~/rowboat-android/kernel/arch/arm/boot/uImage Boot_Images/
cp ~/rowboat-android/out/target/product/beagleboard/rootfa.tar.bz2 Filesystem/
sudo ./mkmmc-android.sh /dev/sdb
環境によってmicroSDが/dev/sdbだったり/dev/sdcだったりします。
間違ってHDDのデバイスを指定してしまうと大変なことになるので要注意です。
あとは完成したmicroSDをBeagleBoard-xMに刺して電源投入して起動を待ちます。
0 件のコメント:
コメントを投稿