Como instalar Gentoo en un telefono Nexus 5

android
Recientemente llego a mis manos un teléfono Nexus 5 que cuenta con hardware bastante interesante (y una bocina que convierte a Manowar en zarabanda locochona) por lo que decidí aprovecharlo e instalarle la mejor distribución Linux del universo, Gentoo Linux.

Para instalar Gentoo en un teléfono con Android, es necesario apoyarse de un proyecto desarrollado durante el GSOC-2013 denominado Gentoo RAP. RAP es una variante de Gentoo prefix que permite utilizar los ejecutables de Gentoo en paralelo a los ejecutables de Android en una ruta diferente a /, con lo que es posible utilizar Gentoo sin todas las limitaciones de un chroot como el que se crea con LinuxOnAndroid y que dicho sea de paso no soporta Gentoo.

La instalación en Android puede realizarse de dos formas, 1) haciendo bootstrap (compilando un stage desde 0 en el dispositivo)  o 2) descargando un pre-compilado para ARM-v7 como se indica en la wiki. En mi caso utilicé el segundo método, el cual traduzco/comento en esta guiá.

1) Prerrequisitos
*  Asegurarse que tenemos el bootloader liberado y con acceso root (acá dos guiás para obtener root);
* Instalar alguna implementación de busybox (yo recomiendo esta);
* De preferencia utilizar superuser como administrador de root;
* Habilitar el acceso ssh al dispositivo (recomiendo esta aplicación) o instalar en el dispositivo un emulador de terminal (yo recomiendo este).

2) Descomprimiendo el stage

El primer paso es obtener root

1
$ su

Luego procedemos a descargar el stage de Gentoo en cualquiera de los mirrors del proyecto, basta con ejecutar el siguiente comando que convenientemente realizó en /data

1
busybox wget http://gentoo.c3sl.ufpr.br/experimental/prefix/rap/gentoo.tar.bz2

Una vez con el stage listo procedemos a descomprimirlo

1
busybox bzip2 -dc gentoo.tar.bz2 | busybox tar -xf - -C /data

Este paso deberia crear una carpeta llamada /data/gentoo que es la base de nuestro Gentoo prefix.

3) Hacks previos a usar el prefix

Una vez listo el prefix es necesario que  algunos ejecutables clave para compilar sean visibles, especificamente env, sh y pwd, para esto se pueden utilizar los incluidos en el prefix mediante  enlaces simbólicos, primero remontamos / con permisos de escritura

1
/system/bin/mount -o remount,rw /

Y creamos los enlaces simbólicos

1
2
mkdir /bin; cd /bin; ln -s /data/gentoo/bin/sh; ln -s /data/gentoo/bin/pwd
mkdir -p /usr/bin; cd /usr/bin; ln -s /data/gentoo/usr/bin/env

Por ultimo también es recomendable crear /tmp ya que algunos ebuilds lo utilizan para compilar.

1
mkdir /tmp; /system/bin/mount -t tmpfs tmpfs /tmp

4) Iniciando nuestro prefix

Una vez listo el sistema, procedemos a iniciar nuestro prefix ejecutando el script en /data/gentoo/startprefix, si todo sale bien pues bienvenidos a Gentoo!

2013-12-08 18.35.20

5) Usar el prefix como root

A menos que realicemos un chmod sobre /data/gentoo, por defecto la instalación y portage solo podrá ser usada por root. No entanto algunas implementaciones de su para Android como SuperSu, utilizan una shell diferente para los usuarios normales y para root, lo cual podemos verificar mediante la variable de entorno $SHELL.

2013-12-08 18.46.55

Si este fuera el caso, lo más probable es que al iniciar el prefix como root el script falle, sin embargo basta con sobreescribir la variable $SHELL para usar la shell por defecto que en el caso de Android es /system/bin/sh

1
export SHELL=/system/bin/sh

Y listo, ahora podemos utilizar Gentoo con todo su poder

2013-12-08 18.52.46

Es conveniente que antes de cualquier cosa actualicemos portage y agreguemos el overlay de heroxbd el principal desarrollador del port.

1
2
emerge --sync
layman -s heroxbd

3 Replies to “Como instalar Gentoo en un telefono Nexus 5”