MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Прежде чем вы сможете построить B2G, необходимо клонировать репозиторий и настроить дерево сборки. Эта статья объясняет, как это сделать. 

В зависимости от вашего интернет-соединения, шаг настройки занимает несколько часов, чтобы скачать файлы, необходимые для построения FirefoxOS (с посредственной связи 150 Кбит, загрузка гигабайт хранилищ Android может занять десятки часов). Ожидание не так весело, как делать, так что после вы читали через эту страницу и стартовал конфигурационный скрипт, рассмотрите возможность использования времени в настройке и попробовать Firefox OS simulator, начать ознакомление с Documentation for app developers в том числе проектирование и строительство приложение, или ознакомиться с информацией о предстоящих шагов.

Вы можете заниматься посторонними делами, или к Вам пришел друг, чтобы пойти кофе с, в то время как работает конфиг B2G и шаги сборки. Они могут занятьнять немного времени (конфигурация в одиночку занимает около 45 минут, используя высокоскоростное подключение к Интернету, построить около 30 мин на Core i7 с 8 Гб оперативной памяти).

Если вы используете OS X, чтобы построить Firefox OS для Flame см Building Firefox OS for flame on OSX MDN-страницы.

Клон B2G хранилище

Первый шаг, прежде чем вы сможете начать свой первый билд, это клон репозитория B2G. Это не будет получать все! Вместо этого, он будет получать систему сборки B2G и утилиты настройки. Большая часть реального кода B2G находится в главном Mozilla Mercurial хранилище.

Чтобы клонировать репозиторий, используйте Git:

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

После клонирования (которое должено занять минуту с быстрым подключением), перейдите в каталог B2G:

cd B2G

Настройка B2G для вашего устройства

Важно: Помните, что только устройства под управлением Android 4.0.4 (Ice Cream Sandwich), 4,3 (Jelly Bean) и 4,4 (KitKat) и платформы на их базе поддерживаются (текущей ОС устройства Firefox). Пожалуйста, убедитесь, что ваш телефон на самом деле работает на одной из этих поддерживаемых версий, в противном случае этот шаг, скорее всего, приведет к сбою, так как некоторые вредители вытащили из не-Nexus устройства. Кроме того, если у вас есть, чтобы прошить устройство с соответствующей версией выпуска, имейте в виду, что некоторые узлы USB не работаем хорошо с мигающими инструментов, так что вы, возможно, придется подключить устройство к встроенным USB-портом.
Важно: если вы делаете сборку на Ubuntu 12.10 или Fedora, вам нужно будет указать GCC 4.6 как компилятор хоста по умолчанию после извлечения источники B2G, для процесса, чтобы работать (эти дистрибутивы используют GCC 4.7 или более поздней версии по умолчанию). Читать Changing the default host compiler  чтобы узнать, как это сделать.
Примечание: пожалуйста, прочитайте все нижеизложенные инструкции перед запуском любой из команд процесса сборки, чтобы убедиться, что вы делаете правильные для вас действия!

После того как вы получите ядро системы B2G сборки, необходимо настроить его для устройства, на котором вы планируете установить его. Чтобы получить список поддерживаемых устройств, вы можете использовать утилиту config.sh - выполните следующую команду из каталога, в B2G:

./config.sh

Это покажет список поддерживаемых устройств, например, так:

Usage: ./config.sh [-cdflnq] (device name)
Flags are passed through to |./repo sync|.

Valid devices to configure are:
- galaxy-s2
- galaxy-nexus
- nexus-4
- nexus-4-kk
- nexus-5
- nexus-5-l
- nexus-s
- nexus-s-4g
- flo (Nexus 7 2013)
- otoro
- unagi
- inari
- keon
- peak
- hamachi
- helix
- tarako
- dolphin
- dolphin-512
- pandaboard
- vixen
- flatfish
- flame
- flame-kk
- flame-l
- rpi (Revision B)
- emulator
- emulator-jb
- emulator-kk
- emulator-l
- emulator-x86
- emulator-x86-jb
- emulator-x86-kk
- emulator-x86-l
> Sony Xperia devices
- aries (Z3 Compact KK)
- aries-l (Z3 Compact L)
- leo-kk (Z3 KK)
- leo-l (Z3 L)
- scorpion-l (Z3 Tablet Compact L)
- sirius-l (Z2 L)
- tianchi-l (T2U L)
- flamingo-l (E3 L)

Если ваше устройство отсутствует в списке, вы должны остановиться прямо сейчас, и, либо помочь порту B2G создать OS на устройство или подождать, пока кто-то это не сделает. Мы предпочли бы, что бы вы рам помогли!

Примечание: Вы можете найти имя устройства для вашего телефона Firefox OS Phones  страница.
Примечание: Настройка и создание B2G для Keon на Mac не работает. Вы должны будете использовать Linux при создании для этого устройства.
Примечание: Если по какой-либо причине вы хотите построить против конкретной версии Gecko см Строительство против обычая Gecko, прежде чем продолжить. Если вы хотите построить ветку, кроме по умолчанию для вашего устройства (например, для создания конкретной версии B2G), см создание филиала. Примечание: филиал по умолчанию зависит от устройства и не обязательно ствол.

Это было бы хорошее время для перерыва на кофе, так как в данный момент, вы будете делать свой первый  код, необходимый для создания загрузки Gecko. Запускаем конфигурацию устройства, как показано ниже, это может занять много времени; Вы можете остановить его с помощью Ctrl-C и перезапустить его на более позднее время. Если вы думаете, какая-то часть процесса может быть прекращено без комплектующих, запустите './repo синхронизацию ", чтобы исправить все возможные проблемы.

Настройка B2G построить для мобильного устройства

На данный момент, подключите устройство, если оно еще не подключено; В процессе конфигурирования необходимо получить к нему доступ.

Если ваше устройство было найдено в результатах, показанных выше, вы можете начать процесс настройки с запуска config.sh, на этот раз с указанием имени вашего устройства. Например, чтобы построить для Samsung Google Nexus S, вы должны ввести:

./config.sh nexus-s

Примечание: Если вы получаете сообщение об ошибке, как:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 9: ordinal not in range(128)

Это может быть потому, что у вас есть акцент или другие недопустимые символы в указании пути к текущей директории, как '/home/username/Téléchargements/B2G/'. Перемещение репо B2G-то еще. Cf. : http://stackoverflow.com/questions/18049320/repo-init-unicodedecodeerror-on-ubuntu-13-04

На OSX, подобная ошибка может произойти следующим образом:

File "/Path/to/B2G/.repo/repo/git_refs.py", line 155, in _ReadLoose1
    ref_id = ref_id.decode()
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 578: ordinal not in range(128)

Одна из возможностей Обойти это, выровнять 155 git_refs.py, расположенного по адресу '/Path/to/B2G/.repo/repo' и измененить

ref_id=ref_id.decode() to ref_id=ref_id.decode('latin-1')

Примечание: Если вы получаете сообщение об ошибке, подобное fatal: manifest 'nexus-s.xml', есть вероятность, что вы просто должны указать ветвь которую вы хотите использовать. Увидеть Building a branch Для получения дополнительной информации.
Примечание: Если шаг конфигурации завершается с сообщением об ошибке, как error: manifest required for this command -- запустите Init, то изменения в том, что файл манифеста для репо (расположен в B2G/.repo/manifest.xml)  не была успешно создан. Вы должны попробовать ход config.sh again. Если вы делаете это для нового устройства можно добавить его в config.sh а затем передать его в местное файл манифеста, как так:
./config.sh <device> -m path/to/manifest.

Рядом с начала конфигурации, вам может понадобиться установить вашу личность (та, что используется Git), а также возможность для использования цвета. После этого продолжается процесс. Для выбора цвета, вы можете просто выбрать "Y" здесь, как вы, вероятно, хотите цвет, сборку.

Примечание: это возможно для config.sh приводит к неудаче с Git ошибки, связанные с кокетливыми, таких как следующие :

Fetching projects:  95% (118/124)
error: Exited sync due to fetch errors

Это, кажется, быть вызвано ошибкой подключения на Android исходного репозитория репо. В этом случае, вам нужно будет перезапустить config.sh. Через некоторое время, он автоматически возобновит где она была прервана. Возможно, вам придется сделать, чтобы это несколько раз, пока, наконец, не получает всех проектов.

Настройка сборки с помощью резервной копии системы

Если Ваш телефон уже не имеет Android на нем, и ваш B2G дерево не двоичные капли в нем, но вы мудро made a backup of the /system partition, Вы можете выполнить сборку на системы резервного копирования, как это:

ANDROIDFS_DIR=<absolute path to parent dir of system dir> ./config.sh <target>

Система сборки по умолчанию будет смотреть в где-нибудь как резервного копирования Инари / системы (в зависимости от конфигурации устройства); если вы поместите файлы в ожидаемом месте вам не нужно будет указать каталог.

Обратите внимание, что если ваш телефон всегда был Firefox OS на нее, чтобы начать, и не бежал Android, это все-таки хорошо, чтобы вытащить / системный раздел по указанному выше направлениях - это даст вам нужные файлы.

 

Настройка B2G построить для эмулятораIf вы хотите построить эмулятор, а не на реальном телефоне, вы можете указать эмулятор *, чтобы получить эмулятор устройства ARM, или эмулятор-x86 * построить эмулятор x86. Последнее происходит быстрее, но не точным представлением фактического мобильном устройстве и не так хорошо поддерживается; использовать его не рекомендуется.

 

Таким образом, чтобы построить ARM Jellybean эмулятор, например, можно использовать следующую команду:

./config.sh emulator-jb

Рядом с начала конфигурации вам может понадобиться установить опцию для цветной печати, то после этого продолжает процесс. Вы можете просто выбрать "Y" здесь, как вы, вероятно, хотите цвет, сборку.

К этому моменту вы должны быть готовы к start the build, если вы не нуждаетесь ни в более продвинутой информации, указанного ниже.

Помните, что здание для эмулятора может не на 64-битной Linux.

Примечание: Разработчики на Mac OS X 10.9 или выше, чтобы перейти к эмулятора-JB или эмуляторе-KK, а не, потому что основаны AOSP ICS эмулятор не может быть построен на Mac OS X 10.9. Увидеть Requirements for Mac OS X для получения дополнительной информации.

Строительство против обычая Gecko

Там могут быть случаи, что вы хотите или должны создавать загрузочные для Gecko на основе другой версии Gecko, чем тот, который используется по умолчанию (как указано в манифесте). Вы можете сделать это, отредактировав файл .userconfig. Например, если вы хотите построить на Mozilla Центрально-:

export GECKO_PATH=/path/to/mozilla-central
export GECKO_OBJDIR=/path/to/mozilla-central/objdir-gonk

Примечание: в случае построения против обычая Gecko в Mac OS X, каталог Mozilla центральной должен быть в случае чувствительной файловой системы.
 

Обратите внимание, что вы можете сделать это либо перед тянуть хранилище (т.е. до config.sh шаг выше) или в любой последующий момент. Вы также можете сохранить несколько вариантов сборки (с отладкой или нет, и т.д.), имея несколько файлов UserConfig (с разными настройками - каждый нуждается в другом OBJDIR, конечно), и делает .userconfig символическую ссылку, указывающую на какой конфигурации вы хотите построить сейчас.

Для получения более подробной информации ознакомьтесь с Changing the Gecko source tree.

Построение филиал

Если вы хотите построить для филиала, кроме ветви по умолчанию (обратите внимание: филиал по умолчанию не может быть "мастером"!), Вам нужно будет префикс ваш звонок config.sh с именем ветви, например, так:

BRANCH=branch-name ./config.sh <device>

Имена отраслевые довольно логичны, и в значительной степени следовать имена товары / версиях, так что v1-train, v1.0.0, v1.0.1, v1.1, v1.1.0hd, v1.2, v1.3, v1.4, v2.0  и так далее в будущем. В качестве примера, чтобы построить B2G Firefox 1.2, для себя эмулятор ARM, нужно ввести

BRANCH=v1.2 ./config.sh emulator

Если вы столкнулись config.sh уже можно увидеть имена филиалов, перейдя B2G/.repo/manifests  и делать "git branch -a" (Это не заполняется Унти тогда.) Название ветвь приведены в качестве конечного маркера на линии, e.g. "v1-train" or "master":

  remotes/origin/master
  remotes/origin/v1-train
  remotes/origin/v1.0.0
  remotes/origin/v1.0.1

Увидеть Customization with the .userconfig file  для дополнительных настроек вы можете сделать.

Копирование B2G дерево на новую машину

Если вы ранее создали B2G дерево, а затем получил новый компьютер (вам повезло!), Вы найдете вашу жизнь будет намного легче, если вы просто перенести всю вашу B2G дерево со старого компьютера на новый, а чем установка все это снова. Чтобы сделать это, установите диск вашего старого компьютера на новый компьютер, то сделать это:

rsync -a source/ dest/

Где источник полный путь (включая слэш) исходного дерева, и приемник, где вы хотите, чтобы положить ее (косая черта также важно!).

Примечание: При копировании файлов с компьютера другую платформу обеспечения для запуска './build.sh clean ", прежде чем начать процесс сборки. Если вы этого не сделаете это, вы можете столкнуться с проблемами компиляции.

Если вы сделаете это, вы можете пропустить все остальной части этой статьи и перейти прямо к building.

Обновление B2G дерево

Когда хранилище обновляется до новой версии B2G, вы хотите, чтобы обновить B2G дерево. Чтобы сделать это, вы можете выполнить следующие команды:

git fetch origin
git checkout origin/master

Вы можете проверить, что это работает правильно, запустив:

git show HEAD

и убедившись, что фиксация показано соответствует последний коммит показано на: https://github.com/mozilla-b2g/B2G/commits/master

Переходим к следующему шагу

На данный момент, вы должны быть готовы к Building Firefox OS [en-US].

Метки документа и участники

 Внесли вклад в эту страницу: chrisdavidmills, bobcanthelpyou, takto
 Обновлялась последний раз: chrisdavidmills,