2013年4月15日月曜日

Firefox OS on PandaBoard ES (1)

昨年度はPandaBoard ESを別の目的で使用していたが、ここでは報告することができない内容だったのだが、今回は公開しても問題ない内容なので、手順を記録する意味で記す。

PandaBoard ESで動作させるのは、FirefoxOS。

◆開発環境
 Ubuntu 12.04 on VMware Player on Windows8 Professional
 Linuxの必要条件はここに書かれているので、それらを満たすようにする。

◆SDカードの初期化

とりあえずここの情報をもとにSDカードを初期化。

> sudo ./omap3-mkcard.sh /dev/sdb

./omap3-mkcard.sh: 37: ./omap3-mkcard.sh: kpartx: not found
というエラーが出るので、apt-getでインストール。


> sudo apt-get install kpartx
これで再度シェルを実行するとSDカードのパーティションが正常に分割された。
パーティションは次の二つに分割されればOK。
  1. W95FAT32(LBA)タイプでBootable74MB
  2. Linuxタイプの8.0GB
◆AndroidのSDカード作成

Firefox OSの動作環境を作るためには一度AndroidのIceCream Sandwichを起動できるSDカードを準備しないといけないらしい。
ICSをビルドするのはしんどいので、ここの情報をもとにイメージをダウンロードして、SDカードの構築を行う。
まずここのページから 、boot.tar.bz2、system.tar.bz2、userdata.tar.bz2の3ファイルをダウンロードする。
次のコマンドでLinaroイメージツールをインストールする。
> sudo add-apt-repository ppa:linaro-maintainers/tools
> sudo apt-get update
> sudo apt-get install linaro-image-tools
> sudo apt-get install bzr
> bzr branch lp:linaro-image-tools

次のコマンドを実行した結果がtrueならば、

> gsettings get org.gnome.desktop.media-handling automount
以下のコマンドを実行する(自動マウントの無効化)。
> gsettings set org.gnome.desktop.media-handling automount false

次のコマンドを実行した結果がtrueならば、

> gsettings get org.gnome.desktop.media-handling automount-open
以下のコマンドを実行する(自動オープンの無効化)。
> gsettings set org.gnome.desktop.media-handling automount-open false

※Linaroのページでは自動マウント、自動オープンの無効化はdconfを使っていたのだが、エラーが出て正しく動作しないので、上記コマンドを代用した。

次にダウンロードしたファイルがあるフォルダに移動し、以下のコマンドを実行(赤字のドライブ名は環境によって違うので、各自の環境に合わせて変更すること)。
> sudo linaro-android-media-create --mmc /dev/sdb --dev panda --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2

※ここで、なぜか/dev/sdb1がresource busyと怒られてエラーだらけとなっていたが、VMware PlayerからSDカードリーダーを切断し、再接続したらエラーは回避された。

この手順の後で確かにSDカードに色々書き込まれていることが確認できる。

次に以下のコマンドでグラフィックスライブラリをインストールするらしい。

> wget http://people.linaro.org/~vishalbhoj/install-binaries-4.0.4.sh
> chmod a+x install-binaries-4.0.4.sh
> ./install-binaries-4.0.4.sh

なお3番目のコマンドはライセンス規約を読まされて最後にI ACCEPTと入力しないと失敗するので注意。

最後に自動マウント、自動オープンを有効にする。

> gsettings set org.gnome.desktop.media-handling automount true
> gsettings set org.gnome.desktop.media-handling automount-open true

以上の手順で作成されたSDカードをPandaBoard ESに挿入して起動すると、Androidが起動して、マウスで操作できることは確認できた。PCとserial接続してminicomでアクセスすることもできた。
しかし、なぜか時間が経つと、Androidが固まり、マウスもminicomも反応しなくなる問題が発生。。。


◆Firefox OSのダウンロード&ビルド

並行して、ここの情報をもとにFirefox OSのプロジェクトのダウンロードとビルドを行う。ちなみに、ダウンロードは6時間くらいかかったような気がする。
また、ビルドも途中で以下のエラー出力を筆頭にして大量のエラーが発生するが、ここの情報を見る限りはNSPRのインストールができていないことが原因の様子。

external/negatus/src/Buffer.h:8:21: error: prtypes.h: No such file or directory

NSPRはここのページに書いてある通りNetspace Portable Runtimeだそうです。以下のコマンドでインストールできることも書いてある。

> sudo apt-get install libnspr4-dev

再度ビルドすると、一時間はかからずに完了する。
この後の手順はPandaBoard ESとPCがUSB接続できてからとなるはずなので、反応しなくなる問題を解決しないといけない。。。

※2013/04/17 ラベルをつけ忘れていたので、追加。

0 件のコメント:

コメントを投稿