Cómo compilar Chromium OS


Compilando-Chromium-OS[3]
En este tutorial compilaremos Chromium OS – el sistema operativo de Google en su versión libre – para lo cual necesitaremos de una distribución Linux de 64 bits, ya que las herramientas que ofrece para realizar ese trabajo de compilación están especialmente escritas para aprovechar los 64 bits.
En mi situación en particular – tal vez otras personas se encuentre igual – tengo instalado Ubuntu pero es de 32 bits, y ahora me encuentro en Windows, entonces para no estar demorando mucho en reparticionar mis unidades, reinstalar Ubuntu de 64 bits, preferí en utilizar una máquina virtual, con VirtualBox y gracias a que mi computadora soporta emulación de hardware, pude instalar tranquilamente Ubuntu 10,10 AMD 64.
Requerimientos:
  • Conexión a Internet
  • Espacio en disco suficiente (recomendable más de 4GB)
Empecemos entonces:
Preparativos:
Primero nos aseguraremos de contar con las herramientas necesarias para poder compilar el sistema operativo, para lo cual accedemos al terminal e iniciamos la instalación de dichas herramientas.
  • Depot Tools : Chromium y Chromium OS utilizan este paquete que contiene scripts para administrar las revisiones al código fuente.
  • Git : Git es un gestor de sincronización de código fuente, al igual de SVN o CVS, mantiene la actualización y/o descarga de código fuente en un servidor. Necesitamos de git para descargar el código fuente de Chromium OS.
      • sudo apt-get install git gitk git-gui
    • Ahora debemos configurarlo, reemplace con sus datos:
      • git config --global user.email “vhanla@gmail.com”
      • git config --global user.name “vhanla”
  • Ahora crearemos la carpeta donde trabajaremos
      • mkdir chromiumos
  • Obtenemos el código fuente
  • Creamos chroot (el entorno ajeno a nuestra instalación de linux, la cual contendrá todas las herramientas bien configuradas)
      • cd src/scripts
      • ./make_chroot
    • esto demorará bastante, en mi caso fueron 88 minutos
      creando-el-chroot
    • normalmente esto demora media hora en una computadora con 4 núcleos, y una vez terminada, aumentará unos 400MB
    • el chroot estará ubicado en ~/chromiumos/chroot/
    • crear el chroot únicamente es necesario actualizarlo cuando recomienden hacerlo en el foro de desarrolladores.
  • Ingresamos ahora al chroot
      • ./enter_chroot.shenter_chroot.sh
    • ahora que estamos en el entorno separado para construir ChromiumOS.
  • Escoger qué tipo de arquitectura soportará el sistema operativo:
      • x86-generic : para la mayoría de CPUs compatibles con x86
      • arm-generic : para computadoras ARM
    • por ejemplo si quiero elegir x86-generic escribo:
      • BOARD=x86-generic
    • esa configuración durará mientras estemos en el chroot, si salimos y volvemos a ingresar al chroot, debemos volverlo a hacer.
    • elegida la arquitectura procederemos a prepararla
      • ./setup_board --board=${BOARD}
    • al finalizar obtendremos el siguiente resultado:
      setup_board
    • Ahora estableceremos la contraseña del usuario chronos, este usuario podrá accederse presionando Ctrl+Alt+F2 para un acceso desde línea de comandos con privilegios más altos. Escribimos lo siguiente:
      • ./set_shared_user_password.sh
    • Nos pedirá una contraseña para ello.
  • Construcción de los paquetes
    • Utilizamos el siguiente comando
      • ./build_packages --board=${BOARD} --oldchromebinary
  • build-done
    • Eso construirá todos los paquetes necesarios para nuestra configuración x86-generic en este ejemplo, y utilizará nuestra conexión de internet para descargar todos los paquetes precompilados si existiesen o el código fuente para compilarlo en nuestra máquina. Esta es una tarea lenta y demorará un tiempo considerable. A mí me demoró casi un día por culpa de mi conexión y además de utilizar un entorno emulado de Linux mediante VirtualBox.
  • Construcción de una imagen
    • Una vez concluida la construcción de los paquetes, estaremos listos para poder construir una imagen del sistema operativo, utilizamos el siguiente comando:
      • ./build_image --board=${BOARD} --withdev --noenable_rootfs_verificationbuild-image
    • La imagen producida no será una versión segura de Chromium OS, pero ofrecerá un acceso más libre. Si se desea un versión más segura, no utilice los parámetros --withdev  y --noenable_rootfs_verification.
  • Llegó el momento de pasarlo a nuestro pendrive USB y así poderlo arrancar en nuestra PC.
    • Lo primero es insertar nuestra unidad USB, cualquier pendrive de 4GB o más. Luego ejecute el siguiente comando:
      • ./image_to_usb.sh --board=${BOARD}
    • nos mostrará entonces un listado de los dispositivos USB disponibles:Chromium-to-USB
    • ahí podremos ver el dispositivo que podemos utilizar el cual hemos de pasarlo en el parámetro --to, para ello volvemos a escribir lo mismo agregando el destino
      • ./image_to_usb.sh --board=${BOARD} --to=/dev/sdcimage-to-usb
  • Finalmente salimos de la línea de comandos con exit y ya podemos ejecutar el Sistema Operativo desde el dispositivo USB, para ello debemos asegurarnos que nuestra PC sea capaz de arrancar desde dispositivos USB y que éste este configurada para ser el primero en arrancar, es decir, antes de cualquier otro dispositivo como el mismo disco duro.
Algunas fotos del arranque de Chromium OS
image
Al arrancar muestra el menú de selección de idioma, teclado y red
Login-Pic
Luego nos pide tomarnos una fotografía para nuestra imagen de usuario.
image
Carga actualizaciones desde Internet
image
Al final estaremos frente al navegador Chromium.
Páginas especiales:
  • about:plugins – para poder activar flash por ejemplo
  • about:flags – algunas características que están en prueba pero que podrían servirnos, tales como render 2d y 3d mediante hardware, media player, soporte a dispositivos USB, entre otros
Espero logren compilarlo, a mí me costó mucho tiempo debido a que utilicé Ubuntu 64bits emulado en VirtualBox que además ocasionaba que Windows 7 se reinicie. Además de tener una conexión a internet pésima.
Para mayores detalles, tales como crear imágenes para entornos emulados como VirtualBox, VMware, QEMU, es mejor referirse a la documentación oficial que es la que utilicé para este tutorial.
Además nótese que con el tiempo esta guía puede cambiar.