2013年5月9日木曜日

FireFoxOS(B2G)のPeak用ビルド

ソース取得

ソースの取得方法はこちら。
https://developer.mozilla.org/ja/docs/Mozilla/Boot_to_Gecko/Preparing_for_your_first_B2G_build

git cloneでベース環境を取得。
git clone git://github.com/mozilla-b2g/B2G.git
cd B2G

次のスクリプトを実行。

./config.sh peak

実行すると、、、
Get git://github.com/mozilla-b2g/b2g-manifest
remote: Counting objects: 620, done.
remote: Compressing objects: 100% (319/319), done.
remote: Total 620 (delta 402), reused 487 (delta 283)
Receiving objects: 100% (620/620), 126.73 KiB | 113 KiB/s, done.
Resolving deltas: 100% (402/402), done.
From git://github.com/mozilla-b2g/b2g-manifest
 * [new branch]      master     -> origin/master
 * [new branch]      v1-train   -> origin/v1-train
 * [new branch]      v1.0.0     -> origin/v1.0.0
 * [new branch]      v1.0.1     -> origin/v1.0.1
 * [new tag]         B2G_1_0_1_20130213094222 -> B2G_1_0_1_20130213094222
 * [new tag]         closing-nightly -> closing-nightly
fatal: manifest 'peak.xml' not available
fatal: manifest peak.xml not found
Repo sync failed

上記のエラーが出てしまいました。
peak.xmlがないとおっしゃっています。
config.shの中身をみると、以下のようにbranchが指定されています。
GITREPO=${GITREPO:-"git://github.com/mozilla-b2g/b2g-manifest"}
BRANCH=${BRANCH:-v1-train}
以下のgitとみると、確かにない。
https://github.com/mozilla-b2g/b2g-manifest/tree/v1-train


でも、masterブランチには存在しています。
https://github.com/mozilla-b2g/b2g-manifest


ブランチの切り替えは、以下のように公式ページに書かれています。
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Preparing_for_your_first_B2G_build
Building a branch
If you want to build for a branch other than the trunk, you will need to prefix your call to config.sh with a branch name, like this:
BRANCH=branch-name ./config.sh target


と、いうことで次のコマンドを実行。
BRANCH=master ./config.sh peak



ビルド実行

次のスクリプトを実行。

./build.sh


extract-files.shが実行され、端末からライブラリを引っこ抜こうとしています。
build.shの内容を確認すると、以下のような感じ。

    # Select which blob setup script to use, if any.  We currently
    # assume that $DEVICE maps to the filesystem location, which is true
    # for the devices we support now (oct 2012) that do not require blobs.
    # The emulator uses a $DEVICE of 'emulator' but its device/ directory
    # uses the 'goldfish' name.
    if [ -f device/*/$DEVICE/download-blobs.sh ] ; then
        important_files="device/*/$DEVICE/download-blobs.sh"
        script="cd device/*/$DEVICE && ./download-blobs.sh"
    elif [ -f device/*/$DEVICE/extract-files.sh ] ; then
        important_files="device/*/$DEVICE/extract-files.sh"
        script="cd device/*/$DEVICE && ./extract-files.sh"
    else
        important_files=
        script=
    fi

ビルド時間です。
VMware Player上ですが8スレッド認識、Corei7でSSDの環境です。

Creating filesystem with parameters:
    Size: 471859200
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 7200
    Inode size: 256
    Journal blocks: 1800
    Label: 
    Blocks: 115200
    Block groups: 4
    Reserved block group size: 31
Created filesystem with 776/28800 inodes and 26358/115200 blocks
Install system fs image: out/target/product/peak/system.img
out/target/product/peak/system.img+out/target/product/peak/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p total size is 102366980

real 29m22.116s
user 184m19.700s
sys 24m10.780s
Run |./flash.sh| to flash all partitions of your device

real 29m24.542s
user 184m23.600s
sys 24m11.160s

0 件のコメント:

コメントを投稿