Prerrequisitos para compilar Firefox OS

  • Enlace amigable (slug) de la revisión: Mozilla/Boot_to_Gecko/Firefox_OS_build_prerequisites
  • Título de la revisión: Prerrequisitos para construir Firefox OS
  • Id de la revisión: 344671
  • Creada:
  • Creador: belen
  • ¿Es la revisión actual? No
  • Comentario

Contenido de la revisión

Puedes construir Firefox OS, pero antes has de obtener el código fuente. Necesitarás un sistema de construcción apropiadamente configurado. Puedes contruirlo actualmente en una distribución Linux de 64 bits.

Necesitas un teléfono móvil compatible o un emulador

Esto es importante. Aunque hay varios teléfonos compatibles, algunos de ellos tienen variantes y es posible que sólo algunas de esas variantes sean compatibles. Además, algunos teléfonos son más compatibles que otros. Ahora mismo, puedes utilizar Firefox OS / B2G en los siguientes teléfonos y aparatos:

Categoría 1

Aparatos de Categoría 1 son aquellos que recomendamos para tareas de desarrollo, porque son los que primero reciben nueva funcionalidad y soluciones a problemas y errores. Los aparatos de Categoría 1 son:

Unagi
Unagi es un teléfono que usamos como plataforma de prueba y desarrollo para smartphones simples o de mediana capacidad. Muchos de los desarrolladores del equipo de Firefox OS utilizan Unagi.
Otoro
Otoro es un teléfono que usamos como plataforma de prueba y desarrollo para smartphones simples o de mediana capacidad. Muchos de los desarrolladores del equipo de Firefox OS utilizan Otoro.
Pandaboard
Pandaboard es una mini placa base que se usa en el desarrollo de plataformas móviles.  La placa está basada en la arquitectura OMAP 4.
Emulator (ARM and x86)
Hay dos emuladores: uno emula código ARM y el otro ejecuta en código x86.
Ordenador
También puedes construir una versión de Firefox OS para ordenador que ejecuta Gecko en una aplicación XULRunner y utiliza la experiencia de usuario que proporciona Gaia

La versión para ordenador y los emuladores no requieren teléfono.

Categoría 2

Los teléfonos de Categoría 2 en general funcionan, y muchos desarrolladores, especialmente desarrolladores de aplicaciones, los utilizan; pero tienden a recibir cambios y novedades más tarde.

Samsung Nexus S
Los modelos de Nexus S que sabemos funcionan son el GT-I9020A y el GT-I9023. Es posible que otros modelos también funcionen.
Samsung Nexus S 4G
El modelo SPH-D720 es compatible como Categoría 2.

Categoría 3

Se puede construir Firefox OS para estos teléfonos, pero los desarrolladores del equipo de Firefox OS no trabajan en ellos regularmente, así que su funcionamiento y funcionalidad puede que sean significativamente peores que los de Categorías 1 y 2.

Samsung Galaxy S2
El único modelo que funciona es el i9100. Ninguna de las otras variantes es oficialmente compatible. (Es posible que el i9100P también funcione, ya que la única diferencia es la adición del chip NFC).
Samsung Galaxy Nexus
En estos momentos no sabemos de ninguna variante que no sea compatible.
Importante: Sólo son compatibles los teléfonos que utilizan como mínimo Android 4 (alias Ice Cream Sandwich). Si tu teléfono se menciona en esta página pero usa una versión de Android más antigua, actualízalo primero.

 

Requisitos para Linux

Para construir en Linux, necesitas:

  • Una instalación de GNU/Linux 64 bits (como distribución recomendamos Ubuntu 12.04).
  • Un mínimo de 4 GB de ram / espacio en la partición de intercambio.
  • Un mínimo de 20 GB de espacio libre en disco duro.

Estos requisitos son más que el mínimo indispensable, pero los recomendamos porque si la construcción puede fallar debido a falta de recursos.

Puedes utilizar otras distribuciones, pero recomendamos Ubuntu 12.04 porque es el sistema que más gente utiliza sin dar problemas. Distribuciones que quizá no funcionen: distribuciones de 32 bits y distribuciones recientes ( Ubuntu 12.10, Fedora 17/18, Arch Linux debido a gcc 4.7).

También necesitas instalar las siguiente utilidades:

  • autoconf 2.13
  • bison
  • bzip2
  • ccache
  • curl
  • flex
  • gawk
  • git
  • gcc / g++ / g++-multilib (4.6.3 or older)
  • make
  • OpenGL headers
  • X11 headers
  • 32-bit ncurses
  • 32-bit zlib

 

Ejemplos de instalación de 64 bits:

Ubuntu 12.04 / Linux Mint 13 / Debian 6

$ sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libgl1-mesa-dev libx11-dev make

Cuando construyas en Ubuntu 64 bits, es posible que necesites crear enlaces simbólicos (symlinks) a las versiones de 32 bits de libX11.so y libGL.so:

$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

Ubuntu 12.10

$ sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc-4.6 g++-4.6 g++-4.6-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libgl1-mesa-dev libx11-dev make

Además del paso ya explicado para solucionar el problema con las versiones 32 bits de libX11.so y libGL.so, también necesitas especificar GCC 4.6 como el compilador del host por defecto antes de empezar a construir. Una vez que te hayas descargado el código, lee nuestras instrucciones al respecto.

Fedora 16:

$ 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

Arch Linux (distribución aún incompatible):

$ sudo pacman -S --needed alsa-lib autoconf2.13 bison ccache curl firefox flex gcc-multilib git gperf libnotify libxt libx11 mesa multilib-devel wireless_tools yasm lib32-mesa lib32-ncurses lib32-readline lib32-zlib

Por defecto, Arch Linux utiliza Python3. Necesitas forzar el uso del antiguo python2:

$ cd /usr/bin

$ sudo ln -fs python2 python

 

Requisitos para Mac OS X

Para construir Firefox OS con Mac OS X, necesitas instalar Xcode, que está disponible en el Mac App Store.

Instalar las Utilidades de Línea de Comandos (XCode 4.3.1 y versiones más recientes)

Xcode 4.3.1 (OS X 10.7 "Lion") y versiones más recientes como 4.4.1+ (Mac OS X10.8 "Mountain Lion") no incluyen necesariamente las Utilidades de Línea de Comandos. Cuando instales Xcode, abre las Preferencias, luego el Panel de Descargas, e instala las Utilidades de Línea de Comandos. Además, asegúrate de que tienes como mínimo 20 GB de espacio libre en el disco duro.

Atención: El emulador de Firefox OS necesita un procesador Core 2 Duo o más reciente, es decir, un sistema compatible con Mac OS X 10.7 "Lion". No tienes por qué utilizar Lion, pero tu sistema debe ser compatible con Lion. Esto es sólo para el emulador: puedes construir Firefox OS en Macs más antiguos.

Cómo iniciar Firefox OS en Mac

Abre un terminal y ejecuta el comando siguiente:

curl -fsSL https://raw.github.com/mozilla-b2g/B2G/master/scripts/bootstrap-mac.sh | bash

Este comando obtiene y ejecuta un programa de inicio que se asegura de que tienes todo lo necesario para construir el emulador. También solicitará permiso para instalar cualquier cosa que falte. El programa buscará e instalará lo siguiente:

  • git
  • gpg
  • ccache
  • yasm
  • autoconf-213
  • gcc-4.6
  • homebrew

Xcode

Si ya has actualizado Xcode a la versión 4.4+ pero recibes un mensaje diciendo que Xcode necesita actualización, revisa la ruta de Xcode con este comando:

xcode-select -print-path
Si la ruta todavía apunta a /Developer puedes actualizarla haciendo:
sudo xcode-select -switch /Applications/Xcode.app
Asegúrate también de que el SDK de Mac OS X 10.6 existe en:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/

Si no existe, tendrás que extraerlo y copiarlo del archivo DMG de Xcode 4.3, que está disponible en el Portal para desarroladores de Apple. Puedes usar una utilidad que se llama Pacifist para extraer el SDK 10.6. Asegúrate de crear un enlace simbólico (symlink) entre el SDK y el directorio /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/

Mountain Lion

Si construyendo en OS X 10.8 "Mountain Lion" (Xcode 4.4.1 o más reciente) te encuentras un error como éste:

external/qemu/android/skin/trackball.c:130:25: error: 'M_PI' undeclared (first use in this function)
Edita el archivo: B2G/external/qemu/makefile.android y añade en la línea 78:
MY_CFLAGS += -DM_PI=3.14159265358979323846264338327950288   #/* B2G_fix: not finding M_PI constant */
Si usando Mountain Lion, y durante la instalación de las dependencias vía homebrew, te encuentras un error como éste:
clang: error: unable to execute command: Segmentation fault: 11

... prueba a reinstalar las dependencias manualmente añadiendo la opción --use-gcc como se muestra en el ejemplo:

brew install mpfr --use-gcc

Samsung Galaxy S2

Si tu intención es construir para el Samsung Galaxy S2, también necesitarás instalar heimdall. Para más información, visita {{ anch("Instalación de heimdall") }}. El programa de inicio no ejecuta este paso!

Atención: Si has instalado la utilidad Samsung Kies, que se utiliza para administrar los contenidos de muchos teléfonos Samsung, tienes que eliminarla antes de instalar Firefox OS en el teléfono. En Windows, puedes utilizar el procedimiento estándar para remover aplicaciones; en Mac, la imagen de Kies incluye una utilidad para desinstalar Kies completamente. La instalación de Firefox OS fallará si tienes Kies instalado. Si se te olvida eliminar Kies, el sistema de construcción lo detectará y te recordará que debes desinstalarlo. Ten en cuenta que la utilidad de desinstalación no elimina correctamente el directorio ~/Library/Application Support/.FUS, y deja una referencia a cierta utilidad en ese directorio en la lista de programas a ejecutar en inicio. Necesitas eleminar el directorio y la refencia manualmente.
Atención: Mac OS X utiliza un sistema de archivos que ignora las mayúsculas, lo que no te permitirá construir Firefox OS en el futuro (NOTA DEL EDITOR: yo nunca he tenido problemas con esto).  Te recomendamos que generes una imagen de disco "sparse" sensible a las mayúsculas y que trabajes desde ese directorio. Para construir una imagen de disco "sparse" sensible a las mayúsculas ejecuta:
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/firefoxos.dmg

Monta la imagen ejecutando:

open ~/firefoxos.dmg

Navega al directorio de la imagen montada con:

cd /Volumes/untitled/

Fix libmpc dependency if broken

gcc 4.6 was built with libmpc 0.9; if you then use homebrew to update packages, libmpc gets updated to version 1.0, but homebrew doesn't rebuild gcc 4.6 after the library version changes. So you need to create a symlink to make things work again, like this:

cd /usr/local/lib/
ln -s libmpc.3.dylib libmpc.2.dylib

Optional: Install HAX

Intel provides a special driver that lets the B2G emulator run its code natively on your Mac instead of being emulated, when you're using the x86 emulator. If you wish to use this, you can download and install it. It's not required, but it can improve emulation performance and stability.

Install adb

The build process needs to pull binary blobs from the Android installation on the phone before building B2G (unless you're building the emulator, of course).  For this, you will need adb, the Android Debug Bridge.

To get this, you'll need to install the Android SDK starter package for your platform. Then run their package manager, $SDK_HOME/tools/android, and use the GUI to install "Android SDK Platform-tools".

adb will be installed to $SDK_HOME/platform_tools. Be sure to add this directory to your PATH. This can be done by adding the line

PATH=$SDK_HOME/platform_tools:$PATH

replacing $SDK_HOME with the location of the andoird sdk, to your ~/.bashrc or equivalent.  Also, you may wish to run:

adb pull /system <backup target dir>/system

to back up the entire Android system partition on your phone. This will give you a copy of all the binary blobs for Android in case you later delete your B2G tree. Depending on the phone, you may also need to pull the /data and/or /vendor directories:

adb pull /data <backup target dir>/data
adb pull /vendor <backup target dir>/vendor

Install heimdall

Heimdall is a utility for flashing the Samsung Galaxy S2. It's used by the Boot to Gecko flash utility to replace the contents of the phone with Firefox OS, as well as to flash updated versions of B2G and Gaia onto the device. You'll need it if you want to install Firefox OS on a Galaxy S2; it is not needed for any other device. For other devices, we build and use the fastboot utility instead.

Note: Again, it's important to note that this is only required for installing Firefox OS on the Samsung Galaxy S2.

There are two ways to install heimdall:

Configure ccache

The default cache size for ccache is 1GB; the B2G build easily saturates this. You can configure your cache size as follows:

$ ccache --max-size 2GB

Configure the udev rule for your phone

You can get the USB vendor ID by running lsusb now, but typically it's Google's 18d1 or Samsung's 04e8, so adding this line in your /etc/udev/rules.d/51-android.rules would work:

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"

Once you've saved the file, and closed it,  make the file readable:

$ sudo chmod a+r /etc/udev/rules.d/51-android.rules

Configure Phone

Before you plug your phone into your USB port, put it USB developer mode. This lets us access the phone for debugging and flashing. To do this, go to the Settings application and navigate to Applications > Development, and turn on the "USB debugging" checkbox.

On to the next step

At this point, you should be ready to fetch the Firefox OS code!

Fuente de la revisión

<p>Puedes construir Firefox OS, pero antes has de obtener el código fuente. Necesitarás un sistema de construcción apropiadamente configurado. Puedes contruirlo actualmente en una distribución Linux de 64 bits.</p>
<h2 id="Have_a_compatible_phone_or_use_emulators">Necesitas un teléfono móvil compatible o un emulador</h2>
<p>Esto es importante. Aunque hay varios teléfonos compatibles, algunos de ellos tienen variantes y es posible que sólo algunas de esas variantes sean compatibles. Además, algunos teléfonos son más compatibles que otros. Ahora mismo, puedes utilizar Firefox OS / B2G en los siguientes teléfonos y aparatos:</p>
<h3 id="Tier_1">Categoría 1</h3>
<p>Aparatos de Categoría 1 son aquellos que recomendamos para tareas de desarrollo, porque son los que primero reciben nueva funcionalidad y soluciones a problemas y errores. Los aparatos de Categoría 1 son:</p>
<dl>
  <dt>
    Unagi</dt>
  <dd>
    Unagi es un teléfono que usamos como plataforma de prueba y desarrollo para smartphones simples o de mediana capacidad. Muchos de los desarrolladores del equipo de Firefox OS utilizan Unagi.</dd>
  <dt>
    Otoro</dt>
  <dd>
    Otoro es un teléfono que usamos como plataforma de prueba y desarrollo para smartphones simples o de mediana capacidad. Muchos de los desarrolladores del equipo de Firefox OS utilizan Otoro.</dd>
  <dt>
    <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Pandaboard" title="/en-US/docs/Mozilla/Boot_to_Gecko/Pandaboard">Pandaboard</a></dt>
  <dd>
    Pandaboard es una mini placa base que se usa en el desarrollo de plataformas móviles.&nbsp; La placa está basada en la arquitectura OMAP 4.</dd>
  <dt>
    <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_emulators" title="/en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_emulators">Emulator (ARM and x86)</a></dt>
  <dd>
    Hay dos emuladores: uno emula código ARM y el otro ejecuta en código x86.</dd>
  <dt>
    <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client" title="/en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client">Ordenador</a></dt>
  <dd>
    También puedes construir una versión de Firefox OS para ordenador que ejecuta <a href="/en-US/docs/Gecko" title="/en-US/docs/Gecko">Gecko</a> en una aplicación <a href="/en-US/docs/XULRunner" title="/en-US/docs/XULRunner">XULRunner</a> y utiliza la experiencia de usuario que proporciona <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Introduction_to_Gaia" title="/en-US/docs/Mozilla/Boot_to_Gecko/Introduction_to_Gaia">Gaia</a></dd>
</dl>
<p><a href="/en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client" title="en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client">La versión para ordenador</a> y los <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_emulators" title="en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_emulators">emuladores</a> no requieren teléfono.</p>
<h3 id="Tier_2">Categoría 2</h3>
<p>Los teléfonos de Categoría 2 en general funcionan, y muchos desarrolladores, especialmente desarrolladores de aplicaciones, los utilizan; pero tienden a recibir cambios y novedades más tarde.</p>
<dl>
  <dt>
    <a class="link-https" href="https://en.wikipedia.org/wiki/Nexus_S#Variants" title="https://en.wikipedia.org/wiki/Nexus_S#Variants">Samsung Nexus S</a></dt>
  <dd>
    Los modelos de Nexus S que sabemos funcionan son el GT-I9020A y el GT-I9023. Es posible que otros modelos también funcionen.</dd>
  <dt>
    Samsung Nexus S 4G</dt>
  <dd>
    El modelo SPH-D720 es compatible como Categoría 2.</dd>
</dl>
<h3 id="Tier_3">Categoría 3</h3>
<p>Se puede construir Firefox OS para estos teléfonos, pero los desarrolladores del equipo de Firefox OS no trabajan en ellos regularmente, así que su funcionamiento y funcionalidad puede que sean significativamente peores que los de Categorías 1 y 2.</p>
<dl>
  <dt>
    Samsung Galaxy S2</dt>
  <dd>
    El único modelo que funciona es el i9100. Ninguna de las otras variantes es oficialmente compatible. (Es posible que el i9100P también funcione, ya que la única diferencia es la adición del chip NFC).</dd>
  <dt>
    Samsung Galaxy Nexus</dt>
  <dd>
    En estos momentos no sabemos de ninguna variante que no sea compatible.</dd>
</dl>
<div class="warning">
  <strong>Importante</strong>: Sólo son compatibles los teléfonos que utilizan como mínimo <strong>Android 4</strong> (alias <strong>Ice Cream Sandwich</strong>). Si tu teléfono se menciona en esta página pero usa una versión de Android más antigua, actualízalo primero.</div>
<p class="warning">&nbsp;</p>
<h2 id="Requirements_for_Linux">Requisitos para Linux</h2>
<p>Para construir en Linux, necesitas:</p>
<ul>
  <li>Una instalación de <strong>GNU/Linux </strong><strong>64 bits </strong> (como distribución recomendamos Ubuntu 12.04).</li>
  <li>Un mínimo de <strong>4 GB</strong> de ram / espacio en la partición de intercambio.</li>
  <li>Un mínimo de <strong>20 GB</strong> de espacio libre en disco duro.</li>
</ul>
<p>Estos requisitos son más que el mínimo indispensable, pero los recomendamos porque si la construcción puede fallar debido a falta de recursos.</p>
<p>Puedes utilizar otras distribuciones, pero recomendamos Ubuntu 12.04 porque es el sistema que más gente utiliza sin dar problemas. Distribuciones que quizá no funcionen: <strong>distribuciones de 32 bits</strong> y distribuciones recientes ( <strong>Ubuntu 12.10, Fedora 17/18, Arch Linux</strong> debido a <strong>gcc 4.7</strong>).</p>
<p>También necesitas instalar las siguiente utilidades:</p>
<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 / g++ / g++-multilib</strong> <strong>(4.6.3 or older)</strong></li>
  <li><strong>make</strong></li>
  <li><strong>OpenGL headers</strong></li>
  <li><strong>X11 headers</strong></li>
  <li><strong>32-bit ncurses</strong></li>
  <li><strong>32-bit zlib</strong></li>
</ul>
<p>&nbsp;</p>
<h3 id="64_bits_install_examples.3A"><strong>Ejemplos de instalación de 64 bits:</strong></h3>
<p><strong>Ubuntu 12.04 / Linux Mint 13 / Debian 6</strong></p>
<pre>
$ sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libgl1-mesa-dev libx11-dev make</pre>
<p class="note">Cuando construyas en Ubuntu 64 bits, es posible que necesites crear enlaces simbólicos (symlinks) a las versiones de 32 bits de <code>libX11.so</code> y <code>libGL.so</code>:</p>
<pre class="note">
$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so</pre>
<p><strong>Ubuntu 12.10</strong></p>
<pre>
$ sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc-4.6 g++-4.6 g++-4.6-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libgl1-mesa-dev libx11-dev make</pre>
<p class="note">Además del paso ya explicado para solucionar el problema con las versiones 32 bits de <code>libX11.so</code> y <code>libGL.so</code>, también necesitas especificar GCC 4.6 como el compilador del host por defecto antes de empezar a construir. Una vez que te hayas descargado el código, <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Boot_to_Gecko/Customization_with_the_.userconfig_file#Changing_the_default_host_compiler" title="en-US/docs/Mozilla/Boot_to_Gecko/Customization_with_the_.userconfig_file#Changing_the_default_host_compiler">lee nuestras instrucciones</a> al respecto.</p>
<p><strong>Fedora 16:</strong></p>
<pre class="note">
$ 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</pre>
<p><strong>Arch Linux (distribución aún incompatible):</strong></p>
<pre class="note">
$ sudo <span style=""><span style="">pacman -S --needed </span></span><span style=""><span style="">alsa-lib </span></span><span style=""><span style="">autoconf2.13</span></span><span style=""><span style=""> bison</span></span><span style=""><span style=""> ccache</span></span><span style=""><span style=""> </span></span><span style=""><span style="">curl firefox </span></span><span style=""><span style="">flex </span></span><span style=""><span style="">gcc-multilib </span></span><span style=""><span style="">git </span></span><span style=""><span style="">gperf </span></span><span style=""><span style="">libnotify </span></span><span style=""><span style="">libxt </span></span><span style=""><span style="">libx11 mesa multilib-devel </span></span><span style=""><span style="">wireless_tools </span></span><span style=""><span style="">yasm</span></span><span style=""><span style=""> </span></span><span style=""><span style="">lib32-mesa </span></span><span style=""><span style="">lib32-ncurses lib32-readline</span></span><span style=""><span style=""> </span></span><span style=""><span style="">lib32-zlib</span></span></pre>
<p>Por defecto, Arch Linux utiliza Python3. Necesitas forzar el uso del antiguo python2:</p>
<pre>
<span style=""><span style="">$ cd /usr/bin</span></span>

<span style=""><span style="">$ sudo ln -fs python2 python</span></span></pre>
<p>&nbsp;</p>
<h2 id="Requirements_for_Mac_OS_X">Requisitos para Mac OS X</h2>
<p>Para construir Firefox OS con Mac OS X, necesitas <a class="external" href="http://itunes.apple.com/us/app/xcode/id497799835?mt=12" title="http://itunes.apple.com/us/app/xcode/id497799835?mt=12">instalar Xcode</a>, que está disponible en el Mac App Store.</p>
<p><strong>Instalar las Utilidades de Línea de Comandos (XCode 4.3.1 y versiones más recientes)</strong></p>
<p>Xcode 4.3.1 (OS X 10.7 "Lion") y versiones más recientes como 4.4.1+ (Mac OS X10.8 "Mountain Lion") no incluyen necesariamente las Utilidades de Línea de Comandos. Cuando instales Xcode, abre las Preferencias, luego el Panel de Descargas, e instala las Utilidades de Línea de Comandos. Además, asegúrate de que tienes como mínimo 20 GB de espacio libre en el disco duro.</p>
<div class="note">
  <strong>Atención:</strong> El emulador de Firefox OS necesita un procesador Core 2 Duo o más reciente, es decir, un sistema compatible con Mac OS X 10.7 "Lion". No tienes por qué utilizar Lion, pero tu sistema debe ser compatible con Lion. Esto es sólo para el emulador: puedes construir Firefox OS en Macs más antiguos.</div>
<p><font face="Georgia, Times, Times New Roman, serif"><span style="font-size: 20px; line-height: 31px;"><b>Cómo iniciar Firefox OS en Mac</b></span></font></p>
<p>Abre un terminal y ejecuta el comando siguiente:</p>
<pre class="brush: bash">
curl -fsSL https://raw.github.com/mozilla-b2g/B2G/master/scripts/bootstrap-mac.sh | bash</pre>
<p>Este comando obtiene y ejecuta un programa de inicio que se asegura de que tienes todo lo necesario para construir el emulador. También solicitará permiso para instalar cualquier cosa que falte. El programa buscará e instalará lo siguiente:</p>
<ul>
  <li><code>git</code></li>
  <li><code>gpg</code></li>
  <li><code>ccache</code></li>
  <li><code>yasm</code></li>
  <li><code>autoconf-213</code></li>
  <li><code>gcc-4.6</code></li>
  <li><code>homebrew</code></li>
</ul>
<div>
  <p>Xcode</p>
  <p>Si ya has actualizado Xcode a la versión 4.4+ pero recibes un mensaje diciendo que Xcode necesita actualización, revisa la ruta de Xcode con este comando:</p>
  <pre>
xcode-select -print-path</pre>
  Si la ruta todavía apunta a <code>/Developer</code> puedes actualizarla haciendo:
  <pre>
sudo xcode-select -switch /Applications/Xcode.app</pre>
  Asegúrate también de que el SDK de Mac OS X 10.6 existe en:
  <pre>
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/</pre>
  <p>Si no existe, tendrás que extraerlo y copiarlo del archivo DMG de Xcode 4.3, que está disponible en el <a class="external" href="https://developer.apple.com/downloads/index.action">Portal para desarroladores de Apple</a>. Puedes usar una utilidad que se llama Pacifist para extraer el SDK 10.6. Asegúrate de crear un enlace simbólico (symlink) entre el SDK y el directorio <code>/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/</code></p>
  <h3 id="Mountain_Lion">Mountain Lion</h3>
  <div>
    <p>Si construyendo en OS X 10.8 "Mountain Lion" (Xcode 4.4.1 o más reciente) te encuentras un error como éste:</p>
    <pre style="font-size: 14px; ">
external/qemu/android/skin/trackball.c:130:25: error: 'M_PI' undeclared (first use in this function)</pre>
    Edita el archivo:&nbsp;<code style="font-size: 14px; ">B2G/external/qemu/makefile.android</code> y añade en la línea 78:<br />
    <pre style="font-size: 14px; ">
MY_CFLAGS += -DM_PI=3.14159265358979323846264338327950288&nbsp;&nbsp; #/* B2G_fix: not finding M_PI constant */
</pre>
    <div>
      Si usando Mountain Lion, y durante la instalación de las dependencias vía homebrew, te encuentras un error como éste:</div>
  </div>
</div>
<div>
  <pre>
clang: error: unable to execute command: Segmentation fault: 11</pre>
  <p>... prueba a reinstalar las dependencias manualmente añadiendo la opción --use-gcc como se muestra en el ejemplo:</p>
  <pre>
brew install mpfr --use-gcc</pre>
</div>
<h3 id="Samsung_Galaxy_S2">Samsung Galaxy S2</h3>
<p>Si tu intención es construir para el Samsung Galaxy S2, también necesitarás instalar heimdall. Para más información, visita {{ anch("Instalación de heimdall") }}. El programa de inicio <strong>no</strong> ejecuta este paso!</p>
<div class="note">
  <strong>Atención:</strong> Si has instalado la utilidad <a class="external" href="http://www.samsung.com/us/kies/" title="http://www.samsung.com/us/kies/">Samsung Kies</a>, que se utiliza para administrar los contenidos de muchos teléfonos Samsung, tienes que eliminarla antes de instalar Firefox OS en el teléfono. En Windows, puedes utilizar el procedimiento estándar para remover aplicaciones; en Mac, la imagen de Kies incluye una utilidad para desinstalar Kies completamente. La instalación de Firefox OS <strong>fallará</strong> si tienes Kies instalado. Si se te olvida eliminar Kies, el sistema de construcción lo detectará y te recordará que debes desinstalarlo. Ten en cuenta que la utilidad de desinstalación no elimina correctamente el directorio <code>~/Library/Application Support/.FUS</code>, y deja una referencia a cierta utilidad en ese directorio en la lista de programas a ejecutar en inicio. Necesitas eleminar el directorio y la refencia manualmente.</div>
<div class="note">
  <strong>Atención:</strong> Mac OS X utiliza un sistema de archivos que ignora las mayúsculas, lo que no te permitirá construir Firefox OS en el futuro (<strong>NOTA DEL EDITOR: yo nunca he tenido problemas con esto)</strong>.&nbsp; Te recomendamos que generes una imagen de disco "sparse" sensible a las mayúsculas y que trabajes desde ese directorio. Para construir una imagen de disco "sparse" sensible a las mayúsculas ejecuta:</div>
<pre>
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/firefoxos.dmg</pre>
<p>Monta la imagen ejecutando:</p>
<pre>
open ~/firefoxos.dmg</pre>
<p>Navega al directorio de la imagen montada con:</p>
<pre>
cd /Volumes/untitled/</pre>
<h3 class="note" id="Fix_libmpc_dependency_if_broken">Fix libmpc dependency if broken</h3>
<p>gcc 4.6 was built with libmpc 0.9; if you then use homebrew to update packages, libmpc gets updated to version 1.0, but homebrew doesn't rebuild gcc 4.6 after the library version changes. So you need to create a symlink to make things work again, like this:</p>
<pre>
cd /usr/local/lib/
ln -s libmpc.3.dylib libmpc.2.dylib</pre>
<h3 id="Optional.3A_Install_HAX">Optional: Install HAX</h3>
<p>Intel provides a special driver that lets the B2G emulator run its code natively on your Mac instead of being emulated, when you're using the x86 emulator. If you wish to use this, you can <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/">download and install</a> it. It's not required, but it can improve emulation performance and stability.</p>
<h2 class="note" id="Install_adb">Install adb</h2>
<p>The build process needs to pull binary blobs from the Android installation on the phone before building B2G (unless you're building the emulator, of course).&nbsp; For this, you will need <code>adb</code>, the Android Debug Bridge.</p>
<p>To get this, you'll need to install the <a class="external" href="http://developer.android.com/sdk/index.html" title="http://developer.android.com/sdk/index.html">Android SDK starter package</a> for your platform. Then run their package manager, <code>$SDK_HOME/tools/android</code>, and use the GUI to install "Android SDK Platform-tools".</p>
<p><code>adb</code> will be installed to <code>$SDK_HOME/platform_tools</code>. Be sure to add this directory to your <code>PATH</code>. This can be done by adding the line</p>
<pre>
PATH=$SDK_HOME/platform_tools:$PATH</pre>
<p>replacing&nbsp;$SDK_HOME with the location of the andoird sdk,&nbsp;to your ~/.bashrc or equivalent.&nbsp; Also, you may wish to run:</p>
<pre>
adb pull /system &lt;backup target dir&gt;/system
</pre>
<p>to back up the entire Android system partition on your phone. This will give you a copy of all the binary blobs for Android in case you later delete your B2G tree. Depending on the phone, you may also need to pull the /data and/or /vendor directories:</p>
<pre>
adb pull /data &lt;backup target dir&gt;/data
adb pull /vendor &lt;backup target dir&gt;/vendor
</pre>
<h2 class="note" id="Install_heimdall">Install heimdall</h2>
<p>Heimdall is a utility for flashing the Samsung Galaxy S2. It's used by the Boot to Gecko flash utility to replace the contents of the phone with Firefox OS, as well as to flash updated versions of B2G and Gaia onto the device. You'll need it if you want to install Firefox OS on a Galaxy S2; it is <strong>not</strong> needed for any other device. For other devices, we build and use the fastboot utility instead.</p>
<div class="note">
  <strong>Note:</strong> Again, it's important to note that this is <strong>only required for installing Firefox OS on the Samsung Galaxy S2</strong>.</div>
<p>There are two ways to install heimdall:</p>
<ul>
  <li>You can <a class="link-https" href="https://github.com/Benjamin-Dobell/Heimdall" title="https://github.com/Benjamin-Dobell/Heimdall">download the code</a> GitHub and build it yourself.</li>
  <li>Use a package manager to install it.
    <ul>
      <li>On Linux: <code>sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev</code></li>
      <li>On Mac, you can <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">download an installer package</a> and use that.</li>
    </ul>
  </li>
</ul>
<h2 id="Configure_ccache">Configure ccache</h2>
<p>The default cache size for ccache is 1GB; the B2G build easily saturates this. You can configure your cache size as follows:</p>
<pre>
<code>$ ccache --max-size 2GB</code></pre>
<h2 id="Configure_the_udev_rule_for_your_phone">Configure the udev rule for your phone</h2>
<p>You can get the USB vendor ID by running <code>lsusb</code> now, but typically it's Google's 18d1 or Samsung's <code>04e8</code>, so adding this line in your <code>/etc/udev/rules.d/51-android.rules</code> would work:</p>
<pre>
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"</pre>
<p>Once you've saved the file, and closed it,&nbsp; make the file readable:</p>
<pre>
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
</pre>
<h2 id="Configure_Phone">Configure Phone</h2>
<p>Before you plug your phone into your USB port, put it USB developer mode. This lets us access the phone for debugging and flashing. To do this, go to the Settings application and navigate to Applications &gt; Development, and turn on the "USB debugging" checkbox.</p>
<h2 id="On_to_the_next_step">On to the next step</h2>
<p>At this point, you should be ready to <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Preparing_for_your_first_B2G_build" title="en-US/docs/Mozilla/Boot_to_Gecko/Preparing_for_your_first_B2G_build">fetch the Firefox OS code</a>!</p>
Revertir a esta revisión