sábado, 12 de enero de 2013

Instalando Firefox OS en un Nexus S

Desde que este verano aparecieron los primeros pantallazos de Firefox OS tengo ganas de probarlo en mi Nexus S y por fin estas navidades he tenido la ocasión. Podéis ver una breve instantánea del aspecto de Firefox OS en un Nexus S en el siguiente vídeo:


Se trata de una versión compilada a mediados de diciembre y todavía fallan algunos detalles. Espero sacar tiempo pronto para compilar una  versión más moderna y comentar lo que he encontrado en un video de mayor calidad.


A la hora de instalarlo he visto que empiezan a aparecer ROMs cocinadas para Nexus S y aunque pueda parecer más cómodo partir de ellas, al existir  soporte (tier 2) y testeo frecuente por los desarrolladores para este terminal, tanto el build desde el repositorio, como la instalación son sencillísimos.

Si bien Firefox OS es el nombre del sistema operativo, el proyecto que lo desarrolla en Mozilla se denomina Boot to Gecko (B2G). En febrero se anunció (en el MWC 2012) que Telefónica está colaborando con Mozilla y otros telco, para que sea la base de firmware para lanzar terminales de gama básica pero con funcionalidades similares a Android o iOS, lo que convierte esto en algo más que un experimento interesante.

config.sh + build.sh + flash.sh

La manera más sencilla de tener la última versión de Firefox OS corriendo en un Nexus S es seguir las instrucciones que se encuentran en el sitio de desarrollo de Mozilla.

Un requisito para el sistema del build es que sea Mac OS X o Linux 64 bit con al menos 4GB de RAM, pero yo he completado el build con exito en una Ubuntu 12.04 de 32 bit. He introducido unos cambios mínimos en la lista de paquetes indicados a instalar:
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
de los que he sustituido:
  • ia32-libs (runtime para la arquitectura ia32/i386 para ser usadas en sistemas amd64 o ia64 corriendo un kernel de 64 bit). Lo he ignorado, supongo que ese runtime es el de la propia maquina 32 bit en la que he corrido el build. 
  • lib32ncurses5-dev, no existe en la distribución de 32 bit, he instalado libncurses5-dev
  • lib32z1-dev, no existe en la distribución de 32 bit, he instalado zlib1g-dev
Adicionalmente a los paquetes anteriores es necesario instalar el SDK de Android ya que el build necesita adb (Android Debug Bridge) y fastboot para grabar las imágenes en la fase de instalación.

Para proceder al build, se debe:
  1. clonar el repositorio B2G o simplemente descargar el archivo zip desde github y descomprimirlo en un directorio de trabajo. 
  2. Configurar el build para nexus-s con config.sh nexus-s 
  3. Invocar el build con build.sh. En unas horas el build se completa, durante el mismo es necesario conectividad a internet ya que se descargará código adicional de los repositorios.
  4. Si el build ha tenido éxito, instalar Firefox OS en el dispositivo ejecuntando flash.sh que copiará las imágenes a las particiones boot, system y userdata, dejando intacta recovery
En mi casó el paso 2 tardó unas dos horas, aunque casi todo es descarga de unos 3GB de librerias y por tanto dependerá de la velocidad de conexión a los repositorios. El paso 3 tardó aproximadamente tres horas en un PC con Intel T3200 1.66GHz, 2GB RAM.

En el caso del Nexus S el shellscript flash.sh intentará previamente un desbloqueo del bootloader con fastboot oem unlock y a continuación se usará fastboot para flashear las imágenes  Debido a esto tras instalar el SDK de google para Linux (adt-bundle-linux-x86) y antes de realizar la instalación conviene comprobar que el terminal se detecta correctamente por USB, iniciándolo en modo fastboot y ejecutando fastboot devices.


No hay comentarios:

Publicar un comentario