miércoles, 23 de junio de 2010

Cómo COMPILAR el KERNEL de LINUX para el EMULADOR de ANDROID (versión ECLAIR)

DESCARGAR EL CÓDIGO FUENTE DEL KERNEL

Lo primero descargamos las fuentes del kernel desde http://android.git.kernel.org

En esa url aparecen kernels para otras plataformas también. Elegimos descargar kernel/common project de esa página.

$git clone git://android.git.kernel.org/kernel/common

Comprobamos qué rama (branch) hemos descargado:
$git branch
Muestra * android-2.6.27, la cual no es la que estamos buscando:

Para listar todas las ramas remotas disponibles:
$git branch -r
origin/HEAD -> origin/android-2.6.27
origin/android-2.6.25
origin/android-2.6.27
origin/android-2.6.29
origin/android-2.6.32
origin/android-goldfish-2.6.27
origin/android-goldfish-2.6.29


¿Qué significa goldfish? (según la lista de correo android-kernel)
Goldfish es la rama hackeada del kernel que da soporte al emulador de android basado en qemu, así que es la que necesitamos.

Descargar la versión del kernel GOLDFISH
$git checkout --track -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29
$git branch
android-2.6.27
* android-goldfish-2.6.29



EJECUTANDO EL EMULADOR

Este enlace cuenta cómo descargar el emulador de android, y cómo ejecutarlo.
Compilar Android en Debian Sid

Averiguar la versión del kernel que se está ejecutando en el emulador
$adb shell
#cat /proc/version
Linux version 2.6.29-00261-g0097074 (digit@digit.mtv.corp.google.com) (gcc version 4.4.0 (GCC) ) #14 Tue Feb 2 15:49:02 PST 2010



OBTENER LA CONFIGURACIÓN DEL KERNEL

jueves, 17 de junio de 2010

Compilar Android en Debian Sid

Vamos a compilar y probar Android en un sistema Debian Sid ejecutándose en una arquitectura x86 de 32 bits.

Necesitamos como requisito: JDK 5.0, actualización 12 ó superior. Java 6 no está soportado debido a incompatibilidades con @Override.

Debian Sid proporciona todos los paquetes que necesitamos, excepto JDK 5.0. Lo podríamos instalar usando las fuentes, pero en su lugar lo instalaremos desde los repositorios de Debian Stable (Lenny):

AÑADIR LOS REPOSITORIOS DE DEBIAN STABLE (LENNY)
#echo "deb http://ftp.debian.org/debian/ stable main contrib non-free" >> /etc/apt/sources.list

#aptitude update

El paquete sun-java5-jdk está ahora disponible.

INSTALLAR LOS PAQUETES QUE NECESITAMOS:
#aptitude install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev


SELECCIONAR LA VERSIÓN CORRECTA DE JAVA:
$file /etc/alternatives/java* # Para saber qué ficheros de alternativas tenemos que actualizar.
#update-alternatives --config java
#update-alternatives --config java_vm
#update-alternatives --config javaws


También instalaremos valgrind, es una herramienta que nos ayudará a encontrar memoria no liberada, corrupción en la pila, desbordamiento de los límites de vectores, etc.
#aptitude install valgrind


Los proyectos de Android se almacenan en repositorios Git. Han desarrollado también una herramienta llamada REPO para facilitar el trabajo con repositorios basados en git.

INSTALANDO REPO