個人的にかなり気になっている携帯向けOS、「Firefox OS」。
遂に日本でもリファレンスモデルであるFlameという端末が発売され、一部界隈で話題を呼んでいるかも知れない・・!
自由度の高さを売りにしているが果たしてどんなOSなのか。
このFirefox OS、いくつかのAndroid端末にインストールすることができるんだ。日本で手に入りやすい端末としては、ドコモのGALAXY nexusことSC-04Dがインストール可能な端末だ。
そこで、今回はFirefox OSをUbuntu環境でビルドしGALAXY nexusにインストールする手順をそれとなく紹介したいんだ。
Firefox OSビルドの環境作りと準備
新しい技術。
どうせなら自分自身で色々試したいじゃない・・。
Firefox OSのビルドを実現するための環境を用意しなければならない・・。
OSとしては使っている人も多いであろうUbuntuがベストだろう。windowsでもがんばればビルド環境を構築できなくもなさそうだが、いかにもめんどくさいのでおとなしくUbuntuでやるのがシンプルだ。
私の環境は下記の通りだ。
・Android端末:GALAXY nexus(SC-04D)
・PC:Ubuntu13.10 64bit
今回の記事はMozilla公式サイトを見ながら行った作業を自分の環境向けにまとめたもの。かなり省略しているところもある。
もし詳しい情報が知りたいとか、上手く進められない箇所があれば公式サイトをチェックしてみよう。
準備、特にUbuntuへのツールインストールなど
まずはUbuntu環境の構築が必要だ。
公式サイトではPCの必要要件は下記のとおりとなっている。
・インストール済みの 64 ビット版 GNU/Linux ディストリビューション ( Ubuntu 12.04 推奨 ) ・最低 4 GB の RAM 及び スワップ空間 //訳注:2GBのVPSで実績あり ・最低 20 GB のハードディスク空間
つまりメモリが必要なんだ・・
超ハイスペックPCならばVirtual Boxなどの仮想PC上でUbuntuを動かすという方法もあるかも知れないが、Firefox OSのビルドはなかなか重たい作業。なので仮想PCでは厳しいだろう。
私の場合はIntel Core i3のwindows8 PCにパーティションを切りUbuntu 13.10をデュアルブートで使えるようにした。それによってPCのスペックを丸々使うことができる。
Ubuntuセットアップは前回の記事で紹介しているのでやってみたい人は参考にしてみてくれ・・
さぁ、Ubuntuの「端末」もしくは「ターミナル」を起動しコマンドを実行していこう!
今回は基本、Ubuntuのsudo(ほぼ管理者権限)で作業するんだ!
Ubuntu13.10の場合は64bit PCで32bitのツールを使えるようにするために下記コマンドを実行する。その後必要なツールをインストールする。
sudo apt-get update
続いてビルドに必要なツールたちをインストールする。下記コマンドは複数のツールをスペースで区切ってまとめてインストールするコマンドだが、上手くインストールできなければひとつずつインストールしてみよう。ちなみに改行せずに一行で実行しよう。
さらにgcc、g++も設定する。
sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-4.8 2
sudo update-alternatives –install /usr/bin/g++ g++ /usr/bin/g++-4.6 1
sudo update-alternatives –install /usr/bin/g++ g++ /usr/bin/g++-4.8 2
sudo update-alternatives –set gcc “/usr/bin/gcc-4.6”
sudo update-alternatives –set g++ “/usr/bin/g++-4.6”
次はやっぱり必要なjavaをインストールする。Oracleのサイトからダウンロードしてインストールする方法もあるが、要会員登録で勤務先の電話番号必須とかめんどくさいことになっているので私はopenjdkを使った。
Android SDKもインストールしておく必要があるが、Ubuntu向けインストール方法はまた今度紹介するよ。
ccacheを3GBに設定。余計なことは考えず、ここは公式サイトの指示に従う。
作業中に高確率でエラーが出るのであらかじめandroid.rules(udevルール)を作成しておこうね。adb用に「android.rules」、そしてfastboot用に「51-android.rules」を作成。これを作っておくことで「waiting for device」で処理が止まったりGALAXY nexusが認識されないトラブルが減る。ファイルを作成したらそれぞれの属性も設定する。
sudo touch /etc/udev/rules.d/51-android.rules
sudo chmod a+r /etc/udev/rules.d/android.rules
sudo chmod a+r /etc/udev/rules.d/51-android.rules
android.rulesと51-android.rulesはviコマンドなどを駆使し、GALAXY nexus向けにそれぞれ下記の内容を追記して保存する。
udevを再起動。
ゴタゴタして非常にややこしいが、ここまで準備できればビルド、インストールまでもう少しだ!!
GALAXY nexusのバックアップ、そしてUbuntuへ接続
作業の前に必ずGALAXY nexusのバックアップを取っておこう。
CWMをインストールしてあるならCWMで保存し、バックアップしたデータをPCにコピーしておくのが一番手っ取り早い。
Firefox OSをインストールしてもリカバリまでは変更されない(はず)なので失敗しても復旧できる可能性が高まる。
言わずもがな当然のことだが、GALAXY nexusのUSBデバッグをオンにしておく。
そしてさらに言わずもがな当然だがGALAXY nexus自体のブートローダーアンロックしておく必要がある。
手順は以前の記事を参考にしてくれ。
そしてGALAXY nexusをUSBケーブルで接続する。adb devicesコマンドでGALAXY nexusが認識されているかテストしてみよう。
端末が表示されなければAndroid SDKとGALAXY nexusの設定を見直そう。
ソースコード取得からビルドへ
GITコマンドでデータを準備。揃うまでに時間がかかる。
B2Gディレクトリへ移動し、config.shを実行すると標準で対応している端末を確認できる。
まぁ今回はGALAXY nexus(SC-04D)を使うので「galaxy-nexus」を指定しconfigを実行する。またまた時間がかかるぞ!
./config.sh galaxy-nexus
途中でネットワークが切断されると失敗したりする可能性があるので、PCのスリープなどに要注意だ。
念の為gitとrepoを更新する。
./repo sync
さぁいよいよビルドだ。
ビルドの際に並列処理をどれだけ使うかを指定できる。私のPCはcore i3なのでとりあえずj2で実行してみた。
これまた時間がかかるでこりゃあぁぁ・・。公式サイトではコーヒータイムを推奨しているが、ディナータイムくらいは時間がかかるぞ。静かにその時を待とう・・。
無事にビルドが完了したら、いよいよnexusにflashするぞ・・
GALAXY nexusの電源を一度オフにし、fastbootモードで起動しPCと接続。Firefox OSをインストールすると当然のことながらAndroidのデータは全て消え去る。バックアップは忘れずに!
準備ができたら遂にflashだ・・ッ!
無事にflashできれば、しばらくしてFirefox OSが起動するはずだ。
Firefox OSの雰囲気
これがFirefox OS起動の瞬間だ・・
ロック画面はこんな感じ。
そしてメイン画面。
Marketplaceからアプリを追加できる・・はず。
いつもの一言
今回初めてビルドとかをやってみたけど、もうちょっとがんばったらカスタムROMなんかを作れるようになるのだろうか。
さて、インストールしたFirefox OSは「Boot2Gecko 2.1.0.0-prerelease」、現状最新のバージョンだ。
ブラウザとかアプリとか使ってみようかともおもったけど、WiFiはなぜかWPA2非対応。ルーターの設定を変えるのがめんどくさくて諦めちゃった。だがテザリングはWPA2で飛ばせる。
正直快適動作ではない。でもマルチタスクで動作しているっぽいが、画面の左端/右端スワイプでタスクを切り替えられるのは地味に便利だと思った。
ちなみに起動は激速だった・・!
普段使用しているドコモSIMカードも挿してみたが、残念ながら電波を掴まなかった。この辺はOSビルド時の何かしらで何とかなるかも知れない。
nexus4やnexus5なら動作はさくさく快適なのかな?
もしくはFlameなどの元々Firefox OSのために作られている端末はいいかも知れない。
Flame気になるなぁ。
全体的には、最新のAndroidと比較するとはっきり言って相当な遅れを感じる完成度だ。
つまり製品化に期待だ!!
頼むぜau・・
コメント