こんにちは。アスカ・クリエイションの石原です。
今回はPanda board向けにFirefox OSをビルドすることに挑戦したいと思います。
前回のエミュレータビルドで開発環境が構築できていることを前提に進めたいと思います。
まず、Panda boardを開発マシンにUSBで接続するためにudevルールを追加します。これはAndroidのソースビルドで追加した手順と同じです。
/etc/udev/rules.d/に51-android.rulesを作成し、以下の内容を書き込みます。OWNERは開発マシンにログインしているユーザー名で良いようです。
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="ishihara"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="ishihara"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="ishihara"
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="ishihara"
さらに、Panda board向けにビルドするには以下のパッケージをビルドマシンに導入する必要がありますのでインストールしておきます。
$ sudo apt-get install libnspr4-dev
次にビルドターゲットをPanda boardに設定します。前回取得したソースツリーに移動し、以下を実行します。
$ cd B2G
$ ./config.sh pandaboard
これが初期のソース取得でなければ、以下のコマンドでソースツリー全体を更新できます。
git pull
./repo sync
ソースツリーが更新されるまでしばらく待ちます。無事完了したらビルドを実行します。
$ ./build.sh -j4
しかし、ここでエラーになりました。imgtec-panda-imm76i-67545da7.tgzというファイルのチェックサムエラーのようです。これはプロプライエタリなグラフィックスドライバのファイルで、Androidのソースビルド時にも手動で追加していましたので見覚えがあります。ですが、現在Googleのサイト上(https://developers.google.com/android/nexus/drivers#panda)で公開されているこのドライバファイルはファイル名が変わっていますので、修正します。
~/B2G/device/ti/panda/download-blobs.shの「PANDA_BLOBS=”imgtec-panda-imm76i-67545da7.tgz”」をコメントアウトし以下の様に書き換えます。
#PANDA_BLOBS=”imgtec-panda-imm76i-67545da7.tgz”
PANDA_BLOBS=”imgtec-panda-20120430-67545da7.tgz”
ファイル名を変更しただけではチェックサムがえらーになるので、~/B2G/device/ti/panda/blob-shasums のファイル名も書き換えます。なお、書式はsha-1チェックサム、スペース、?、ファイル名ですので、前述のGoogleのドライバサイトより別のドライバファイルを使用したいときは、download-blobs.shとblob-shasumsのファイル名及び、チェックサムの値を書き換えることで対応できるようです。
* 2013/4/26現在の最新ソースコードでは上記の不具合は修正済みとなっておりました。
さて、ビルドが無事通りましたら、いよいよPanda boardに焼き込んでみます。
焼き込む手順はAndroidをソースビルドして焼いたときと同じような手順を踏みます。
まず、fastbootをビルドします。
$ source build/envsetup.sh
$ lunch full_panda-userdebug
$ make fastboot
Panda boardに電源ケーブルやマウス、キーボード、ディスプレイ、miniUSBケーブルで開発PCと接続し、SDカードを外した状態で以下を実行します。
$ device/ti/panda/usbboot device/ti/panda/bootloader.bin
次に、SDカードを挿入し、以下を実行します。
$ fastboot oem format
$ fastboot flash xloader device/ti/panda/xloader.bin
$ fastboot flash bootloader device/ti/panda/bootloader.bin
ここまで正常に完了したら以下のコマンドで実際に焼き込みます。
書き込みが無事終わったら電源を入れ直して再起動します。
起動しましたが、画面の向きが縦になっており、キーボードやマウスが効かないようです。少し調整が必要そうですね。
今回はここまでです。