こんにちは。アスカ・クリエイション 石原繁彦です。

今回は最近、巷を賑わせているFirefox OSのビルドに挑戦したいと思います。

オフィシャルな開発者向けのドキュメントはMDN(Mozilla Developer Network)のページにまとまっていますので、これを参考にやってみようと思います。

https://developer.mozilla.org/ja/docs/Mozilla/Boot_to_Gecko/B2G_build_prerequisites

まずは、開発環境を確認します。

サポートされているターゲットデバイスは以下の物のようです。

  • Unagi(開発用スマホ)      - Firefox OSの開発者の多くが使用
  • Otoro(開発者用スマホ)   - Firefox OSの開発者の多くが使用
  • Panda Board
  • エミュレータ(x86/ARM)
  • デスクトップ(PC上でのアプリ実行環境)
  • Samsung Nexus S          - 大抵の機能が動作
  • Samsung Nexus S 4G    - 大抵の機能が動作
  • Samsung Galaxy S2       – あまり活発に開発されてない
  • Samsung Galaxy Nexus – あまり活発に開発されてない

まずは第一段階としてARMエミュレータをビルドしてみようと思います。

ビルド環境はLinuxの場合、以下が推奨されています。また、Mac OS Xでもビルドできる様です。Windowsはサポートされていません。

  • Ubuntu 12.04 64bit版
  • 4GB RAM
  • 20GB以上のHDD空き容量

今回はUbuntu 12.04 64bitで作業します。

必要なツール群をインストールします。

$ sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libgl1-mesa-dev libx11-dev make

 

オフィシャルなドキュメントによれば場合によって以下のシンボリックリンクを作成するとなっていますが、私の環境では以前にAndroidをビルドできる環境にしたためか、すでにシンボリックリンクがありましたので、今回はこの手順を省いて進んでみました。

$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

 

ソースを取得します。

$ git clone git://github.com/mozilla-b2g/B2G.git
$ cd B2G

 

ビルド構成を設定します。今回はARMのエミュレータをビルドするのでemulatorを指定します。なお、引数を指定しなければサポートされるデバイスの一覧が表示されます。

$ ./config.sh 
Usage: ./config.sh (device name)

Valid devices to configure are:
- galaxy-s2
- galaxy-nexus
- nexus-s
- nexus-s-4g
- otoro
- unagi
- inari
- keon
- pandaboard
- emulator
- emulator-x86
$ ./config.sh emulator

 

オフィシャルのドキュメントには書いてありませんでしたが、inariやkeonといったデバイスもサポートしているようです。

ここでソースが取得されます。かなり時間がかかりますので、しばらく待ちます。

ソースの取得が完了したら、ビルドします。なお、-jオプションで並列ビルド可能です。

$ ./build.sh -j4

 

無事ビルドが終わったらエミュレータを起動してみます。

$ ./run-emulator.sh

Screenshot_from_2013-03-22 19:13:03

Screenshot_from_2013-03-22 19:15:25

思ったよりすんなりいきました。数ヶ月前に行ったときはビルドが通りませんでしたが、開発が進んでいるようです。

今回はここまでにします。次回はPanda Boardで動かすことに挑戦しようと思います。

Share

Leave a reply

HTMLタグは使用できません。