きょうのかんぱぱ

デジモノが大好きなかんぱぱの日記です。

Firefox OS & Raspberry Pi WoTハンズオンに参加してみた

  • 投稿日:
  • by
  • Category:

2015/4/26に開催されたFirefox OS & Raspberry Pi WoTハンズオンに参加してみました。

Firefox OSのハンズオンは以前にも参加したことはありますが、Raspberry Piとの連携をやったことがなかったので、良い機会と考えました。会場はMixiさんです。

fxos_pi_handson01.jpg

最初に興味があったRaspberry Piのハンズオンに参加しました。

材料はこんな感じです。

fxos_pi_handson02.jpg

  • Raspberry Pi model B+
  • microSDカード or SDカード
  • USB WiFiアダプタ
  • USB-シリアル変換ボード
  • ブレッドボード
  • 電池BOX(006Pスナップ付き)
  • 単三電池2本
  • モバイルバッテリー(miniUSBコネクタ付)
  • モーター
  • USBケーブル
  • モータードライバIC
  • 抵抗
  • LED
  • 配線材料

今回のハンズオンは配布されたPDFのテキストに従って各自もくもく進める形式でした。不明な点があったらチューターのかたにその都度質問をするという形です。

Raspberry PiのOSや必要なソフトウェアはすでにSDカードに書き込み済で、すぐハンズオンに取りかかれましたが、最初にUSB-シリアル変換ボードを使ってシリアルコンソールでRaspberry Piにログインすることになります。このあたりはこれまで経験がありましたので、スムーズに行うことができました。

次にNode.jsを使いJavaScriptのプログラムでハードウェアの制御を行っていきます。このあたりは未経験なのですが、思ったよりは簡単に進みLチカまではできました。

fxos_pi_handson03.jpg

さて次に進もうかと思っていたところに知り合いの講師のかたに肩を叩かれ、

「すみません。チューターを手伝ってください・・・。」

実は最初のステップのシリアルコンソール接続でRaspberry Piにログインできない人が多く、急遽サポーターとしてお手伝いすることになりました。

ハンズオンのゴールとしては、エミュレーター上のFirefox OSアプリからWebSocketでRaspberry Piと通信し、PWMでモーターを制御するというものでしたが、マニュアルに誤記があったり、WiFiネットワークにRasberry Piがうまく接続できなかったり、その後もトラブル続出でした。

実際にハンズオンでモーターが制御できた動画を載せておきます。この動画には写っていませんが、Firefox OSアプリにスライダーが表示されていて、それを動かすとモーターの回転数が変化するというデモになります。

これまではハンズオンやハッカソンに参加者としての立場で参加してきましたが、今回ひょんなことから運営側の経験ができて、いかに事前準備が大変だということがわかりました。私も運営側としてお手伝いできることがあれば参加していきたいと思います。開催者の皆様お疲れ様でした。

fxos_pi_handson99.jpg

【追記】

ハンズオンで使用したULN2003Aの代わりに、TD62083APGを使って同様な動作ができることを確認しました。

Firefox OS WoTハッカソン on ホワイトデーに参加してみた

  • 投稿日:
  • by
  • Category:

3/14から3/15にかけて開催された au Firefox OS WoTハッカソン on ホワイトデーに参加しました。

前回のau Firefox OS WoTハッカソン on バレンタインデーでは、「わらうフォクすけ」でARM賞をいただきました。今回はこの続きということでキャタピラ基台を持ち込みました。フォクすけ君は事務局のかたに準備していただきました。

旧チームメンバーはホワイトデーにちなんで、フォクすけ君の彼女を準備して、お返しのチョコを届けるようなものを考えていました。

firefox_os_wot_idea1.jpg

他のチームではフォクすけ君が子供のお守りをするアイデアをだしていました。

firefox_os_wot_idea2.jpg

この2つはベースの仕組みは同じになるということで、そちらのチームと合流して作業を進めることになりました。今回のチームは高専のメンバーが参加してフレッシュな雰囲気で始まりました。

材料としては前回作成した「わらうフォクすけ」のキャタピラ基台を使うことは確定で、それに加えて今回新しいデバイスとしてTOCOSのIoT無線タグTWE-Lite-2525Aを使うことにしました。この無線タグは「ハルロック」のネタから実現した「ねこったー」で使われていたものです。この無線タグからの電波強度である程度の距離がわかるとのこと。これを使ってフォクすけ君と彼女の距離や、見守る子供との距離を測ることを目指しました。

もう一つ新たなデバイスとしてOMRONの画像センシングモジュール「HVC-C」を使うことにしました。このモジュールは人の状態を認識する独自の顔画像センシング技術「OKAO Vision」とカメラモジュールをコンパクトに一体化し、センシング結果をBluetoothでスマートフォンに送信することができるものだそうです。これで子供の表情を認識してそれに応じてフォクすけ君にアクションをさせようというアイデアでした。

TOCOSのIoTモジュールはシリアル通信で無線タグの情報が取得できるので、キャタピラ基台を制御しているmbed LPC1768にシリアル接続することにしました。HVC-CはBLE通信になりますので、これに対応できるのはOPEN WEB BOARDかなということで、OPEN WEB BOARDでHVC-Cから表情の情報を取り込むことをめざしました。

最終的なシステム構成図は以下のようになりました。

mimamori_foxkeh_system.jpg

しかし、両方とも初めて使うデバイスであり作業は難航。私が担当したmbedとTOCOS TWE-Lite-DIPの接続の部分はWiFiを使いながらTOCOS TWE-Lite-DIPのシリアル通信を割り込み処理しようとするとハングアップしてしまいます。ARMの雪だるまさんの応援もいただいて、持ち込んだポケットオシロスコープで信号を確認しながら進めましたが、結局原因不明で途中で断念してしまいました。

tocos_mbed_proto.jpg

TOCOS TWE-Lite-DIPはキャタピラ基台への実装まで行ったのですが、残念ながら本番時はこのモジュールは取り外して動かすことになりました。

tocos_mbed.jpg

また、OPEN WEB BOARDとHVC-Cの接続も難易度が高く時間切れとなってしまいました。

フォクすけ君の表情は彼女用にハートマークの表示も追加され、リモコンとなるFx0のUIが洗練されたものになりました。またフォクすけ君本体のFx0からは彼女との出会いを盛り上げるための音楽も鳴るようになりました。

remote_control_ui.jpg

ただ、mbedのところで時間をかけすぎてしまったため、前回大きな課題だった足回りの改良がまったく行えず、電池切れの不安を抱えながらのデモになりました。

残念ながら予感は的中し、デモのときはモーターがまったく動かず、手で押して彼女に接近させ、ハートマーク表示ができたという結果に終わってしまいました。

foxkeh2.jpg

今回は他のチームでも同じようなキャタピラを使った作品がありましたが、そちらでは電源周りがモバイルバッテリーだったり、デジタル回路とモーター回路の電源系統を分けることで安定して走行していました。また、バッテリーや制御基板の搭載を行うために100円ショップのカゴを乗せる工夫もされていました。もし次回があるようであれば、今回できなかったところを全部クリアしたいと思います。

何はともあれ高専生のかたと一緒に作業できたのは楽しかったですし、組み込みデバイスやFirefox OSに大変興味をもっていただけたようでした。

なお、今回の作品はMozilla賞をいただき、3匹のフォクすけ君が賞品となりましたが、このフォクすけ君は高専生のかたに贈られました。

foxkeh_4.jpg

今回のプロジェクトで作成したFiddleのページはこちらになります。

http://fiddle.cc/yamasy1549/mimamori-foxkeh

なかなか難易度が高かったですが楽しかったです。また機会があれば参加したいと思います。

関連ページ

Firefox OS WoTハッカソンに参加してみた

  • 投稿日:
  • by
  • Category:

Firefox OS WoTハッカソンに参加してみました。参加のきっかけはFx0を持っていることと、mbedを使うというところ、実際にIoTが経験できるという点からです。やはり1人で考えていても良いアイデアはでてきません。チームで取り組むことで全く思いもよらない応用が見つかるのではと思ったのです。

ハッカソンは初めての参加でしたので、やや不安もありましたが、mbedのあたりなら貢献できそうなので思い切って参加しました。

チーム分けを行い、アイデアを練りはじめましたが、部材として持って行ったLEDマトリクスやNFCタグとかを眺めながら、Fx0とmbedを使ってIoT(WoT)を試して見るということで、まず「すごろく」というアイデアが出ました。すごろくのコースにスイッチを取り付けたり、NFCタグを使ってコースを進むと、LEDが光ったり、音がでたりとかそのようなものをイメージしていました。そしてそのすごろくの駒としてFx0にタイヤを付けたものを動かすのはどうだろうというアイデアもでてきました。

wot_hackathon_idea1.jpg

結局、すごろくを作るか、Fx0の車を作るかの二択になりましたが、今回はFx0の車を作って、時間があったらすごろくを作ろうという話になりました。mbedやArduinoを使った車は作ったことがありますので、そのあたりのノウハウが役立つかなということで、モーター基台の担当となりました。そうこうしているうちにフォクすけくんのぬいぐるみを載せようということになり、アイデアが膨らんでいきました。また、「しっぽ」を振りたいという強い要望が加わりました。

wot_hackathon_idea5.jpg

秋葉原に出かけて買って来たブルドーザーの基台にフォクすけ君をのせて実装イメージを確認しながら進めました。

wot_hackathon_idea4.jpg

フォクすけ君の実装イメージを確認したあとに、しっぽを振るための材料をまたまた秋葉原に買いに行きました。会場からそんなに遠くないので助かりましたが、結局1日目は秋葉原まで二往復しました。

以降、どのように作り上げたのかは、Fabbleにまとめておきましたのでそちらを参照ください。

http://fabble.cc/dobogo/pitagoraxsugoroku

完成したフォクすけ君はこんな感じです。顔のFx0の画面で感情を表示します。このFx0がWebサーバとして動いていて、もう1台のFx0がリモコンとなりフォクすけ君が進む向きや表情の変更、しっぽ振りのON/OFFを行います。また、Fx0の近接センサーを利用して、目の前に手をかざすと目を閉じたり、後進するようなしかけも入っています。顔のFx0からmbedのWebサーバAPIをアクセスすることで3つのモータ(左、右、しっぽ)を制御します。

wot_hackathon_idea6.jpg

この手のものは発表のときに動かないということがよくあるのですが、今回はリトライしながらもなんとか動いてくれました。ちゃんとしっぽも振りましたし、電源ケーブルを乗り越えて元気よく走り回ってくれました。

wot_hackathon_testrun1.jpg

おかげさまでARM賞をいただくことができました。チームメンバーがそれぞれ得意な部分に取り組むことができ、マッチングが非常に良かったです。また、短時間で実際に動くものを作りあげることができ、Fx0のWebアプリの可能性が見えたように思います。

Team4のみなさん、参加されたみなさん、スタッフのみなさん、お疲れさまでした!

関連ページ

WebSocketでmbedからFx0に情報を渡してみた

  • 投稿日:
  • by
  • Category:

今週末はいよいよFirefox OS WoTハッカソンです。

mbedはこれまでいろいろ使っていて慣れているのですが、mbedからスマホへのリアルタイム通信は経験がありません。少しは勉強しておかなければとWebsocketについて試してみました。

Websocketのサーバはmbedでも提供されているのですが、今回はNode.jsを自分のVPSにインストールしてWebSocketサーバーをたちあげました。

mbedのデベロッパーサイトにWebsocketのサンプルプログラムがあるので楽勝と考えていたのですが、私の環境だと、このサンプルプログラムではNode.jsと通信できたり、できなかったりで非常に不安定でした。コンパイル後のメモリをみてみるとRAMが120%ぐらいになっていて、mbed-rtosを使うとメモリが厳しいのかもしれません。いろいろ探していたらSuga koubouさんのテストプログラムだとNode.jsのサーバに安定して接続できることが確認できました。

これで以下のような環境ができました。

websocket_mbed_fx0.png

mbedアプリケーションボードに実装されている加速度センサーと温度センサーの情報を読み出し、WebSocketでNode.jsのサーバーからブロードキャストして、Fx0に通知し、Fx0のHTML5アプリケーションで表示するものを作りました。

mbed_application_board.jpg

WebSocketとかCANVASとかは初めてでしたが、あちこちのプログラム例を参考にしてなんとか形にできました。

websocket_fx0_app.png

この仕組みをハッカソンで使うかどうかはわかりませんが、良い経験ができたと思います。

au Firefox OS Fx0でFoursquareにチェックインしたい

  • 投稿日:
  • by
  • Category:

auから発売されたFirefox OS LGL25 Fx0を買ってしまいました。

firefox_os_fx0.jpg

すでにFlameを持っていますのでFirefox OSはどういう感じかは知っているのですが、auがどのようにチューニングをして、Firefox OSアプリを揃えてくるのかと興味がありました。現時点ではNAVITIMEで路線情報と地図をカバーし、LINEやFacebookやTwitterでSNSはカバーと最低限のアプリは揃えたようです。他にFraminやLockScreen、au災害対策といったオリジナルアプリも提供されています。あとカメラの画質が思っていたよりは良くてこの点は気に入っています。

私は天気の情報も知りたいので、天気・Rというアプリや、日常的に使っている電卓やコンパスやソリティア、QRコードリーダなどもFirefox Marketplaceからインストールし、これでまあまあ使えるかなという状態にはなりました。

あと、これまで使ってきたSwarmというFoursquereのチェックインアプリがないか探したのですが、Firefox OSはサポートしていないようです。類似のアプリをさがしたところCheck-in Foxというアプリを見つけました。(マスコットキャラクターが可愛いです!)

checkin_fox.png

しかし古いアプリのようで、動作がやや不完全で、地図なども表示されないのですが、ちゃんと日本語でも表示されチェックインまではできます。

checkin_fox_2.png

ソースはGitHubに公開されているので、Firefox WebIDEのデバッガをつかって確認してみましたが、すでにサービスが終了しているWebAPIを呼んでいたりして、修正が必要なようです。時間のあるときにソースを追って動くようにいじってみようかなと思っています。

KitKatベースのFirefox OS 2.1 Flameに日本語IMEをいれてみた

  • 投稿日:
  • by
  • Category:

FlameのベースイメージがBase image v180.zipに変わっていたので、これを使ってリカバリしてみたら、どうもKitKatベースのシステムになったようです。
そういえば、Flameのページに載っているnightly buildも2.0、2.1、2.2といつの間にか変わっていました。しかも、このnightly buildは最初から日本語表示ができるようになっています。これを使えば簡単に日本語IMEの組み込みまでできるのではと考えました。

以下の手順で進めました。(作業環境はubuntuを使っています。)

1. Base image v180.zipをインストールして、FlameをKitKatの環境にする。

$ ls
Flame_2.0_v180_1.zip
$ unzip Flame_2.0_v180_1.zip
Archive: Flame_2.0_v180_1.zip
creating: Flame_2.0_v180_1/
inflating: Flame_2.0_v180_1/#flash.sh#
inflating: Flame_2.0_v180_1/boot.img
 :
$ chmod +x flash.sh
$ ./flash.sh


KitKatベースのFirefox OS 2.0で、Flameが立ち上がります。この時点では日本語は表示されません。

2. Engineering buildsのLatest aurora builds (currentry 2.1)をFlameに入れる。

最初はcurrentry 2.2で試していたのですが、たまに落ちたりしてまだ不安定に見えましたので、今回はcurrentry 2.1を使いました。また、2.1だとAPNパッチがなくても動作しました。

$ ls
b2g-34.0a2.en-US.android-arm.tar.gz gaia.zip shallow_flash.sh
$ ./shallow_flash.sh -ggaia.zip -Gb2g-34.0a2.en-US.android-arm.tar.gz
Are you sure you want to flash
Gaia: gaia.zip
Gecko: b2g-34.0a2.en-US.android-arm.tar.gz
to your Device? [y/N]y
### Waiting for device... please ensure it is connected, switched on and remote debugging is enabled in Gaia
### Restarting adb with root permissions...
  :(省略)
24 files pushed. 0 files skipped.
3135 KB/s (39144521 bytes in 12.193s)
### Push Done.
### Shallow Flash Successful!
$

これで、Firefox OS 2.1になります。何もしなくても日本語表示が可能です。でも、日本語IMEは使えないです。

3. Firefox OS 2.1のソースを落としてきて、gaiaだけbuildし、日本語キーボードを組み込む。

$ cd ~
$ git clone git://github.com/mozilla-b2g/B2G.git $ cd ~/B2G $ BRANCH=v2.1 ./config.sh flame-kk $ cd gaia/locales/ $ hg clone http://hg.mozilla.org/gaia-l10n/ja $ cp languages_dev.json languages_ja.json $ vi languages_ja.json { "en-US" : "English (US)", "ja" : "日本語" } $ cd ~/B2G $ vi .userconfig ## Gaia export LOCALE_BASEDIR=$PWD/gaia/locales export LOCALES_FILE=$PWD/gaia/locales/languages_ja.json export GAIA_DEFAULT_LOCALE=ja export GAIA_KEYBOARD_LAYOUTS=en,jp-kanji $ ./build.sh gaia including device/qcom/common/vendorsetup.sh including device/generic/armv7-a-neon/vendorsetup.sh  :(省略) real 0m43.356s user 0m38.001s sys 0m6.989s Run |./flash.sh| to flash all partitions of your device $

4. gaiaだけFlameに書き込む。

$ ./flash.sh gaia
Detect GAIA_INSTALL_PARENT ...
 :(省略)
Push to /system/b2g ...
$

これで、日本語IMEが組み込まれたFirefox OS 2.1 Flameができあがります。

gaiaのビルドはそんなに時間がかからないので、この方法で行うと短時間で日本語IMEが動くようになります。

Firefox OS 2.2 NightlyにYahoo!メールの自動設定を組み込んでみた

  • 投稿日:
  • by
  • Category:

Firefox OS 2.2 Nightlyで、原因は不明ですが、メールの手動設定が正常に動かない状態になってしまいました。
Yahoo!メールを手動設定したあとに、メールを受信しようとすると、こんな画面になってしまいます。前回ビルドしたときはこれで動いていたのですが。
fxos_mailconfig_error.png

Gmailは自動設定になりますが、こちらは全く問題ありませんでした。
まあ、Nightlyなのでこういうバグらしきものがでてくるのは仕方ないことです。
何か解決するヒントはないかなと、ビルド環境を見ているとメールの自動設定の定義ファイルがあったので、それをYahoo!メール用に書き直してみました。
メールの自動設定の定義ファイルはビルド環境の以下のディレクトリにあります。

B2G/gaia/apps/email/autoconfig

ここに各メールプロバイダー用の設定が並んでいますので、それを参考にして次のようなテキストファイルを作り、ファイル名 yahoo.co.jpでautoconfigのディレクトリに置きました。

<clientConfig version="1.1">
  <emailProvider id="yahoo.co.jp">
    <!-- MX, for Yahoo! JAPAN -->
    <domain>yahoo.co.jp</domain>
    <displayName>Yahoo!JAPAN Mail</displayName>
    <displayShortName>Yahoo!JAPAN</displayShortName>
    <incomingServer type="imap">
      <hostname>imap.mail.yahoo.co.jp</hostname>
      <port>993</port>
      <socketType>SSL</socketType>
      <username>%EMAILLOCALPART%</username>
      <authentication>password-cleartext</authentication>
    </incomingServer>
    <outgoingServer type="smtp">
      <hostname>smtp.mail.yahoo.co.jp</hostname>
      <port>465</port>
      <socketType>SSL</socketType>
      <username>%EMAILLOCALPART%</username>
      <authentication>password-cleartext</authentication>
    </outgoingServer>
  </emailProvider>
</clientConfig>

あとは、./build.sh gaia をして、./flash.shで書き込みです。

さてこんな適当に作って試してよいのかという感じですが、そこはFlameなので。
メールアプリでYahoo!メールを設定したところ、全く問題なく自動設定ができてしまいました。
これでメールの手動設定の手間が省けるようになりました。

日本語IMEを組み込んだFirefox OS 2.1をFlameに書き込んでみた

  • 投稿日:
  • by
  • Category:

Firefox OS 2.1をビルドして日本語IMEを組み込みFlameに書き込んでみました。
ビルド環境はubuntu 14.04 LTS (64bit) です。
以下手順の抜粋です。抜け漏れあるかもしれません。
思考錯誤で行いましたので、手順でおかしなところがあるかもしれませんが、そこは自己責任でお願いします。

まずは、Firefox OS 2.1のNightlyをBuildする環境をつくります。

$ sudo apt-get install --no-install-recommends autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib gcc-4.6 g++-4.6 g++-4.6-multilib git lib32ncurses5-dev lib32z1-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev libx11-dev make zip libxml2-utils
$ cd
$ git clone git://github.com/mozilla-b2g/B2G.git
$ cd B2G
$ ./config.sh flame
$ ./build.sh

ここでビルドしたFirefox OS 2.1をFlameに書き込んで動作することを確認します。

次に日本語辞書を入手します。
http://sourceforge.jp/projects/naist-jdic/releases/
naist-jdic-0.4.3.tar.gzをダウンロード

ダウンロードした日本語辞書を適当なところに展開します。

$ cd ~
$ zcat naist-jdic-0.4.3.tar.gz | tar xvf -
$ cd naist-jdic-0.4.3
$ ls -l *.dic

dicファイルをコピーして辞書を作ります。

$ cd ~/B2G/gaia/apps/keyboard/js/imes/jskanji
$ cat README
$ cd dict
$ mkdir ipadic
$ cp ~/naist-jdic-0.4.3/*.dic ipadic/.
$ make

dict.jsonができているはずです。

Makefileに日本語キーボードを指定する。

$ cd ~/B2G/gaia
$ cp Makefile Makefile.org
$ vi Makefile
$ diff Makefile.org Makefile
*** Makefile.org	2014-08-12 01:19:13.466204000 +0900
--- Makefile	2014-08-12 02:18:46.746204000 +0900
***************
*** 395,401 ****
GAIA_CONCAT_LOCALES?=1
# This variable is for customizing the keyboard layouts in a build.
! GAIA_KEYBOARD_LAYOUTS?=en,pt-BR,es,de,fr,pl,zh-Hans-Pinyin,en-Dvorak
ifeq ($(SYS),Darwin)
MD5SUM = md5 -r
--- 395,402 ----
GAIA_CONCAT_LOCALES?=1
# This variable is for customizing the keyboard layouts in a build.
! #GAIA_KEYBOARD_LAYOUTS?=en,pt-BR,es,de,fr,pl,zh-Hans-Pinyin,en-Dvorak,jp-kanji
! GAIA_KEYBOARD_LAYOUTS?=en,jp-kanji
ifeq ($(SYS),Darwin)
MD5SUM = md5 -r

日本語リソースの組み込み
https://hg.mozilla.org/releases/gaia-l10n/v2_0から日本語リソースをダウンロード
ダウンロードした日本語リソースをホームディレクトリに展開

$ cd
$ unzip ja-7222e75b66ca.zip
$ ls -l ja-7222e75b66ca/
$ cd
$ mv ja-7222e75b66ca ~/B2G/gaia/locales/ja
$ cd ~/B2G/gaia/locales/
$ cp languages_dev.json languages_own.json
$ vi languages_own.json
$ diff -rc languages_dev.json languages_own.json
*** languages_dev.json	2014-08-11 07:51:24.924547000 +0900
--- languages_own.json	2014-08-12 02:24:28.094204000 +0900
***************
*** 1,39 ****
{
- "ar" : "عربي",
- "bg" : "български",
- "bn-BD" : "বাংলা (বাংলাদেশ)",
- "ca" : "Català",
- "cs" : "Čeština",
- "da" : "Dansk",
- "de" : "Deutsch",
- "el" : "Ελληνικά",
"en-US" : "English (US)",
! "es" : "Español",
! "eu" : "Euskara",
! "fr" : "Français",
! "gl" : "Galego",
! "hr" : "Hrvatski",
! "hu" : "Magyar",
! "it" : "Italiano",
! "ja" : "日本語",
! "km" : "ខ្មែរ",
! "ko" : "한국어",
! "lt" : "Lietuvių",
! "mk" : "Македонски",
! "ms" : "Melayu",
! "ne-NP" : "नेपाली",
! "nl" : "Nederlands",
! "pa" : "ਪੰਜਾਬੀ",
! "pl" : "Polski",
! "pt-BR" : "Português (do Brasil)",
! "ro" : "Română",
! "ru" : "Русский",
! "sk" : "Slovenčina",
! "sq" : "Shqip",
! "sr-Cyrl" : "Српски",
! "sr-Latn" : "Srpski",
! "sv-SE" : "Svenska",
! "tr" : "Türkçe",
! "zh-CN" : "中文 (简体)",
! "zh-TW" : "正體中文 (繁體)"
}
--- 1,4 ----
{
"en-US" : "English (US)",
! "ja" : "日本語"
}

環境変数を設定

$ export LOCALE_BASEDIR=$PWD/gaia/locales
$ export GAIA_DEFAULT_LOCALE=ja
$ export LOCALES_FILE=$PWD/gaia/locales/languages_own.json

APNのパッチを行う。

$ cd $ unzip firefoxos-patch-master.zip $ cd ~/B2G/gaia/shared/resources $ patch apn.json ~/firefoxos-patch-master/apn.json.diff

gaiaを再ビルドする。

$ cd ~/B2G
$ ./build.sh gaia

Flameに書き込み

$ cd ~/B2G
$ ./flash.sh

これで日本語入力ができるようになります。
ここではまだFMラジオパッチを組み込んでいませんが、このビルドツリーに反映してしまえば毎回パッチも不要です。

fxos21_kanji_ime.jpg

Firefox OS FlameにNightly buildをいれて日本語表示をしてみた

  • 投稿日:
  • by
  • Category:

Firefox OS Flameを手に入れました。でも、購入時点だとFirefox OS 1.3で日本語画面ではありませんでした。

FlameのページにNightly build (Firefox OS 2.1)がリンクされていましたので、これと入れ替えてみました。

私はMacBook Airを使っていますので、adb-fastboot-installをインストールしてadbやfastbootが動く状態にしています。

以下の3つの必要なファイルをMacにダウンロードして、適当なフォルダにいれておきます。

  • b2g-34.0a1.en-US.android-arm.tar.gz (ファイル名はその都度変わります)
  • gaia.zip
  • shallow_flash.sh

作業の前にFlameの環境設定でリモートデバッグを有効にしておくことと、途中で端末ロックがかからないように画面ロックを無効にしておきます。

Macのターミナルを立ち上げて、先ほどのフォルダに移動します。

$ cd ~/Desktop/Flame

実行権限をつけます。

$ chmod +x ./shallow_flash.sh

書き込みのスクリプトを実行します。

$ ./shallow_flash.sh -g gaia.zip -G b2g-34.0a1.en-US.android-arm.tar.gz
Are you sure you want to flash
Gaia: gaia.zip
Gecko: b2g-34.0a1.en-US.android-arm.tar.gz
to your Device? [y/N]y ←Yと入力。
### Waiting for device... please ensure it is connected, switched on and remote debugging is enabled in Gaia
### Restarting adb with root permissions...
adbd is already running as root
### Remounting the /system partition...
remount succeeded
### Stopping b2g process...
### Processing Gaia: gaia.zip
### Unzip gaia.zip to /var/folders/83/rk2h8hb12fs8ft2v0f68zyqm0000gn/T/shallowflashgaia.XXXXXXXXXXXX.CorEeLCJ ...
### Cleaning Gaia and Profiles ...
rm failed for /data/local/svoperapps, No such file or directory
rm failed for /data/local/user.js, No such file or directory
rm failed for /data/local/indexedDB, No such file or directory
### Cleaning Done.
### Pushing Gaia to device ...
push: /var/folders/83/rk2h8hb12fs8ft2v0f68zyqm0000gn/T/shallowflashgaia.XXXXXXXXXXXX.CorEeLCJ/gaia/profile/webapps/bluetooth.gaiamobile.org/manifest.webapp -> /system/b2g/webapps/bluetooth.gaiamobile.org/manifest.webapp
push: /var/folders/83/rk2h8hb12fs8ft2v0f68zyqm0000gn/T/shallowflashgaia.XXXXXXXXXXXX.CorEeLCJ/gaia/profile/webapps/bluetooth.gaiamobile.org/application.zip -> /system/b2g/webapps/bluetooth.gaiamobile.org/application.zip
:
:(中略)
:
push: /var/folders/83/rk2h8hb12fs8ft2v0f68zyqm0000gn/T/shallowflashgecko.XXXXXXXXXXXX.sH1PJPqC/b2g/b2g -> /system/b2g/b2g
push: /var/folders/83/rk2h8hb12fs8ft2v0f68zyqm0000gn/T/shallowflashgecko.XXXXXXXXXXXX.sH1PJPqC/b2g/application.ini -> /system/b2g/application.ini
24 files pushed. 0 files skipped.
3746 KB/s (38943826 bytes in 10.151s)
### Push Done.
error: protocol fault (no status) ←エラーのようですが問題なさそうです。
### Shallow Flash Successful!
$

これで、リブートするとFirefox OS 2.1が立ち上がります。

環境設定で確認すると2.1.0.0-prereleaseとなっていました。

初期設定で日本語が選択できますので、それを選択するとホーム画面や各種表示が日本語になります。

残念ながら日本語IMEは組み込まれていないので、自分でビルドするしかありませんが、手っ取り早く最新の環境を使ってみるのも面白いのではと思います。

なお、すでに公開されているAPNパッチとFMラジオパッチはそのまま使えました。

ホーム画面のスクリーンショットを撮ってみましたが、Firefox OS 2.1では音量を下げるボタンとホームボタンの同時押しに変更になっています。

flame_fxos21_screen.jpg