miércoles, 14 de enero de 2015

¿Cómo instalar Linux en LG Chromebase?

Este artículo explicará de forma rápida cómo llevar a cabo una instalación de Linux (XUBUNTU) en un equipo LG Chromebase.

Se recomienda tener unos mínimos conocimientos de Linux antes de afrontar esta tarea.

Así mismo no se ofrece ningún tipo de garantía sobre el proceso y/o el resultado final. Existe un mínimo riesgo de causar algún problema en el equipo y el proceso descrito puede afectar a la garantía del mismo. 

 

PASO 1. Habilitar el modo desarrollador


Los sistemas Chrome OS disponen de un modo de "desarrollador" que debemos activar para iniciar el proceso de instalación de Linux.

La activación del modo desarrollador se encuentra explicada en la "Guía de Instalación" que acompaña al equipo.

Paso 1.1. El primer paso es apagar el equipo y encenderlo nuevamente presionando el botón de recuperación (situado en el interior del candado Kensington).

Paso 1.1.


Paso 1.2. Si hemos encendido y presionado el botón de recuperación al mismo tiempo veremos la siguiente pantalla. 

Paso 1.2.
Paso 1.3. Presionamos CTRL+D y entraremos en una nueva pantalla.

Paso 1.3.
Paso 1.4. Presionar nuevamente el botón de recuperación, para desactivar la verificación de Chrome OS.

Paso 1.4.


Paso 1.5. Esperamos 30 segundos en la pantalla anterior y se iniciará la activación del modo "desarrollador". Todos los datos locales serán borrados. El proceso dura unos minutos. 

Paso 1.5

Finalmente, volverá a aparecer la pantalla de inicio de Chrome OS. No es necesario que configuremos una cuenta. Podemos acceder con la cuenta de Invitado. 

El sistema con el modo desarrollador activo

PASO 2. Reflashear SEABIOS y habilitar arranque legacy/usb. 


Ejecutar el siguiente paso requiere de una terminal. Para ello, una vez hayamos iniciado sesión, presionamos CTRL+ALT+T.

Crosh, la shell del modo desarrollador

En la terminal deberemos ejecutar la siguiente secuencia de comandos hasta obtener una terminal de root.

crosh> shell
chronos@localhost / $ sudo -i
localhost / # 

Una vez somos root de nuestra terminal, podemos empezar el proceso que tiene dos partes diferenciadas.

Paso 2.1.- Habilitar el arranque legacy y usb.

Para esto desde la terminal de root tenemos que ejecutar la siguiente instrucción.
localhost / # crossystem dev_boot_usb=1 dev_boot_legacy=1
Esto permite acceder al sistema legacy y bootear desde USB que será los que nos permita arrancar nuestro sistema Linux.

Paso 2.2.- Reflashear SeaBIOS

Esta es, con diferencia, la parte más delicada del proceso, aunque no es excesivamente crítica. 

El proceso no reflashea por completo la BIOS del equipo, sino sólamente lo que se conoce como LEGACY BIOS y que corresponde con una imagen de SeaBIOS.

¿Por qué hacemos esto? Básicamente porque la versión de SeaBIOS que lleva instalada no soporta el teclado USB que tenemos instalado (XHCI) debido a que espera un teclado en IRQ1 (PS/2).

¿La solución? Usar una BIOS para ASUS Chromebox que corrige el problema desarrollada por John Lewis. Otra opción es crear nuestra propia SeaBIOS con soporte para AHCI. Pero tanto en cuanto SeaBIOS es algo bastante estándard, lo más rápido es aprovechar el trabajo que hay hecho. 

La BIOS en cuestión se descarga desde la siguiente URL: http://johnlewis.ie/asus-chromebox-SeaBIOS-new.bin

Una vez tenemos descarga la BIOS (se descarga en /home/chronos/Downloads) lo que debemos hacer, antes de continuar es una copia de la actual SeaBIOS del sistema, por si acaso. 

localhost / # flashrom -r -i RW_LEGACY:Chromebase-SeaBIOS-backup.bin
Una vez tenemos hecho nuestro backup (que nos podemos enviar por correo) podemos sobreescribir la BIOS con una la nueva versión.

localhost / # flashrom -w -i RW_LEGACY:asus-chromebox-SeaBIOS-new.bin

PASO 3. Instalar Linux.


Para instalar Linux, XUbuntu en este caso, necesitamos una memoria USB sobre la que utilizaremos UNetbootin para, a partir, de la imagen ISO de la distribución, generar un USB arrancable. 

Una vez tenemos nuestra memoria lista, lo que tenemos que hacer es conectarla y reiniciar, presionando CTRL+L para entrar en Legacy Boot. 

SeaBIOS


Una vez allí presionaremos ESC para seleccionar el dispositivo desde el cual queremos arrancar. Normalmente 2, que corresponderá a la memoria USB. Tras lo cual veremos el inicio de UNetbootin.

El inicio de UNetbootin desde la memoria USB

Una vez aquí presionaremos TAB y añadiremos la opción mem=1900M para que el inicio se realice de forma correcta. 

Una vez iniciado el sistema, podremos trabajar desde el sistema USB o podremos realizar una instalación convencional sobre /dev/sda sin mayor problema. 

La única recomendación es que antes de realizar una instalación sobre /dev/sda obtengamos una imagen del sistema Chrome OS. Cosa que podemos hacer mediante el comando:

dd if=/dev/sda of=/media/USB/chromeos.img bs=2M
Si decidimos instalar, únicamente nos queda una vez que finalice el proceso de instalación, reiniciar, presionar CTRL+L para entrar en modo Legacy y el sistema Linux arrancará desde disco SSD.

El resultado final

4 comentarios:

  1. Aun a sabiendas de que este blog trata de linux, os comento que es posible instalar windows 10, siendo completamente funcional a excepcion del audio, por falta de drivers (yo uso cascos bluetooth y sin problemas) y todo gracias a esta guia, aki la prueba

    https://youtu.be/3HOQTaf54Yk

    ResponderEliminar
  2. Hola
    Al descargar la bios como haces para que se te guarde en /home/chronos/Downloads ?
    yo solo tengo la carpeta "descarga"
    muchas gracias

    ResponderEliminar
  3. Esta muy bien explicado pero tengo un problema al reflashear la BIOS me dice que los módulos están bloqueados Block protection could not be disabled! tiene alguien idea de que se trata esto?

    ResponderEliminar
  4. Hola todos! muchas gracias por esta guia y sus orientaciones. Me queda la duda si a la fecha se ha podido solucionar el problema del driver de audio, pues me interesa pasar mi Chromebase a Windows 10N. Existen actualizaciones de este procedimiento que pueda ver en otra parte? muchas gracias!

    ResponderEliminar