Эта статья нуждается в редакционном обзоре. Как вы можете помочь.
Прежде чем вы сможете построить 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 для вашего устройства
После того как вы получите ядро системы 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 на устройство или подождать, пока кто-то это не сделает. Мы предпочли бы, что бы вы рам помогли!
Это было бы хорошее время для перерыва на кофе, так как в данный момент, вы будете делать свой первый код, необходимый для создания загрузки 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. : https://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.
Строительство против обычая 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/
Где источник полный путь (включая слэш) исходного дерева, и приемник, где вы хотите, чтобы положить ее (косая черта также важно!).
Если вы сделаете это, вы можете пропустить все остальной части этой статьи и перейти прямо к 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].