Category Archives: Firefox OS

Firefox OSのProject Tabletとは何者だ?


スマートフォン事業から撤退したFirefox OS、最近はどんな更新が入ってるんだろう?と、githubのBoot to Gecko(B2G)ソースツリーを見てみた。

project-tabletという文字列がちらほら。

Mozillaの公式プロジェクト「Connected Devices/Projects/Project Tablet」というのを発見。
2016/05/11に最初の成果物をリリースした状況であるようだ。

ブラウザのみが動作する軽量OSをタブレット上に載っける、というのが基礎理念のようだ。

600px-Project_Tablet_Architecture

元々、Firefox OSは、GAIA/GECKO/GONKの3階層に別れていた。
GAIA:Firefox OS独自のユーザインタフェースのこと(Mozilla Developrer Network:B2G OS/Firefox OS プラットフォーム/Gaia)
GECKO:Firefox OSのOS基盤でAndroid OS(AOSP)から必要な部分を流用しています(Mozilla Developrer Network:B2G OS/Firefox OS プラットフォーム/Gecko)
GONK:ブラウザFirefoxの画面表示機構(レイアウトエンジン)です(Mozilla Developrer Network:B2G OS/Firefox OS プラットフォーム/Gonk)

それが、この図を見る限り、Project TabletではGAIAは退役で、ブラウザ上でのUI表現となり、
独自にカスタマイズしていたOS基盤をやめ、Android OS(AOSP)そのものを使うようです。

「System Chrome」とあるので、ブラウザエンジンも「Google Chrome」に乗り換えるのか?と焦りましたが、「アプリケーションウィンドウのコンテンツ領域の外側にあるユーザーインターフェイス要素のセット」のことを、「Chrome」と呼ぶようで、Google Chromeブラウザとは関係ありませんでした。(Mozilla Developrer Network:Chrome (クロム) とは?)

で・・・現段階のProject Tabeltは下記の2つの環境で試せるようだ
・Linux PC上で動作させるブラウザベースの環境
・Sony Xperia Z2 Tablet上に書き込んで使う環境

Xperia Z2 Tabletは、Android Lollipopにアップデートした後、ブートローダをunlockしてから、Firefox OSイメージを書き込む、という手順で行うようだ。
なお、Z2 Tabletは、WiFiモデルも、LTEモデルも、どちらも対応しているようだが、LTEモデルは不安定、とのこと。

freetel用にfirefox osが作れるかチャレンジ(失敗


Firefox OSの機種定義に「tara」という名前でSpreadtrumのSC8810を積んでいるらしいものの定義がある。
このSC8810というのは、freetelが採用しているSC7710の元となったチップで、具体的な違いとしては、SC8810は中国専用3GのTD-SCDMA用、SC7710はW-CDMA用という所。
なので、freetel用にFirefox OSが作れないのかな?と環境を作成してみることに・・・

osakanataro@ubuntu:/work/B2G$ ./config.sh tara
Get git://github.com/mozilla-b2g/b2g-manifest
remote: Counting objects: 1068, done.
remote: Compressing objects: 100% (608/608), done.
remote: Total 1068 (delta 701), reused 779 (delta 441)
Receiving objects: 100% (1068/1068), 223.63 KiB | 188 KiB/s, done.
Resolving deltas: 100% (701/701), done.
From git://github.com/mozilla-b2g/b2g-manifest
 * [new branch]      master     -> origin/master
 * [new branch]      v1-train   -> origin/v1-train
 * [new branch]      v1.0.0     -> origin/v1.0.0
 * [new branch]      v1.0.1     -> origin/v1.0.1
 * [new branch]      v1.1.0hd   -> origin/v1.1.0hd
 * [new branch]      v1.2       -> origin/v1.2
 * [new branch]      v1.2f      -> origin/v1.2f
 * [new tag]         B2G_1_0_1_20130213094222 -> B2G_1_0_1_20130213094222
 * [new tag]         B2G_1_1_0_hd_20130530182315 -> B2G_1_1_0_hd_20130530182315
 * [new tag]         B2G_1_1_0_hd_20130530182315_BASE -> B2G_1_1_0_hd_20130530182315_BASE
 * [new tag]         closing-nightly -> closing-nightly
Your Name  [osakanataro]:
Your Email [osakanataro@ubuntu.(none)]: osakanataro@~
Your identity is: osakanataro <osakanataro@~>
is this correct [y/N]? y
Testing colorized output (for 'repo diff', 'repo status'):
  black    red      green    yellow   blue     magenta   cyan     white
  bold     dim      ul       reverse
Enable color display in this user account (y/N)? n
repo has been initialized in /work/B2G
Fetching project platform/external/bluetooth/glib
Fetching project platform/external/safe-iop
Fetching project platform/external/tagsoup
Fetching project platform/external/strace
Fetching projects:   1% (1/84)  Fetching project platform/hardware/libhardware
Fetching projects:   2% (2/84)  Fetching project platform/external/libnfc-nxp
Fetching projects:   3% (3/84)  Fetching project platform/external/dbus
Fetching projects:   4% (4/84)  Fetching project platform/external/flac
Fetching projects:   5% (5/84)  Fetching project platform/external/wpa_supplicant
Fetching projects:   7% (6/84)  Fetching project gaia.git
Fetching projects:   8% (7/84)  Fetching project platform/prebuilt
Fetching projects:   9% (8/84)  Fetching project device/common
Fetching projects:  10% (9/84)  Fetching project platform/libcore
Fetching projects:  13% (11/84)  Fetching project platform/external/gcc-demangle
Fetching project platform/external/protobuf
Fetching projects:  14% (12/84)  Fetching project platform/external/bluetooth/hcidump
Fetching projects:  15% (13/84)  Fetching project platform/external/iptables
Fetching projects:  16% (14/84)  Fetching project platform/external/zlib
Fetching projects:  17% (15/84)  Fetching project platform/external/skia
Fetching projects:  19% (16/84)  Fetching project platform/system/vold
Fetching projects:  20% (17/84)  Fetching project platform/external/liblzf
Fetching projects:  21% (18/84)  Fetching project platform/external/apache-http
Fetching projects:  22% (19/84)  Fetching project platform/external/dnsmasq
Fetching projects:  23% (20/84)  Fetching project platform/external/speex
Fetching projects:  25% (21/84)  Fetching project platform/system/core
Fetching projects:  26% (22/84)  Fetching project platform/external/bluetooth/bluez
Fetching projects:  27% (23/84)  Fetching project platform/external/giflib
Fetching projects:  28% (24/84)  Fetching project platform/system/bluetooth
Fetching projects:  29% (25/84)  Fetching project platform/external/icu4c
Fetching projects:  30% (26/84)  Fetching project platform/frameworks/base
Fetching projects:  32% (27/84)  Fetching project platform/external/libpng
Fetching projects:  33% (28/84)  Fetching project platform/bionic
Fetching projects:  34% (29/84)  Fetching project platform/external/webp
Fetching projects:  35% (30/84)  Fetching project platform/external/libnl-headers
Fetching projects:  36% (31/84)  Fetching project platform/external/expat
Fetching projects:  38% (32/84)  Fetching project platform/system/netd
Fetching projects:  39% (33/84)  Fetching project platform/external/bsdiff
Fetching projects:  40% (34/84)  Fetching project platform/external/jpeg
Fetching projects:  41% (35/84)  Fetching project platform/external/freetype
Fetching projects:  42% (36/84)  Fetching project platform/frameworks/opt/emoji
Fetching projects:  44% (37/84)  Fetching project platform/bootable/recovery
Fetching projects:  45% (38/84)  Fetching project platform/external/sqlite
Fetching projects:  46% (39/84)  Fetching project platform/external/dhcpcd
Fetching projects:  47% (40/84)  Fetching project platform/external/libphonenumber
Fetching projects:  48% (41/84)  Fetching project platform/external/yaffs2
Fetching projects:  50% (42/84)  Fetching project platform/external/openssl
Fetching projects:  51% (43/84)  Fetching project platform/external/mksh
Fetching projects:  52% (44/84)  Fetching project platform_build
Fetching projects:  53% (45/84)  Fetching project rilproxy
Fetching projects:  54% (46/84)  Fetching project platform/external/tremolo
Fetching projects:  55% (47/84)  Fetching project platform/external/stlport
Fetching projects:  57% (48/84)  Fetching project platform/external/tinyalsa
Fetching projects:  58% (49/84)  Fetching project device/sprd
Fetching projects:  59% (50/84)  Fetching project platform/system/extras
Fetching projects:  60% (51/84)  Fetching project platform/hardware/libhardware_legacy
Fetching projects:  61% (52/84)  Fetching project platform/external/bzip2
Fetching projects:  63% (53/84)  Fetching project platform/external/sonivox
Fetching projects:  64% (54/84)  Fetching project gonk-misc
Fetching projects:  65% (55/84)  Fetching project platform/external/jhead
Fetching projects:  66% (56/84)  Fetching project platform/external/fdlibm
Fetching projects:  67% (57/84)  Fetching project platform/frameworks/support
Fetching projects:  69% (58/84)  Fetching project platform/external/webrtc
Fetching projects:  70% (59/84)  Fetching project platform/external/libgsm
Fetching projects:  71% (60/84)  Fetching project gecko.git
Fetching projects:  72% (61/84)  Fetching project platform/external/iproute2
Fetching projects:  73% (62/84)  Fetching project platform/external/llvm
Fetching projects:  75% (63/84)  Fetching project fake-dalvik
Fetching projects:  76% (64/84)  Fetching project screencap-gonk
Fetching projects:  77% (65/84)  Fetching project moztt
Fetching projects:  78% (66/84)  Fetching project librecovery
Fetching projects:  79% (67/84)  Fetching project u-boot
Fetching projects:  80% (68/84)  Fetching project platform/external/harfbuzz
Fetching projects:  82% (69/84)  Fetching project platform/external/libvpx
Fetching projects:  83% (70/84)  Fetching project platform/system/media
Fetching projects:  84% (71/84)  Fetching project platform/ndk
Fetching projects:  85% (72/84)  Fetching project platform/external/gtest
Fetching projects:  86% (73/84)  Fetching project platform/abi/cpp
Fetching projects:  88% (74/84)  Fetching project platform/external/wpa_supplicant_8
Fetching projects:  89% (75/84)  Fetching project apitrace
Fetching projects:  90% (76/84)  Fetching project kernel/common
Fetching projects:  91% (77/84)  Fetching project vendor/sprd/proprietories
Fetching projects:  92% (78/84)  Fetching project platform/external/e2fsprogs
Fetching projects:  94% (79/84)  Fetching project platform/hardware/broadcom/wlan
Fetching projects:  95% (80/84)  Fetching project platform/hardware/ril
Fetching projects: 100% (84/84), done.
error: revision sprdroid4.0.3_vlx_3.0_b2g in platform/abi/cpp not found
Repo sync failed
osakanataro@ubuntu:/work/B2G$

・・・

う~ん・・・これのエラーはどこらを見ればいいんだろうか?

osakanataro@ubuntu:/work/B2G$ ./repo status
project abi/cpp/
  missing (run "repo sync")
project bionic/
  missing (run "repo sync")
project bootable/recovery/
  missing (run "repo sync")
project build/
  missing (run "repo sync")
project dalvik/
  missing (run "repo sync")
project device/common/
  missing (run "repo sync")
project device/sprd/
  missing (run "repo sync")
project external/apache-http/
osakanataro@ubuntu:/work/B2G$ ./repo sync abi/cpp
Fetching project platform/abi/cpp
Fetching projects: 100% (1/1), done.
error: revision sprdroid4.0.3_vlx_3.0_b2g in platform/abi/cpp not found
osakanataro@ubuntu:/work/B2G$

「abi/cpp」でのエラーか

osakanataro@ubuntu:/work/B2G$ ./repo list abi/cpp
abi/cpp : platform/abi/cpp
osakanataro@ubuntu:/work/B2G$ ./repo info abi/cpp
error: manifest required for this command -- please run init
Manifest branch: sprdroid4.0.3_vlx_3.0_b2g
Manifest merge branch: master
Manifest groups: all,-notdefault
----------------------------
Project: platform/abi/cpp
Mount path: /work/B2G/abi/cpp
Current revision: sprdroid4.0.3_vlx_3.0_b2g
osakanataro@ubuntu:/work/B2G$

abi/cpp関連で怪しそうな情報をfind/grepで探してみる。

osakanataro@ubuntu:/work/B2G/.repo/projects/abi/cpp.git$ cat config
[core]
        repositoryformatversion = 0
        filemode = true
[user]
        email = osakanataro@~
[remote "sprd"]
        url = http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
        projectname = platform/abi/cpp
        fetch = +refs/heads/*:refs/remotes/sprd/*
osakanataro@ubuntu:/work/B2G/.repo/projects/abi/cpp.git$ cat FETCH_HEAD
6426040f1be4a844082c9769171ce7f5341a5528                branch 'ics-factoryrom-2
-release' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
6426040f1be4a844082c9769171ce7f5341a5528                branch 'ics-mr0' of http
://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
6426040f1be4a844082c9769171ce7f5341a5528                branch 'ics-mr0-release'
 of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
6426040f1be4a844082c9769171ce7f5341a5528                branch 'ics-mr1' of http
://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
6426040f1be4a844082c9769171ce7f5341a5528                branch 'ics-mr1-release'
 of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
6426040f1be4a844082c9769171ce7f5341a5528                branch 'ics-plus-aosp' o
f http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
eb789ea833d8d800662b67914d9c1785a58c2caa                branch 'jb-dev' of http:
//sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
eb789ea833d8d800662b67914d9c1785a58c2caa                branch 'jb-release' of h
ttp://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
eb789ea833d8d800662b67914d9c1785a58c2caa                branch 'master' of http:
//sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
6426040f1be4a844082c9769171ce7f5341a5528                branch 'tools_r20' of ht
tp://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
22e70042effef3aca9526d3e22f63eac23de782e        not-for-merge   tag 'FIREFOXOS_t
esttwo' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
a858064180600aed773e7b5e365b43e872dc119d        not-for-merge   tag 'FIREFOXOS_v
osakanataro@ubuntu:/work/B2G/.repo/projects/abi/cpp.git$ cat FETCH_HEAD
6426040f1be4a844082c9769171ce7f5341a5528                branch 'ics-factoryrom-2-release' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
6426040f1be4a844082c9769171ce7f5341a5528                branch 'ics-mr0' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
6426040f1be4a844082c9769171ce7f5341a5528                branch 'ics-mr0-release' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
6426040f1be4a844082c9769171ce7f5341a5528                branch 'ics-mr1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
6426040f1be4a844082c9769171ce7f5341a5528                branch 'ics-mr1-release' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
6426040f1be4a844082c9769171ce7f5341a5528                branch 'ics-plus-aosp' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
eb789ea833d8d800662b67914d9c1785a58c2caa                branch 'jb-dev' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
eb789ea833d8d800662b67914d9c1785a58c2caa                branch 'jb-release' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
eb789ea833d8d800662b67914d9c1785a58c2caa                branch 'master' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
6426040f1be4a844082c9769171ce7f5341a5528                branch 'tools_r20' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
22e70042effef3aca9526d3e22f63eac23de782e        not-for-merge   tag 'FIREFOXOS_testtwo' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
a858064180600aed773e7b5e365b43e872dc119d        not-for-merge   tag 'FIREFOXOS_v1.2_W13.42.4' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
755b7feb3226223f6b77377a5e748e1ac47cfbd4        not-for-merge   tag 'android-4.0.1_r1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
6e21cf94291ff0ff67ead081e907b21c46b74075        not-for-merge   tag 'android-4.0.1_r1.1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
9bf3f8b31fc175df486596ae123d4416321cc8c4        not-for-merge   tag 'android-4.0.1_r1.2' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
a4f468880c7d2058fed25e19a90ad288c6d22925        not-for-merge   tag 'android-4.0.2_r1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
1f7abe1dd3a3d37f7c852aa877c576f3cdb4a042        not-for-merge   tag 'android-4.0.3_r1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
1613612046aeadcad431fbea9e056685904f93a1        not-for-merge   tag 'android-4.0.3_r1.1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
437e3997ed5275a19b7e2cf3b130c765c791c9b9        not-for-merge   tag 'android-4.0.4_r1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
0a03a7b231c2ae0529e22c8c7604d44f7e3f3e68        not-for-merge   tag 'android-4.0.4_r1.1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
711142b99de01e9129dec2cc7325315e54996d10        not-for-merge   tag 'android-4.0.4_r1.2' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
00d1d44867ab708d09f7259b29ddfe8ab57008d7        not-for-merge   tag 'android-4.0.4_r2' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
dd924f92906085b831bf1cbbc7484d3c043d613c        not-for-merge   tag 'android-4.0.4_r2.1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
e98b9655ab62adbdc22f7acbe083dbec8ee32c29        not-for-merge   tag 'android-4.1.1_r1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
54d67e380f48d003d8922c17908adc192b375d02        not-for-merge   tag 'android-4.1.1_r1.1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
e519a423ee05d3f3c66e530264626504d66cb7d4        not-for-merge   tag 'android-4.1.1_r2' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
a0ea794ba309c907492e3a4f8da80f604bc6e1ce        not-for-merge   tag 'android-4.1.1_r3' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
ea461d03727143eb07764870765948a0eca9c0a8        not-for-merge   tag 'android-cts-4.0.3_r1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
c9afdbb55d6ea53b805341ea2dcbffac816483f3        not-for-merge   tag 'android-cts-4.0.3_r2' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
b97e7e49feba85359a8770d731cf4817b31ff1ad        not-for-merge   tag 'android-cts-4.0_r1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
6bee6a867b7ede626161d81419166b5e6a0c1239        not-for-merge   tag 'android-cts-verifier-4.0.3_r1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
4d171d013d1230af6b2ec7d35b63b2abc05c46df        not-for-merge   tag 'android-cts-verifier-4.0_r1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
5ddf451125b935e18a6ef60c753a483293790091        not-for-merge   tag 'android-sdk-4.0.3-tools_r1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
460f661655dc22d49a03ab841c60dc7740041740        not-for-merge   tag 'android-sdk-4.0.3_r1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
6c842d709146619646cb4e38e0f6d6ad8b7d7601        not-for-merge   tag 'android-sdk-adt_r16.0.1' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
117d9f9e9275b88650f0465776b859d982f591f2        not-for-merge   tag 'android-sdk-adt_r20' of http://sprdsource.spreadtrum.com:8085/b2g/platform/abi/cpp
osakanataro@ubuntu:/work/B2G/.repo/projects/abi/cpp.git$

この中に「sprdroid4.0.3_vlx_3.0_b2g」というのはないようだ。
ここらあたりが原因か?

これを別のやつに切り替える方法とかあるんだろうか???


2013/12/04 追記

「sprdroid4.0.3_vlx_3.0_b2g」を検索していたら「Bug 929945 – [Fugu][B2G]Enable 128RAM config for fugu device」というFirefox OSの修正に関する記述を見つけた。
SC7710搭載でメモリが少ないというFuguというデバイス向けの修正である。

コメントを見ていくと、「https://github.com/sprd-ffos/device-sprd」というURLが出てくる。
また、このBugzillaを「FUgu」で検索していくと「http://github.com/prcxuying/b2g-manifest」というのも出てくる。

http://github.com/prcxuying/b2g-manifest に登録されているfugu.xmlを見ると、sprdroid4.0.3_vlx_3.0_b2g を使っていないので、コンパイルできるのではないかと期待。

osakanataro@ubuntu:/work/B2G$ export GITREPO=git://github.com/prcxuying/b2g-manifest
osakanataro@ubuntu:/work/B2G$ ./config.sh fugu
Get git://github.com/prcxuying/b2g-manifest
remote: Counting objects: 1013, done.
remote: Compressing objects: 100% (574/574), done.
remote: Total 1013 (delta 671), reused 737 (delta 420)
Receiving objects: 100% (1013/1013), 211.26 KiB | 113 KiB/s, done.
Resolving deltas: 100% (671/671), done.
From git://github.com/prcxuying/b2g-manifest
 * [new branch]      master     -> origin/master
 * [new branch]      v1-train   -> origin/v1-train
 * [new branch]      v1.0.0     -> origin/v1.0.0
 * [new branch]      v1.0.1     -> origin/v1.0.1
 * [new branch]      v1.1.0hd   -> origin/v1.1.0hd
 * [new branch]      v1.2       -> origin/v1.2
 * [new tag]         B2G_1_0_1_20130213094222 -> B2G_1_0_1_20130213094222
 * [new tag]         B2G_1_1_0_hd_20130530182315 -> B2G_1_1_0_hd_20130530182315
 * [new tag]         B2G_1_1_0_hd_20130530182315_BASE -> B2G_1_1_0_hd_20130530182315_BASE
 * [new tag]         closing-nightly -> closing-nightly
Your Name  [osakanataro]:
Your Email [osakanataro@ubuntu.(none)]: osakanataro@~
Your identity is: osakanataro <osakanataro@~>
is this correct [y/N]? y
Testing colorized output (for 'repo diff', 'repo status'):
  black    red      green    yellow   blue     magenta   cyan     white
  bold     dim      ul       reverse
Enable color display in this user account (y/N)? n
repo has been initialized in /work/B2G
Fetching project platform/development
Fetching project device/sample
Fetching project platform_external_apriori
Fetching project platform_external_elfcopy
<略>
system/extras/: discarding 2 commits
system/media/: discarding 1 commits
system/netd/: discarding 10 commits
system/vold/: discarding 11 commits
u-boot/: discarding 43 commits
vendor/sprd/proprietories/: discarding 15 commits
Run |./build.sh| to start building
osakanataro@ubuntu:/work/B2G$

Firefox OSがSpereadtrum SC8810対応に?


Firefox OSのソースコードにPEAK対応が追加されたよ。というので見てみたら、Spereadtrumチップに対応しているのを発見。

B2G/config.shによれば「tara」というコードネームのマシンが「sp8810ea」と定義されてた。

いつ追加されたのかなぁ?と調べてみると2013/04/04「Add tara device support」だった。

さて、この「sp8810ea」とは何かとゆーと、以前に「SpreadtrumのSC8810(SP8810)とSC9610というCPU」という記事でも紹介したが、
中国にあるSpereadtrum社の製造する、GSMと、中国専用の3G TD-SCDMAに対応した、Cortex-A5ベースのCPU SC8810のことだと思います。
中華Android業界では、なぜかよくわかりませんが、「SC8810」ではなく「SP8810」と表記されることが多いです。

わざわざこいつに対応するとは、中国とか、GSMしかない国とかで、廉価スマートフォンとして、かなり売り込む気まんまんですね。

・・・あれ?
検索したら、ずばりそのもののリリースを発見。

2012/07/16発表のSpreadrum社公式リリース「Spreadtrum Low-Cost Smartphone with HTML5 Operating System Demonstrated at Mobile Asia Congress 2012

ようやく、表に出てきた、という感じみたいですね。

さて、現状発売されていいるSC8810搭載機について、fastcardtechで見る限り

とか、そんな感じの価格です。
K-Touch、Lenovoも出しているのがちょっと意外です。

まぁ、個人的には、MediaTekチップセットに対応するべきなんじゃん?と思うわけですが、そこまではやらないのかなぁ・・・

Firefox OSをビルド中


Firefox OSの開発機「Otoro」「Unagi」ってのは、どうもあまりスペックが高くない端末らしい、という話は把握していたものの、実体がよく分からないなぁ、と放置していました。

で、このたび、「Announcing the Firefox OS Developer Preview Phone!」ということで、Geekphone取り扱いで「Keon」と「Peak」の2機種が入手可能になるということがアナウンスされた。

外見とかスペック(Snapdragon S1 1GHz, HVGA, RAM 512MB)とかを考えると、ZTE V788D(MSM7225A)や、Xperia E(MSM7227A)あたりが該当しそうだなぁ、と

そして、先日手に入れたK-Touch W619も同じQualcommのMSM7225A系統。
もしかしたら動くかなぁ?とビルドしてみることにしました。

とりあえず、ソースファイル群を取得し、確認したところ、otoroとunagiの構成に関するファイルは、「B2G/device/qcom/」ディレクトリにありました。
CPUはどちらもMSM7627A、と予想よりはちょっとだけ上でした。
無線LANはunagiは、NL80211とath6kl_sdio(SDIO接続)
otoroは、ar6000という違いがありそうな感じ。
まぁ、見方が間違っているような気もしますけど・・・

とりあえず、otoro想定で、buildを開始してみてます。

まだ、Build途中ですが、すでにはまった点があるので公開しておきます。

・Ubuntu 12.10にしてたらはまった。
すでにUbuntu 12.10 32bit環境があったので、そこに構築したらビルドが早々にエラーになった。
公式の「Firefox OS ビルドの必要条件」にあるように「デフォルトホストコンパイラの変更方法」をおこなう必要があったようだ。
まぁ、64bit環境にかえた方がよさそう、というのもあったので、Ubuntu 12.04 64bit環境で作り直しました。

Firefox OS側の手順Android側の手順とでパッケージ選択に差異がある
同じAndroid開発環境をベースとしているわりに、差異があった。
とりあえず、両方に書かれているパッケージ選択をそのままやっておいた。

また、javaについては「openjdk-6-jdk」を選択しておいた。

・build.sh実行時に「-j2」を指定したら失敗した
オプションなしで実行したら進んだ。

・割り当てメモリが少ないと失敗しやすい?

make[7]: *** [TabChild.o] エラー 1
make[7]: *** 未完了のジョブを待っています....
arm-linux-androideabi-g++: Internal error: Killed (program cc1plus)
Please submit a full bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
In the directory  /work/firefox/B2G/objdir-gecko/dom/ipc
The following command failed to execute properly:

こんな感じのエラーがでます。
公式の「Boot to Gecko のビルド」に空きメモリがないから、と書いてあります。

まぁ、仮想マシンで1.2GBの割り当てで構成しているからですね。
もう1回、build.shを実行すると先に進む程度の失敗のようです。

そんなわけで、終わるのにはまだまだ時間がかかりそうです。