Raspberry Pi 上で Firefox OS を動作させてみました


# はじめに

10月にイギリスで開催された Mozilla Festival で RaspberryPi 上で動作する Firefox OS のデモが行われました。
https://wiki.mozilla.org/Fxos_on_RaspberryPi

以前( 2年ほど前 )にも RaspberryPi 上にポーティングし動作していたみたいなのですが、その後対応されなくなり、動作しないままでした…
※詳しくないのですが、有志がポーティングしていたような事を聞いた記憶があります。

Mozilla Festival 向けでデモの為に再度対応されたのが上記のURLにあるものとなります。

今回は Firefox OS のイメージを RaspberryPi に導入するまでを記載します。

また、今回はビルドを行わない手順となりますので、RaspberryPi, PC( Linux or Mac ) をお持ちの方はお気軽に試してみてください

# RaspberryPi の準備

今回使用したものは以下です。

* RaspberryPi Model B+
* USBマウス
* USBキーボード
* SDカード( 8GB )※4GB以上のもの
* HDMIケーブル
* HDMI端子のあるディスプレイ
* PC( Mac OS X Marvericks )

# イメージのダウンロード

まず最初に RaspberryPi 用の Firefox OS のイメージをダウンロードします。
MozillaWiki の[このページ](https://wiki.mozilla.org/Hacking_b2g_on_Raspberry_Pi#Flash_an_existing_build)にアクセスし download the build のリンクを選択してください。

![Hacking_b2g_on_Raspberry_Pi_-_MozillaWiki.png](https://qiita-image-store.s3.amazonaws.com/0/27642/3ff2b10d-28e1-201d-f0ae-69382adcf982.png "Hacking_b2g_on_Raspberry_Pi_-_MozillaWiki.png")

リンク先からイメージをダウンロードします。
![Dropbox_-_ffos-rpi-04_img_tar_bz2.png](https://qiita-image-store.s3.amazonaws.com/0/27642/d3a56c28-6735-1c77-2cfe-03e471adb1f7.png "Dropbox_-_ffos-rpi-04_img_tar_bz2.png")


今回ダウンロードしたファイルの名称は「ffos-rpi-04.img.tar.bz2」でした。
ダウンロードする時点でファイル名が異なるかと思いますので、以下はダウンロードした際のファイル名に置き換えて読み進めてください。

イメージファイルは圧縮されているため、解凍します。
ターミナルを起動しダウンロードしたディレクトリに移動し解凍してください。

以下のコマンドを入力するか、Finder 上で該当のファイルをダブルクリックすることで解凍されます。

>$ tar jxvf ffos-rpi-04.img.tar.bz2


# イメージの書き込み

SDカードに解凍したイメージを書き込みます。

書き込む前にSDカードのマウントされているポイントを確認します。
以下のコマンドを入力して確認します。

> $ df
Filesystem        512-blocks      Used Available Capacity   iused    ifree %iused  Mounted on
/dev/disk0s2       975425848 839685256 135228592    87% 105024655 16903574   86%   /
devfs                    420       420         0   100%       728        0  100%   /dev
　〜　中略　〜
/dev/disk3s1        15517952      4864  15513088     1%         0        0  100%   /Volumes/SD

今回は /dev/disk3s1 にマウントされていました。環境によって名称が異なりますので、必ず確認をするようにしてください。
ここで誤ってしまうと、使用しているPCのデータが削除されてしまう可能性がありますので、注意してください。

次にターミナル上でイメージの書き込みを行います。
書き込み前にマウントされている SD をアンマウントする必要があります。
※前述したとおり、以降で指定している /dev/disk3s1 は環境によって異なりますので、適宜読み替えてください。

> $ diskutil umountDisk /dev/disk3s1 
Unmount of all volumes on disk3 was successful

イメージを解凍したディレクトリに移動後、以下のコマンドで書き込みを行います。

注意が必要な点として /dev/disk3s1 を 最後の dis3s1 を r を付与し rdisk3 に置き換えるようにしてください。 私の環境では dis3s1 での書き込みでは正しく起動しませんでした。

>$ sudo dd bs=4m if=ffos-rpi-04.img of=/dev/rdisk3

この後、root のパスワードが求められますので入力してください。
書き込みに時間が掛かりますので、コーヒーをいれに行きましょう。

書き込みが完了すると以下のように表示されます。

> 978+1 records in
978+1 records out
4102888448 bytes transferred in 724.884164 secs (5660061 bytes/sec)

今回、 4GB を書き込むのに12分掛かりました。 

# Firefox OS on RaspberryPi

それでは、Firefox OS を起動してみます。

SDスロットにおもむろに書き込んだSDを差し込んで、HDMI, キーボード, マウスを繋げ、最後に電源ケーブルを繋ぎます。

![connect_raspi.jpg](https://qiita-image-store.s3.amazonaws.com/0/27642/37d02a44-8320-aa93-f344-84609830b17f.jpeg "connect_raspi.jpg")

どきどきの瞬間ですが、ディスプレイに RaspberryPi のアイコンらしきもの?が表示され…

![init_0.jpg](https://qiita-image-store.s3.amazonaws.com/0/27642/69f318db-d3ec-a48c-3a06-adaa30027bf1.jpeg "init_0.jpg")

次に Android の文字が出て…

![init_1.jpg](https://qiita-image-store.s3.amazonaws.com/0/27642/fcbba03a-391b-1bcd-5b2b-da9ea2c5cf79.jpeg "init_1.jpg")


Firefox OS のロゴが表示されました!!

![init_2.jpg](https://qiita-image-store.s3.amazonaws.com/0/27642/80461002-57d1-2aca-4288-d5a7c87ff2c7.jpeg "init_2.jpg")

次におなじみの based on mozilla technology のロゴ

![init_3.jpg](https://qiita-image-store.s3.amazonaws.com/0/27642/047361de-fbf4-ab02-1fc4-aa50b18a0264.jpeg "init_3.jpg")

からの、HomeScreen !!

![init_4.jpg](https://qiita-image-store.s3.amazonaws.com/0/27642/b2faa0f1-dbb3-5210-8545-113c33a57e51.jpeg "init_4.jpg")

V1.4 などの HomeScreen 同様に横スクロールする HomeScreen が搭載されています。

![init_5.jpg](https://qiita-image-store.s3.amazonaws.com/0/27642/02aa6333-6b5f-a2e4-f663-aececf7fb7cf.jpeg "init_5.jpg")

搭載されている Firefox OS の Version は V2.2.0-prerelase で11/07 の時点の master で作られたみたいです。

![settings_version.jpg](https://qiita-image-store.s3.amazonaws.com/0/27642/0f230e48-909b-a5b5-61ff-b0b528ba3f97.jpeg "settings_version.jpg")


また、静止画ですとわかりづらいですが、動作は重たいです…

どうやら[まだ色々と制限事項](https://wiki.mozilla.org/Foxberry_Pi_Demo#Limitations)がある模様です。
画像が画面いっぱいに表示されない点や、動作が重く、バグが多い( buggy )とのこと。

また、WebIDE から アプリをいれてみようとしたのですが、ADB が認識しないため、今回は断念しました。
次回以降で、ソースからビルドしてみた際に確認してみようと思います。

> 今回はここまでとなりますが、なにかございましたらお気軽にコメントください。