blob: 0f8fa55d75676699301c6cbeefc3c38fbd625cb5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
|
---
title: B2G OS ビルドの必要条件
slug: Archive/B2G_OS/B2G_build_prerequisites
tags:
- B2G OS
- Build documentation
- Build prerequisites
- Mobile
- Mobile OS
- build b2g os
- how to build b2g os
translation_of: Archive/B2G_OS/B2G_OS_build_prerequisites
---
<div class="summary">
<p><span class="seoSummary">B2G OS のコードを入手してビルドする前には、単に Gaia をビルドしてみる場合でも、<a href="/docs/Developer_Guide/Build_Instructions" title="/ja/docs/Developer_Guide/Build_Instructions">ビルド環境</a> を適切に設定することが必要です (このページで方法を説明します)。現在、64 ビット版 Linux ディストリビューションおよび Mac OS X でビルド可能です。</span></p>
</div>
<h2 id="互換性のあるビルドターゲット">互換性のあるビルドターゲット</h2>
<p>ビルドするには互換性のある端末を用意する必要があります。さもなくばエミュレータを使用してください。</p>
<div class="note">
<p><strong>記</strong>: Mozilla の <a href="https://github.com/mozilla-b2g/B2G">B2G ソースコード</a>は、事実上 B2G OS のリファレンス実装ですが、携帯電話ベンダーは、自由にパッチをあてたり変更を加えたりすることが可能です。小売端末を買った場合、これにはベンダーの構成したバージョンが含まれます。これは、インストール済みのアプリには影響はありませんが、プラットフォームレベルでは影響する可能性があります。Nexus 5 への移植は、Mozilla が直接メンテナンスしているので、他 の端末と比較して、我々の Gecko のバージョンがはるかにうまく動作するでしょう。</p>
</div>
<h3 id="エミュレータ"><a href="/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators" title="en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators">エミュレータ</a></h3>
<p>利用可能なエミュレータは 2 種類あります。一つは ARM コードをエミュレートし、もう一つは実行するのに x86 コードを使用します。<a href="/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_emulators" title="/ja/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators">「B2G エミュレータを使用する」で詳しく学んでください</a>。<strong>x86 エミュレータは使用すべきではありません。インストールが困難で、十分にサポートされていません。</strong></p>
<h3 id="デスクトップ"><a href="/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client" title="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client">デスクトップ</a></h3>
<p>デスクトップ版の B2G OS をビルドすることもできます。このビルドは、<a href="/docs/XULRunner">XULRunner</a> アプリケーションで <a href="/docs/Mozilla/Gecko">Gecko</a> を実行し、その中で <a href="/docs/Mozilla/Boot_to_Gecko/Introduction_to_Gaia">Gaia</a> の UX を確認できます。</p>
<h3 id="端末"><a href="/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS/Compatible_Devices">端末</a></h3>
<p>いくつかの端末が B2G OS と互換性があります。しかしいくつかはそれ以外のものよりも互換性があり、端末の特定種のみが互換性があることもあります。詳細は <a href="/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS/Compatible_Devices">互換性のある端末</a> のページを確認してください。</p>
<div class="warning"><strong>重要</strong>: <strong>Android 4.3</strong> 以降 (いわゆる <strong>Jelly-bean, Kitkat, Lollipop</strong>) で動作している端末のみがサポートされています。もし上のリストにあなたの端末があっても、古いバージョンの Android を実行している場合は、まず更新してください。</div>
<h2 id="Requirements_for_GNULinux" name="Requirements_for_GNULinux">GNU/Linux での必要条件</h2>
<p>ディストリビューションによってドキュメント変更が激しいので、右上の言語メニューから、このページの英語版ドキュメントも参照してください。</p>
<p>Linux でビルドするには以下のシステム構成が必要です:</p>
<ul>
<li><strong>64 ビット版 GNU/Linux</strong> ディストリビューション (Ubuntu 14.04 LTS 推奨)</li>
<li>最低 <strong>4 GB</strong> の RAM</li>
<li>最低 <strong>40 GB</strong> のハードディスク空き領域</li>
</ul>
<p>以下のツールもインストールしておく必要があります:</p>
<table class="standard-table">
<tbody>
<tr>
<td>
<ul>
<li><strong>autoconf 2.13</strong></li>
<li><strong>bison</strong></li>
<li><strong>bzip2</strong></li>
<li><strong>ccache</strong></li>
<li><strong>curl</strong></li>
<li><strong>flex</strong></li>
<li><strong>gawk</strong></li>
<li><strong>git</strong></li>
<li><strong>gcc</strong></li>
<li><strong>nodejs</strong></li>
<li><strong>python</strong></li>
</ul>
</td>
<td>
<ul>
<li><strong>g++ / g++-multilib</strong></li>
<li><strong>java sdk (jdk)</strong></li>
<li><strong>lzop</strong></li>
<li><strong>make</strong></li>
<li><strong>OpenGL shared libraries</strong></li>
<li><strong>patch</strong></li>
<li><strong>X11 headers</strong></li>
<li><strong>32-bit ncurses</strong></li>
<li><strong>32-bit zlib</strong></li>
<li><strong>unzip</strong></li>
</ul>
</td>
</tr>
</tbody>
</table>
<h3 id="Ubuntu_12.04_LTS_Debian_6_Linux_Mint_13">Ubuntu 12.04 LTS / Debian 6 / Linux Mint 13</h3>
<p>ターミナルで下記のコマンドを実行してください:</p>
<pre><code>sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libasound-dev libgconf2-dev libgl1-mesa-dev libx11-dev lzop make zip libxml2-utils nodejs unzip python</code></pre>
<p><a href="http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html">このppa</a> を通じて jdk をインストールできます。</p>
<h3 id="Ubuntu_14.04_LTS_Debian_7">Ubuntu 14.04 LTS / Debian 7</h3>
<p>まず、必須アーキテクチャをセットするため、次のコマンドを実行します:</p>
<pre><code>sudo dpkg --add-architecture i386</code>
sudo dpkg --add-architecture amd64
</pre>
<p>ターミナルで次のコマンドを実行してください:</p>
<pre><code>sudo apt-get install --no-install-recommends autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git lib32ncurses5-dev lib32z1-dev libgconf2-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev libx11-dev make zip lzop libxml2-utils openjdk-7-jdk nodejs unzip python</code>
</pre>
<h3 id="Ubuntu_16.04">Ubuntu 16.04</h3>
<div class="note">
<p>2016 年 6 月に ubuntu 16.04 で、<strong>make</strong> のバージョンは <strong>4.1</strong> となって android のビルドができなくなりました。これを経験した場合、信頼できるリポジトリ (14.04) を追加し、<strong>バージョン 3.81</strong> にダウングレードして、次のコマンドを実行します:</p>
<pre><code>sudo apt-get install make=3.81-8.2ubuntu3</code></pre>
<p>次に自動アップグレードを避けるため、<strong>make</strong> パッケージを<em>保持する</em>ようマークします。</p>
<pre><code>sudo apt-mark hold make </code></pre>
</div>
<p>まず、必須アーキテクチャをセットするため、次のコマンドを実行します:</p>
<pre><code>sudo dpkg --add-architecture i386</code>
sudo dpkg --add-architecture amd64
</pre>
<p>ターミナルで次のコマンドを実行してください:</p>
<pre><code>sudo apt-get install --no-install-recommends autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git lib32ncurses5-dev lib32z1-dev libgconf2-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev libx11-dev make zip lzop libxml2-utils openjdk-8-jdk nodejs unzip python</code>
</pre>
<h3 id="Ubuntu_16.10">Ubuntu 16.10</h3>
<p>ubuntu 16.10 では、既定の make のバージョンは 4.1 であり、android のビルドができません。この問題を回避するには、コンソールで次のコマンドを実行します:</p>
<pre>wget http://ftp.us.debian.org/debian/pool/main/m/make-dfsg/make_3.81-8.2_amd64.deb
sudo dpkg -i make_3.81-8.2_amd64.deb</pre>
<p>自動アップグレードを避けるため、make パッケージを保持するようにマークします:</p>
<pre>sudo apt-mark hold make</pre>
<p>次に、必須のアーキテクチャを追加する必要があります:</p>
<pre>sudo dpkg --add-architecture i386
sudo dpkg --add-architecture amd64 </pre>
<p>ターミナルで次のコマンドを実行します:</p>
<pre><code>sudo apt-get install --no-install-recommends autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git lib32ncurses5-dev lib32z1-dev libgconf2-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev libx11-dev make zip lzop libxml2-utils openjdk-8-jdk nodejs unzip python</code> </pre>
<h3 id="USB_アクセスの構成">USB アクセスの構成</h3>
<p>Linux システムでは通常時、通常のユーザーは USB デバイスへ直接アクセスすることが出来ません。<code>/etc/udev/rules.d/51-android.rules</code> にファイルを作成し、次のコマンドを実行してください:</p>
<p><strong>TODO: Merge Bug 1230463</strong></p>
<pre><code>wget -S -O - https://raw.githubusercontent.com/cm-b2g/B2G/1230463/tools/51-android.rules | sudo tee >/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules
<s>wget -S -O - https://raw.githubusercontent.com/mozilla-b2g/B2G/master/tools/51-android.rules | sudo tee >/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules</s></code></pre>
<p>新しいルールは次に端末を接続した時に有効になります。</p>
<h3 id="ccache_の設定">ccache の設定</h3>
<p>大量のコードをビルドしますが、そのうちの大半はビルド毎に変更がありません。コンパイルツールの ccache を使うことで、コンパイルを劇的に高速化できます。次のコマンドで 50GB キャッシュを与えます:</p>
<pre><code>ccache -M 50G</code></pre>
<div class="note">
<p><strong>補足</strong>: ディスク領域が限られている場合は、キャッシュを 50GB 以下に設定してください。</p>
</div>
<h3 id="その他のディストリビューション">その他のディストリビューション</h3>
<h4 id="Fedora_22">Fedora 22</h4>
<p>ターミナルで次のコマンドを実行してください:</p>
<pre><code>sudo yum install autoconf213 bison bzip2 ccache curl flex gawk gcc-c++ git glibc-devel glibc-static libstdc++-static libX11-devel make mesa-libGL-devel ncurses-devel patch zlib-devel ncurses-devel.i686 readline-devel.i686 zlib-devel.i686 libX11-devel.i686 mesa-libGL-devel.i686 glibc-devel.i686 libstdc++.i686 libXrandr.i686 zip perl-Digest-SHA wget lzop libxml2-utils</code></pre>
<h4 id="Arch_Linux">Arch Linux</h4>
<p>ターミナルで次のコマンドを実行してください:</p>
<pre><code>sudo pacman -S --needed alsa-lib autoconf2.13 bison ccache curl firefox flex gcc-multilib git gperf libnotify libxt libx11 mesa multilib-devel wget wireless_tools yasm zip lib32-mesa lib32-mesa-libgl lib32-ncurses lib32-readline lib32-zlib lzop</code></pre>
<p>lib32-* パッケージをインストールするには、multilib リポジトリを有効にしておく必要があります。</p>
<p>初期状態で、Arch Linux は Python3 を使用するため、強制的に古い Python2 を使うようにする必要があります。python2 の実行モジュールを python にリンクすることもできますが、お勧めできませんし、過ちの元になると考えられます。これは、インストールされている python3 を破壊します。より良い方法は、次のように <code>virtualenv</code>/<code>virtualenvwrapper</code> を使うことです:</p>
<pre><code><span><span>sudo pacman -S python-virtualenvwrapper
</span></span>source /usr/bin/virtualenvwrapper.sh
mkvirtualenv -p `which python2` firefoxos
workon firefoxos</code>
</pre>
<p>次のコマンドで python のバージョンを確認してください:</p>
<pre><code>python --version</code></pre>
<p>"Python 2.7.12" 以降のバージョンが表示されます。</p>
<h4 id="Gentoo_Linux">Gentoo Linux</h4>
<h5 id="Installing_ccache" name="Installing_ccache">ccache のインストール</h5>
<p><strong><a href="http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=3#doc_chap3">ccache</a></strong> をインストールする必要があります。これは部分的なビルドをキャッシュするツールです。</p>
<pre><code><span><span># emerge -av ccache</span></span>
</code></pre>
<p>ccache はサポート問題を頻繁に起こすことが知られているので、Gentoo では、<em>明示的に</em>、<em>控えめに</em>使うのをおすすめします。</p>
<p>このガイドの<em>続く手順</em>で、<code>./build.sh</code> スクリプトが呼ばれる時に ccache を使う必要があります。ここで ccache を有効にするには、Gentoo ユーザは代わりに明示的に展開されたパスでコマンドを実行してください:</p>
<pre><code><strong>PATH=/usr/lib64/ccache/bin:$PATH</strong> ./build.sh
</code></pre>
<h5 id="パーティションイメージの生成">パーティションイメージの生成</h5>
<p>B2G を実際の物理ハードウェア用にビルドする場合、ある時点で端末にアップロードするパーティションイメージを生成したくなるかもしれません (例えば、<strong><em>fastboot</em></strong> ユーティリティを使ってバックアップファイルを復元する時など)。</p>
<p>ここでは、ファイルシステムイメージが YAFFS2 (Yet Another Filesystem 2) であるとします。 Gentoo は最新 (つまり git HEAD リビジョン) の <code>yaffs2-utils</code> ユーザーランドのパッケージをサポートします。 (注記: YAFFS2 イメージをマウントする場合、カーネルパッチも必要になります。ただし、代わりに分解してリビルドすることが可能なため、これは真に必要とは言えません。)</p>
<pre><code># emerge --autounmask-write yaffs2-utils; etc-update; emerge -av yaffs2-utils</code></pre>
<p>こうしたイメージを生成するには、パーティションの単にパッケージ化したいファイルシステムツリーの親ディレクトリに移動し、次のコマンドを実施してください:</p>
<pre><code>mkyaffs2image system/ system.img</code></pre>
<h3 id="古いブランチ">古いブランチ</h3>
<p>B2G OS の古いブランチをコンパイルする必要がある場合、ビルドエラーが発生する可能性があります。<a href="/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS/Build_legacy_branches">過去のブランチをビルドする</a>のページを参照してください。</p>
<h2 id="Mac_OS_X_での必要条件">Mac OS X での必要条件</h2>
<div class="note">
<p><strong>注記: Mac 上で B2G を Keon 端末用に設定し、ビルドしても<u>動作しません</u>。</strong> この端末用に B2G をビルドするには Linux を使う必要があります。</p>
</div>
<div class="note">
<p><strong>注記: Fairphone2 向けの B2G は Mac では<u>動作しません</u>。</strong>この端末向けの B2G をビルドするには Linux を使う必要があります。理由は blob が MD5 チェックに成功しないためです。詳しくは <a href="https://forum.fairphone.com/t/blobs-md5-checksum-doenst-match/18107">Fairphone のフォーラムトピック</a> を見てください。</p>
</div>
<p>Mac OS X 上で B2G OS をビルド可能ですが、簡単ではありませんし、よくサポートされてもいません。古い Xcode をインストールする必要がありますが、現行バージョンの Xcode と競合してしまうでしょう。最も良い体験を求めるなら、Ubuntu 14.0 LTS でビルドすべきですが、<em>こだわる</em>なら、下記のステップをお試しください:</p>
<h3 id="OS_X_10.11_El_Capitan_OS_X_10.10_Yosemite">OS X 10.11 El Capitan & OS X 10.10 Yosemite</h3>
<div class="warning">
<p><strong>重要</strong>: OS X 10.11 El Capitan でのビルドは実験的であり、完了しない可能性があります!以下の手順が改善しワーニングが無くなるまで OS X 10.10 Yosemite に留まってください。</p>
</div>
<h4 id="大文字小文字を区別するファイルシステム">大文字小文字を区別するファイルシステム</h4>
<p>OS X のデフォルトインストールは、B2G OS のビルドに適しません。大文字小文字を区別するファイルシステム上で、 OS X を再インストールする必要があるでしょう。</p>
<h4 id="Xcode_7.2">Xcode 7.2</h4>
<ol>
<li>Apple ストアから、最新の Xcode をインストールします。</li>
<li>次のコマンドで、ライセンスに同意します:</li>
</ol>
<pre><code>sudo xcodebuild -license</code></pre>
<h4 id="Xcode_Command_Line_Tools">Xcode Command Line Tools</h4>
<p>次のコマンドで、Xcode Command Line Tools をインストールします:</p>
<pre><code>xcode-select --install</code></pre>
<h4 id="Xcode_5.1.1">Xcode 5.1.1</h4>
<div class="warning">
<p><strong>重要</strong>: Homebrew をインストールし、Xcode 5.1.1 SDK に移行する前にツール類 (以下のセクションを参照してください) をインストールしてください。 - Homebrew は<em>おそらく</em> Xcode 5.1.1 SDK では失敗するでしょう!</p>
</div>
<p>AOSP、そして B2G OS は最新バージョンの Xcode SDK と互換性がありません。最新バージョンと並んで古いバージョンをインストールする必要があります。</p>
<ol>
<li>Xcode 5.1.1 を <a href="https://developer.apple.com/downloads/">developer.apple.com</a> からダウンロードし、/Applications/Xcode-5.1.1 へインストールします。</li>
<li>下記のコマンドを実施し、Xcode 5.1.1 SDK を使用するように変更します:</li>
</ol>
<pre><code>sudo xcode-select --switch "/Applications/Xcode-5.1.1/Xcode.app/Contents/Developer"</code></pre>
<h4 id="Java_SE_Development_Kit_7">Java SE Development Kit 7</h4>
<p>AOSP、そして B2G OS は Java JDK <strong>v8</strong> との互換性が無いため、Java JDK <strong>v7</strong> をインストールする必要があります。<a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html">http://www.oracle.com/</a> からダウンロードしてください。<br>
</p>
<h4 id="Bash_Profile">Bash Profile</h4>
<p>自身の <code>~/.bash_profile</code> ファイルに下記を追加してください:</p>
<pre><code>export PATH=~/bin:$PATH
export PATH=/usr/local/bin:$PATH
export BUILD_MAC_SDK_EXPERIMENTAL=1
export LC_CTYPE=C
export LANG=C
export USE_CCACHE=1</code></pre>
<h3 id="Homebrew">Homebrew</h3>
<p>Apple から提供されていない<em>多くの</em>コマンドラインツールをインストールする必要があります。Homebrew をインストールします:</p>
<pre><code id="selectable">ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"</code></pre>
<p>次のコマンドでツールをインストールします:</p>
<pre><code>brew install ccache coreutils cmake findutils git gnu-tar gnu-sed gpg lzop yasm</code></pre>
<p>autoconf の特定のバージョン 2.13 をインストールする必要があります:</p>
<pre><code>brew install homebrew/versions/autoconf213
</code></pre>
<h3 id="ccache_の設定_2">ccache の設定</h3>
<p>大量のコードをビルドしますが、そのうちの大半はビルド毎に変更がありません。コンパイルツールの ccache を使うことで、劇的にコンパイルを高速化できます。次のコマンドで 50GB キャッシュを与えます</p>
<pre><code>prebuilts/misc/darwin-x86/ccache/ccache -M 50G</code></pre>
<h3 id="OS_X_用の古い手順">OS X 用の古い手順</h3>
<h4 id="Mac_のブートストラップを_B2G_OS_で動かす">Mac のブートストラップを B2G OS で動かす</h4>
<p>次に、ターミナルを開いて次のコマンドを実行してください:</p>
<pre class="brush: bash"><code>curl -fsSL https://raw.github.com/mozilla-b2g/B2G/master/scripts/bootstrap-mac.sh | bash</code></pre>
<p>これは、ブートストラップスクリプトを pull および実行して、エミュレータをビルドするための必要条件を満たしているか確認するものです。また、不足しているものがあればインストールを促したり、警告を出して問題の解決案を提案します。このスクリプトがインストールを確認する項目は次の通りです:</p>
<p>B2G を開発するには特別なブランチを取得する必要があります。これは、Mercurial から読み込まれます <a href="http://mozilla-version-control-tools.readthedocs.io/en/latest/hgmozilla/installing.html">(詳細)</a>。 OS X にはデフォルトで Mercurial がインストールされていないため、このコードを実行してインストールする必要があります:</p>
<pre>$ brew install mercurial</pre>
<h4 id="Be_aware_of_Mac_file_system_case_sensitivity" name="Be_aware_of_Mac_file_system_case_sensitivity">Mac のファイルシステムの大文字小文字の区別を意識する</h4>
<p>Mac OS X はデフォルトで、大文字と小文字の区別をしないファイルシステムです。 Linux カーネルには、同一名で大文字小文字の異なるファイルが多数あるため、これが問題となります。例えば、ヘッダファイルの <code>xt_CONNMARK.h</code> と <code>xt_connmark.h</code> を見てください。その結果、<code>/kernel</code> の中で多数のファイルが <code>./config.sh</code> の後に修正されます。</p>
<p>多くの場合、ビルドはうまくいきます。いくつかのプラットフォームでは、しかしながら、次のエラーに出くわす可能性があります:</p>
<pre><code><span class="quote">ERROR: You have uncommited changes in kernel
You may force overwriting these changes
with |source build/envsetup.sh force|
ERROR: Patching of kernel/ failed.</span></code></pre>
<p>この問題についての多くの議論と解決の提案は、<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=867259" title="Bug 867259 - Build reliably fails on case-insensitive HFS+ on Mac OS">Bug 867259</a> を参照してください。</p>
<p>もう一つは、大文字と小文字を区別するファイルシステム上でビルドするのが、常に最も安全でしょう。その最も簡単な方法は、別のマウント可能な、大文字と小文字を区別するディスクイメージを作成することです。-volname の名前変更で大文字を使用しないように気をつけてください。これは、Apple のDisk Utility アプリケーションを使うか、コマンドラインから可能です:</p>
<pre><code>hdiutil create -volname 'firefoxos' -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 80g ~/firefoxos.sparseimage</code></pre>
<p>ドライブをマウントするには:</p>
<pre><code>open ~/firefoxos.sparseimage</code></pre>
<p>マウントされたドライブに移動するには:</p>
<pre><code>cd /Volumes/firefoxos/</code></pre>
<p>この場所にコードをチェックアウトしたら、大文字小文字の問題を心配することなくコンパイルできます。</p>
<h3 id="任意_HAX_のインストール">任意: HAX のインストール</h3>
<p>Intel は、x86 エミュレータを使用している人に対して、Mac 上でエミュレートされたコードの代わりにネイティブコードで B2G エミュレータを動作させる特別なドライバを提供しています。これを使用したい場合は、<a class="external" href="http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/" title="http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/">ダウンロードしてインストール</a>してください。必ず必要なものではありませんが、エミュレーションのパフォーマンスと安定性が向上します。</p>
<p>HAXのインストール前に <a href="http://developer.android.com/sdk/index.html" title="http://developer.android.com/sdk/index.html">Android SDK</a> をインストールする必要があるでしょう。</p>
<h2 id="adb_のインストール">adb のインストール</h2>
<p>ビルドプロセスでは、B2G をビルドする前にスマートフォンにインストールされた Android からバイナリ BLOB を抜いておく必要があります (もちろん、エミュレータをビルドする場合を除いて)。このためには、<code>adb</code> (Android Debug Bridge) が必要になります。<a href="/Firefox_OS/Debugging/Installing_ADB">ADBをインストールする</a> の記事で <code>adb</code> のインストール方法を説明しています。</p>
<div class="warning">
<p>adb を将来使う時の注意: adb は電話機を見るのに、画面ロックが解除されている必要があります (少なくとも B2G OS の最近のパージョンで)。たぶん画面ロックを無効にしたくなるでしょう (ビルド手順の後で説明します)。</p>
</div>
<h3 id="Samsung_Galaxy_S2_用の追加手順">Samsung Galaxy S2 用の追加手順</h3>
<p>もし Samsung Galaxy S2 用にビルドする予定なら、heimdall もインストールする必要があります。 詳細は、<a href="#Installing_heimdall">heimdall のインストール</a> を参照してください。ブートストラップスクリプトは<strong>実行してくれません</strong>!</p>
<p>加えて、下記の点も心に留めておかなければなりません:</p>
<ol>
<li>ようやく S2 端末に<a href="/Firefox_OS/Installing_on_a_mobile_device">独自ビルドをインストール</a>する時には、<code>flash.sh</code> を実行する前に、<code>factoryfs</code> を <code>FACTORYFS</code> に、<code>kernel</code> を <code>KERNEL</code> にすべて変更する必要があります (<code>pit</code> の出力を確認してください)。そうしないと動作しません。</li>
<li><a href="http://www.gokhanmoral.com/2013/02/17/siyahkernel-s2-v6-0beta5/">Siyah-s2</a> のリカバリー ROM の動作が最も良く、<a href="http://forum.xda-developers.com/wiki/ClockworkMod_Recovery">CWM</a> も同じく動きますが、いくつかの問題があります。</li>
<li><code>flash.sh</code> を用いて S2 に焼くと、ベース OS の動作は良いが、そのままでは Gaia に問題が出ることがあります。<code>make reset-gaia PRODUCTION=1</code> でリフレッシュすることで、そうした問題が片付くでしょう。</li>
</ol>
<div class="note"><strong>注意:</strong> もし多くの Samsung 製スマートフォンの内容管理に使用される <a class="external" href="http://www.samsung.com/us/kies/" title="http://www.samsung.com/us/kies/">Samsung Kies</a> ツールをインストール済みなら、 B2G OS を端末に書き込む前にそれを削除する必要があります。Windows では、標準のアプリケーション削除の処理を使用できます。Mac では Kies インストールディスクイメージに、システムから完全に Kies を削除するユーティリティがあります。 Kies がインストールされたままだと、フラッシュメモリへの書き込みが<strong>うまく動作しないでしょう</strong>。もし Kies を削除することを忘れても、ビルドシステムはそれを検知して、アンインストールするよう知らせてくれます。アンインストールツールが正しく <code>~/Library/Application Support/.FUS</code> フォルダを削除できず、ユーザスタートアップ項目リストの中にユーティリティへの参照が残るので注意してください。それらは手動で削除することになるでしょう。</div>
<h2 id="heimdall_のインストール">heimdall のインストール</h2>
<p>heimdall は、Samsung Galaxy S2 に書き込むためのユーティリティです。Boot to Gecko フラッシュユーティリティが、B2G OS がインストールされたスマートフォンの内容を置き換える場合や、端末に B2G と Gaia の更新バージョンの書き込む場合に使用されます。Galaxy S2 上に B2G OS をインストールしたい場合は必要ですが、その他の端末では<strong>不要です</strong>。他の端末向けには、代わりに fastboot ユーティリティをビルドして使用します。</p>
<div class="note"><strong>注記:</strong> 繰り返しですが、これは、<strong>Samsung Galaxy S2 に B2G OS をインストールする場合にのみ必要</strong>であることに注意してください。</div>
<p>heimdall をインストールするには 2 通りの方法があります:</p>
<ul>
<li>GitHub から<a class="link-https" href="https://github.com/Benjamin-Dobell/Heimdall" title="https://github.com/Benjamin-Dobell/Heimdall">コードをダウンロード</a>して、自分でビルドする。</li>
<li>パッケージマネージャを使用してインストールする。
<ul>
<li>Linux: <code>sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev</code></li>
<li>Mac: <a class="link-https" href="https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-suite-1.3.2-mac.dmg" title="https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-suite-1.3.2-mac.dmg">インストール用パッケージをダウンロード</a>して使用してください。</li>
</ul>
</li>
</ul>
<div class="note">
<p><strong>注記</strong>: 最新の Heimdall のソースからのビルドは、現在エラーが発生します。代わりに、Ubuntu 14.04 のリポジトリの 64bit パッケージ版を使うのが良いでしょう。つまり、できるだけ heimdall-flash:i386 の使用は避けてください。</p>
</div>
<h2 id="次のステップへ">次のステップへ</h2>
<p>この時点で、<a href="/docs/Mozilla/Boot_to_Gecko/Preparing_for_your_first_B2G_build">B2G OS のコードを取得する</a> 準備ができているはずです!</p>
|