ラベル firefoxos の投稿を表示しています。 すべての投稿を表示
ラベル firefoxos の投稿を表示しています。 すべての投稿を表示

2013年5月9日木曜日

FirefoxOSにおけるInput

PandaboardでFirefoxOSを動作させてから暫くたってしまったが、未だにマウスカーソルの表示は出来ていない。
実現するにあたり色々調べたので、下記にまとめる。

 1. kernelは対応しているのか?

どこから対応しているかを区別したかったので、まずはここから調査した。
結論から言うとgitで取れるkernelは勿論HIDに対応していた。
確認方法はPandaboardにマウスを挿して、adbで下記を打つ

 $ getevent -lp /dev/input/event* (*は環境によって違うので適宜読み替えて下さい)

これはb2gが扱えるinput deviceの情報を出力してくれるコマンドである。

【出力確認部】
 EL (0002): REL_X REL_Y REL_HWHEEL REL_WHEEL

2. Input Dispatcher探し

上記のことから、input eventを受けている箇所があるはずなので探してみる。
gecko/widget/gonk/libui/InputDispatcher.cpp とそれらしいファイルを見つけた。
理想としては、inputから上がってくるx座標、y座標の情報を得たいだけなのだが、複雑そうなので一旦断念した。

3. nsAppShell

MDNでFirefoxOSのplatformアーキテクチャを眺めていたら、
めっちゃ該当箇所が書いてあったのでログを仕込んでみた。
gecko/widget/gonk/nsAppShell.cppのnsMouseEvent()内にx, yという引数があるのでこれを出力してみた。
結果、確かにマウスの動きに合わせて座標が変化していた。(1680x1280の範囲で動いていた。)
この情報をみれば、なんとか操作できないことは無いがやはり不便。

調査した内容は以上、widgetから描画に接続するのはどうしたらいいんだろう。
その辺りがわかれば、問題は解決するはず。

2013年4月26日金曜日

Galaxy NexusにFirefoxOSを入れてみた

Galaxy Nexusを買った目的の1つである『FirefoxOSのおさわり』を実践してみた。
今回はソースコードのダウンロードから、ビルドして焼くまでの一連の作業にトライしてみた。
MDNに書いてある手順通りに進めて、問題なく起動できた。
以下、備忘録。

 環境

  1. PC Ubuntu 12.04
  2. ビルドに必要なtoolchain
  3. Android SDK

手順

1. コードのダウンロード

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

2. ビルド

$ cd B2G
$ ./config.sh galaxy-nexus
$ ./build.sh

3. Flashに焼く

Galaxy Nexusの電源を一旦落とし、Volume Up/Donwを押下しながら電源を入れ、fastbootモードで立ち上げる。
PCとUSBで接続し、下記を実行。

$ flash.sh

以上で完了。
自分の環境は既にbootloaderをunlockしていたが、していなくても上手く行く。
予想以上にあっさりと終わってしまった。
起動してみると、ホームアプリの画面サイズがおかしいようで微妙な感じになっている笑
また、Galaxy Nexus物理キーのHomeボタンがなく、かつFirefoxOS自体もHome用のソフトキーが用意されていないので、一度アプリを立ち上げるとホームに戻れないという。。。
一応動作する、という程度の印象。色々ログを仕込んで挙動を見てみよ。



2013年3月13日水曜日

firefoxOS について

今日は firefoxOS についてつらつら、結論もなく書いてみようと思う。

動機

FirefoxOS が思いの外、話題になって、しまいには有名ニュースサイトのトップまで飾るようになっていて正直驚いたことが発端である。
私の見解では FirefoxOS は非常にグレーな mobile OS であって、個人的には一部のギークに受けるが、一般的には全く受けないと思う。
理由は色々あり後日まとめようと思うが、私が思う流行らない理由は以下の 3 つだ。

流行らないと思う理由

  1. OSS の不透明性
    FirefoxOS は media 関連の module 等(native)はまんま android のソースコードだ。あんまり詳しくみてないが、まんま android なんじゃないかな?と思う。
    android は OSS  と言われているが、メーカーが脱 Google と言っているのを耳にすれば、自然と OSS(笑) というのは安易に想像できる。
    個人的にはいつまで Google が黙っているのだろうかと思う、と同時に、Google に指摘された時点でアウトだと思っている。
  2. Eco System
    アプリが書きやすいのは納得できるし、開発者が楽なことはいいことだ。
    しかし、iOS / android でさえ「ハイブリッドアプリは…」となっている時代に、わざわざ違う環境で、しかもあんまり母体数が少ない端末のアプリ開発に情熱を注ぐ人はどれほどいるのだろう?と個人的に思う。
    「HTML5 だから流用できるだろ、情弱が…」と思われるかもしれないし、自分でも流用性の面は全面的にその認識である。
    ただ、現在 HTML5 を使ったアプリが十分な速度で動作するハードウェアが登場するまでに、FirefoxOS は生き残っているのだろうか…と思う。
  3. Apple / Google の脅威
    とここまで、FirefoxOS 観点で理由を説明したが、個人的に一番流行らないと思う理由はこれである。
    現在、HTML5 と native をつなぐ手段を用意していない両者が、「あーっ!Mozilla にやられたわー。もうお手上げだわー。」みたいな状態になるとも思えない。
    個人的には、しれっとそのパスを用意して、FirefoxOS の強みであるアプリの作りやすさを実現してしまいそうな気がしている。

まとめ

以上、ネイティブな話をつらつらと語ってみたが、個人的には非常に面白い OS だと思っている。ただ、トップニュースになるような話かどうかっていうのは疑問だったので、この記事を書いた。
正直、脱 Google と言っているが、もうそれが出来ない状況になっていると思う。ならば、素直に仲良くやっていたほうがよいと思うし、冷静に判断した方がよいと思います。

2013年2月26日火曜日

FirefoxOS on RaspberryPi

Outline

RaspberryPi 上で FirefoxOS を動かした時の備忘録。

手順

まずは大まかな手順を下記に示し、その後、各手順に関して説明する。
  1. RaspberryPi で Raspbian "wheezy" を起動する。
  2. コマンドライン画面になったら B2G をダウンロード
  3. 起動用プロファイルのダウンロード
  4. 起動
という感じである。以下、詳細を記していく。

 1. RaspberryPi で Raspbian "wheezy" を起動する

  Raspbian wheezy とは RasbperryPi 上で動く Debian wheezy である。
  本家の http://www.raspberrypi.org/downloads からダウンロードできる。
  ダウンロードしたら、解凍して出来る img を SD カードに焼く。以下、sdb と認識された場合の手順。
   $ unzip 2013-02-09-wheezy-raspbian.zip
   $ umount sdb*
   $ dd bs=4M if=2013-02-09-wheezy-raspbian.img of=/dev/sdb
  しばらくすると書き込みが終わる。一連の手順は http://elinux.org/RPi_Easy_SD_Card_Setup に記されていて、
  Windows / OSX での焼き方も書いてあるので適宜参考にして下さい。

  上記で作成した SD カードを RaspberryPi に挿入し、microUSB で電源を入れ起動。
  初期設定画面が出てくるが、今回は何もせずに Finish を選択。
  ※ ここで何もしないと、英語配列のキーボードになってしまうので、
  ※ 日本語配列にしたい場合は キーボードレイアウトを変更して下さい。

 2. コマンドライン画面になったら B2G をダウンロード

  コマンドラインが立ち上がったら、以下のコマンドを実行。
   $ mkdir work & cd work
   $tar xvzf b2g-17.0a1.linuxgl-gnueabi-armhf_v6.tar.gz
   $cd b2g/
   $ldd b2g

 3. 起動用プロファイルをダウンロード

  b2g のディレクトリで以下のコマンドを実行。
   $tar xvzf profile.tar.gz

 4. 起動

   b2g のディレクトリに実行バイナリで b2g コマンドがあるので、
  先ほど落としたプロファイルで起動するようオプションを設定し起動。
   $ ./b2g -profile profile

起動画面



起動が成功すると、こんな感じでディスプレイに対して、左下にちょこっと映し出される。

ちなみに、何度が起動に失敗することもあったり、設定アプリケーションを選択した時点で落ちることもあったので不安定な印象。

FirefoxOS を終了させたい時は、Ctrl + c でターミナルに戻ることが出来る。

まとめ

今回は RaspberryPi で FirefoxOS を起動してみた。
すごい簡単に起動できてしまったし、マウスも効くのでとりあえず動かしてみたいという人にはおすすめ。
まぁ、Firefox のアドオンで動かすこともできるので、そっちの方がお手軽ではあるが。
最近 MWC において FirefoxOS が注目を集めているので、今後の動向に注目してみよう。

2013年2月16日土曜日

FirefoxOS on Pandaboard

FirefoxOS on Pandaboard

Outline

Pandaboard で FirefoxOS を動かすための手順の備忘録。

FirefoxOS に関して

最近話題なので説明の必要は無いと思うが、Mozilla Foundation が開発する
HTML5 base の application platform である。
去年まではそこまで情報がなかったが、最近は話題にも上がることが多くなり、
情報も気軽に手に入れられるようになっている。下記の GitHub が色々な情報
がまとまっているので一読しておくと概要は把握できると思う。
https://github.com/dynamis/firefoxos/wiki

準備

今回は FirefoxOS のソースコードを落としてきて、build したものを起動させる
ことが目標であるが、それをするには以下の項目が必須条件となっている。

 (a) FirefoxOS を build できるマシンと Pandaboard  (※書く必要は無いと思うが一応)
 (b) Pandaboard で起動できる Android ICS イメージ

現状ではまだソースコードを落としてきて、
それを build してイメージを SD に焼くという手順は公開されていないため、
今回は fastboot を利用した起動までの手順を説明する。
ちなみに、メインは FirefoxOS の話なので、今回は (b) の準備は既に行なっている
ものとして話をしていく。
(b) に関しては OMAP のサイトや、ぐぐれば結構出てくるのでそちらを参考にしてほしい。

ソースコードの取得

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

configuration

$ cd B2G
$ ./config.sh pandaboard

build

$ ./build.sh
普通ならば  build 完了なのだが、最近 imgtec の graphics library を取得できず、
エラーですぐに build が止まってしまう。
そのため、 /device/ti/panda/download-blobs.sh を以下のように編集して回避する。
+ download-blobs.sh:PANDA_BLOBS="imgtec-panda-20120430-67545da7.tgz" 
- download-blobs.sh:#PANDA_BLOBS="imgtec-panda-imm76i-67545da7.tgz" 

+ cd ../../..
- cd ../../.. &
- install_blobs panda "$PANDA_BLOBS" "$CSUM_LIST" 

また、prlog.h がないためにエラーになったら libnspr4-dev を入れると解決する。
(追記)
 2013/04の時点で上記は修正されているので、特になにもしなくてもbuild出来る。

起動

まず Pandaboard で Android (ICS) を起動する。
その状態で、PC(USB) と Panda (mini-USB) を接続する、このとき $ lsusb で
Texas Instruments(Pandaboard) が認識されていることをきちんと確認しておく。
Android が立ち上がり、かつ接続も確認できたなら

$ ./flash.sh

で fastboot での処理が始まるので、しばらく待ち処理が完了すると、自動で再起動が行われ
FirefoxOS が立ち上がる。
画面が横向きで、かつマウス等のインプットも受け付けないので、残念ならがここまでしか試せない。

まとめ

マウス操作が出来ず、どんな具合かをみることが出来ないのが非常に残念。
最近では Raspberry Pi で動かしている人もいるようで、その動画をみるとマウスも
つながっているっぽいので、今度はそっちで試してみよう。
また、時間があるときにコードを読みがてらマウスを繋ぐ実装をしてみよう。