Yamasuke 日記

Yamasukeの日記です。コンピュータソフトウェアに関する記事を投稿します。明日から試してみたくなるような+1の記事を心がけます。

Firefox OS TV の今

そういえば、Firefox OS TVは?

Firefox OS Advent Calendar 2014の12/4向けの記事です。

はじめに

こんにちは、Yamasukeです。

みなさん、11ヶ月前の1月7日( もう1年近く前! )に発表されたPanasonicのこのプレスリリースとか、Mozillaのこの記事は覚えていますか?

そう、 Panasonic と、 Mozilla による Firefox OS を搭載したスマートテレビの開発に関する発表でした。

1月7日の発表以降、特に目立った発表もなくいまに至るわけですが、 Firefox OS TV の事は気になりますよね、 どんな感じの操作感なのか、どんな見た目なのか、 いつ出るのかなどなど気になる点は非常に多いです。 実は私もそのひとりです。

今回は Advent carendar 向けにFirefox OS TV について調べてみましたのでその内容をシェアしたいと思います。

なんと、この記事を一番読むと Firefox OS TV?? をシミュレータ上で動かすことができるようになります!

f:id:namaranran:20141203123739p:plain

ソースの取得

まず、最初にソースを取得します。

ビルド環境が無い方はこのページを参考にし、ビルド環境を構築してください。 ※ Windows の方はごめんなさい・・・。

次に、いつもどおり B2G のリポジトリをcloneし、emulator環境を取得します。

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

取得が完了した後、B2G のディレクトリに移動し、emulator のソースを取得します。

$ cd B2G $ ./config.sh emulator

小一時間掛かりますので、しばし待ちます。

取得が完了しましたら、次にビルドを行います。

ビルド

それではビルドをしましょう。

通常はここで build.sh を実行するのですが、ただのシミュレータのままとなりますので、TV 向けになるように TV 用のオプションを付与してビルドします。

以下のようにコマンドを実行してください

$ GAIA_DEVICE_TYPE=tv ./build.sh

GAIA_DEVICE_TYPE に tv を指定すると、Gaia が TVとしてビルドされるようになります。

これは B2G/gaia/Makefile で指定出来るようになっています。 これはBug 979784 GAIA build system supports multiple devices. の対応によるのですが、
これによって、Gaia はビルド時にオプションを付与することで各デバイスに特化した形でのビルドが行えるようになっています。

具体的にはMakefileLine103行目から107行目358行目で処理が行われています。

まず103-107行目ですが、以下の様に記載されており、GAIA_DEVICE_TYPEが未指定の場合、phoneが初期値として使用されます。

# GAIA_DEVICE_TYPE customization
# phone - default
# tablet
# tv
GAIA_DEVICE_TYPE?=phone

次に358行目です。 ここでは、指定されたGAIA_DEVICE_TYPEの値に応じてビルド対象とするアプリが変化します。 gaia/build/config直下に各デバイスに応じたリストがあり、これに指定されているアプリをビルド対象としています。

GAIA_APP_CONFIG=$(GAIA_DIR)$(SEP)build$(SEP)config$(SEP)$(GAIA_DEVICE_TYPE)$(SEP)apps-$(GAIA_APP_TARGET).list

その為、ビルド時に tv を指定することで Gaia を tv の対象アプリへと変更することが出来ます。

初回のビルドでは Gecko 含めたフルビルドとなるため、時間を要しますが、ビルドを完了したら次に進んでください。

エミュレータのサイズの変更

ビルドが完了したら、いつもどおりエミュレータを起動してみましょう。

$ ./run-emulator.sh

いきなり時計が起動しています・・・

通常は言語、通信設定などの初期設定を促すFTUが起動するのですが、FTU も起動せず、 Lock画面も表示されていません・・・

f:id:namaranran:20141203123200p:plain

Lock画面であれば解除すればよいのですが、 この時計には解除に相当するものがありません。

とりあえずHomeキーを押してみることにします。

f:id:namaranran:20141203123734p:plain

な、なんか画面がおかしなことになりました((((;゚Д゚))))ガクガクブルブル

左右キーでカーソルらしきものが移動しますので、恐らくなんらかのアプリが表示されている模様ですが、なんか潰れてしまっている感じです・・・

恐らく TV 用のアプリのはずがシミュレータが携帯電話端末のサイズのままなのが原因なのかと思われます(´・ω・`)

これをTV の様に大きな画面サイズでの起動に変更してやる必要がありそうです。

run-emulator.sh にエミュレータの起動サイズを指定している箇所がありますので、これを変更します。

run-emulator.sh の38行目以降でエミュレータの起動時の引数を指定しており、ここでディスプレイサイズを指定しています。

export DYLD_LIBRARY_PATH="$B2G_HOME/out/host/darwin-x86/lib"
export PATH=$PATH:$TOOLS_PATH
${DBG_CMD} $EMULATOR \
   -kernel $KERNEL \
   -sysdir $B2G_HOME/out/target/product/$DEVICE/ \
   -data $B2G_HOME/out/target/product/$DEVICE/userdata.img \
   -sdcard ${SDCARD_IMG} \
   -memory 512 \
   -partition-size 512 \
   -skindir $B2G_HOME/development/tools/emulator/skins \
   -skin HVGA \
   -verbose \
   -gpu on \
   -camera-back webcam0 \
   -qemu $TAIL_ARGS

この中の

-skin HVGA \

-skin WXGA800 \

に変更します。

それでは起動してみましょう。 再度、run-emulator.sh を実行してください。

./run-emalator.sh

エミュレータのサイズがキチンと大きくなりました。

f:id:namaranran:20141203123735p:plain

時計が起動

f:id:namaranran:20141203123736p:plain

どうやら、TV では待ち受けとして時計が起動するみたいです。

それでは、先ほど同様にHomeキーを押して、時計ロックを解除してみましょう。 エミュレータのサイズが通常より大きいため、Homeキーがなくなっていますが、キーボードから直接Homeキーを押下すればOKです。
Macな人はFn+←です

Home画面が出てきました。

f:id:namaranran:20141203123739p:plain

キーボードからカーソルキーを入力することで、選択位置が変更されます。

f:id:namaranran:20141203123740p:plain

上下左右のカーソルキーを押すことで選択中のアイコンが変わる為、どうやら、TV のリモコンからの操作を想定しているみたいです。 離れた場所から操作することを前提としてか、アプリのアイコンが大きく、視認性が確保されています。

いろいろとアプリが並んでおり、通常の端末に入っていないTelevision, Apps, Devices, Dashboardなどがあります。

それぞれ選択後、アイコンをクリックして起動を試みたのですが、起動したのはApps のみでした。

Apps はどうやらアプリランチャーの模様で、インストールされているアプリ一覧らしきものが表示されています。

f:id:namaranran:20141203123743p:plain

Androidのランチャーとおなじ考え方みたいですね。 Home画面にはユーザが選択した任意のアプリなどを配置し、インストール済みアプリはランチャーから起動する。という感じでしょうか。

Home画面の他の機能も見てみましょう。 左上に設定アイコンがあり、これを選択することで設定らしきものが表示されます。

f:id:namaranran:20141203123741p:plain

通常の設定アプリとは異なっており、ほとんどの項目がTBD と記載されており開発途中の模様です。

ただ、その中で1項目のみLanding Pageというものが選択出来ます。 初期状態では Clock が入っており、Landingという名称と、Clockが指定されていることから、想像するとこれで起動時のアプリを指定しているみたいです。

f:id:namaranran:20141203123742p:plain

実際にカレンダーに変更してみたころ、待ち受け画面がカレンダーに変更されました。

f:id:namaranran:20141203123744p:plain

駆け足気味でしたが、Firefox OS TV についてシミュレータでのビルド方法からアプリまで紹介しました。 TV 向けのアプリとしてはHome画面、Lock画面、ランチャーアプリ、DLNAプレイヤーなどがあります。 GeckoではTV 向けに拡張されている箇所もありそうですが、今回はそこまで見れていません(´・ω・`)

そこら辺も含めて次回以降に触れられればと思います。

まとめ

今回のポイントをまとめます。

  1. ビルド時に GAIA_DEVICE_TYPE=tv を追加する。
  2. run-emulator.sh でデバイスのサイズを WXGA800 に変更する。
  3. Lock( 時計 )の解除はHomeキー( MacはFn+← )

おさわりするだけですが、これで Firefox OS TVが どんな感じなのかは触ってみることが可能となります。

おわりに

読んでいただいてありがとうございます。 みなさんも Firefox OS TV をビルドしてみて動かして見たくなりましたでしょうか、なりましたよね?

今月末にKDDI から発売される予定のFirefox OS端末を筆頭に来年はFirefox OS TV の年になったりすることを期待して、終わりたいと思います。

ご質問等ございましたら、本記事かTwitter にてお気軽にお声がけください。

来月の1月6日からも2015年のCESが開催され、Firefox OS TV が最初に発表されてから丁度1年となります。何らかの発表があることを期待したいですね。

次回はタブレットか、Firefox OS TV の深堀り( Gaiaの設計 )あたりを書こうかなーと思っています。

それではまたー。