lunes, 22 de febrero de 2010

Debian en G1 con Android 2.1

Bueno, después de lo que anduve renegando, pude hacer andar Debian en una HTC Dream con Android 2.1.
Anoche me senté un rato y armé tutoriales para que otros puedan hacerlo si les interesa, junto con los archivos necesarios.

Es algo bastante raro y específico, a pocos les va a interesar, pero para esos pocos escribo :)


En mi G1 estoy corriendo Android 2.1, con la ROM KiNgxKxlicK AOSP 2.1 versión 1.6.1

Aquí pueden bajarla, no voy a hacer un instructivo sobre cómo instalarla porque el tema de ROMs en Android es más que extenso, y hay muchos tutoriales dando vueltas por la web.

Puede que los pasos que detallo en este tutorial no funcionen exactamente igual en otras ROMs y otros dispositivos, pero con probar no se pierde nada más que tiempo :).

Lo que sí o sí es necesario, es que la ROM que estén usando sea rooteada (es decir, que tengan permisos de root). Si no es una ROM rooteada, no van a poder hacer andar ni el instalador, jeje.


Para hacer andar Debian en Android, me basé en el contenido de dos foros que hablaban sobre el tema, más algunas modificaciones de las que me di cuenta solo. Al final agrego los links a esos foros para quienes quieran profundizar o ver la info original. El verdadero mérito va para los autores de esos posts, ya que lo que yo hice fueron pequeñas modificaciones sobre su trabajo.


Finalmente, asumo que quien quiere correr Debian en su celular es porque conoce un mínimo de Linux. No me voy a detener a explicar cómo editar un archivo de texto por línea de comando, ni cosas por el estilo, jeje.


Qué tal anda?


La verdad que anda mucho mejor de lo que yo esperaba. Recordemos que se trata de un celular, un aparato con recursos muy limitados. Pero con esos recursos se puede llegar incluso a levantar una interfaz gráfica.

Sin interfaz gráfica es un pájaro: vuela. Con la interfaz gráfica es un reptil: se arrastra, jeje.

Además, al levantar la interfaz gráfica puede suceder que el equipo se quede sin memoria RAM y empiece a cerrar aplicaciones para liberar memoria. Y al cerrar aplicaciones, puede cerrarnos el Debian que está corriendo de fondo, lo que resulta muy molesto.

Yo particularmente lo uso por linea de comandos, sin nada de interfaz gráfica, así que no tengo problemas.


Me puede romper el celular?


En los posts originales aclaran que lo que se hace no afecta al sistema operativo del celular (Android), por lo que no debería haber riesgos. Igual no me hago responsable por lo que a cada uno pueda pasarle en su celular por seguir los pasos que aquí detallo.


Tutorial


A) Instalar Debian



  1. Bajar los archivos necesarios desde este link: debian_aosp21_fisadev.zip

  2. Conectar el celular a la PC en modo de almacenamiento, o sacarle la SD y conectarla a la PC con un adaptador o lector de tarjetas.

  3. Crear en la memoria SD una carpeta con nombre "debian", y descomprimir dentro los archivos que contiene el zip.

  4. Volver a colocar la SD en el celular, o desconectarlo de la PC.

  5. Por seguridad, reiniciar el celular, ya que en algunas ocasiones el sistema de archivos queda como de solo lectura.

  6. Desde un emulador de consola/terminal en el celular, ejecutar:
    su
    cd /sdcard/debian
    sh installer.sh



B) Iniciar Debian y configurar las cosas básicas


Con lo hecho antes Debian ya está instalado, pero necesitamos levantarlo y hacer algunas configuraciones iniciales.



  1. Desde un emulador de consola/terminal en el celular, ejecutar:
    su
    cd /sdcard/debian
    sh bootdeb


  2. Esto va a iniciar Debian. Cuando haya terminado de iniciar (les deja el prompt para empezar a escribir), ejecutar:
    sh /scripts/onetime.sh

    Esto nos va a pedir configurar una contraseña para el usuario root. Háganlo, es necesario.

  3. Agregamos algunos repositorios básicos. Editamos el archivo /etc/apt/sources.list agregándole al final:

  4. deb http://ftp.debian.org/debian lenny main contrib non-free
    deb-src http://ftp.debian.org/debian lenny main contrib non-free

  5. Agregamos la configuración básica para que pueda utilizar la conexión de internet wifi del celular. Editamos el archivo /etc/network/interfaces y le agregamos al final:

  6. auto tiwlan0
    iface tiwlan0 inet dhcp


Después de hacer esto, tenemos que salir de Debian ejecutando:

exit

Ahora, cada vez que queramos levantar Debian, ejecutamos:

su
cd /sdcard/debian
sh bootdeb


Y siempre hay que salir usando "exit" (y no cerrando la aplicación así nomás)


Con esto ya es suficiente para tener un Debian desde línea de comandos. Los tutoriales que siguen son completamente opcionales.


C) Aumentar el tamaño del sistema de archivos


El Debian que tenemos instalado corre sobre un sistema de archivos contenido en un archivo de imagen, el debian.img. Esa imagen puede resultar un poco chica si vamos a instalar un entorno gráfico, o muchas aplicaciones. Así que si necesitamos hacerla más grande, estos son los pasos:



  1. Prestar atención a dónde se debe ejecutar cada comando, si en el celular o en la PC!.

  2. Conectar el celular a la PC en modo de almacenamiento, o sacarle la SD y conectarla a la PC con un adaptador o lector de tarjetas.

  3. Copiar el archivo debian.img de la SD a una carpeta en la PC, que a partir de ahora llamaremos PATH_PC

  4. Desde la consola/terminal de la pc, ejecutar esto reemplazando TAMAÑO por el tamaño que queramos. Ejemplo: para 3.5 GB poner 3500999999:
    cd PATH_PC
    dd if=/dev/zero of=debian2.img seek=TAMAÑO bs=1 count=1
    mke2fs -F debian2.img
    mkdir debian
    mkdir debian2
    mount -o loop debian.img debian
    mount -o loop debian2.img debian2
    cd PATH_PC/debian
    cp -R -f * PATH_PC/debian2
    umount debian
    umount debian2

    (si no funciona reinicar la pc y volver a intentar)
    cd PATH_PC
    rm -r -f debian
    rm -r -f debian2
    rm debian.img
    mv debian2.img debian.img
    chmod a+x debian.img
    chmod 777 debian.img


  5. Copiar el archivo debian.img de la PC a la carpeta debian de la SD.

  6. Volver a colocar la SD en el celular, o desconectarlo de la PC.

  7. Por seguridad, reiniciar el celular, ya que en algunas ocasiones el sistema de archivos queda como de solo lectura.

  8. Desde un emulador de consola/terminal en el celular, ejecutar:
    su
    cd /sdcard/debian
    sh bootdeb

    (eso nos inicia Debian, ya deberían saberlo, jeje)
    cd /var/lib/dpkg/updates
    rm -r -f *
    dpkg --configure -a



Después de hacer esto, tenemos ya un Debian con mucho más tamaño para jugar :D


D) Instalar un entorno gráfico


Para asombrar a nuestros linuxeros amigos, podemos instalar un entorno gráfico completo y jugar con nuestro Android como si fuese una PC de escritorio. Se arrastra de lento, y a veces se cierra solo por falta de memoria, pero anda al menos por los segundos necesarios para causar el efecto "waaaaah!" :)

Recordemos que si queremos instalar un entorno gráfico, deberíamos aumentar el tamaño del sistema de archivos.


Como los pasos no cambiaron del tutorial original, les dejo directamente el link a ese tutorial (si en algún momento desaparece, tengo una copia local, pidanme y la subo):


Instalar entorno gráfico.

(Está en inglés, si alguien necesita traducción, pida nomás)


E) Links originales


13 comentarios:

  1. hola,
    perdona soy un poco novato en el tema, pero me gustaria si me puedes aclarar como editamos los archivos en el paso 3 y 4 para configurar el debian

    gracias,

    ResponderEliminar
  2. Podrías hacerlo con algún editor de texto por línea de comandos (como Vi), pero si no conoces ninguno, podes hacerlo ejecutando estos 4 comandos:

    echo "deb http://ftp.debian.org/debian lenny main contrib non-free" >> /etc/apt/sources.list

    echo "deb-src http://ftp.debian.org/debian lenny main contrib non-free" >> /etc/apt/sources.list

    echo "auto tiwlan0" >> /etc/network/interfaces

    echo "iface tiwlan0 inet dhcp" >> /etc/network/interfaces

    De nada :)

    ResponderEliminar
  3. Gracias, ha funcionado perfecto, aunque me da este aviso de error al levantar el debian:

    Mkdir failed for -p, file exist
    mount: mounting /system on /data/local/mnt/android/system
    Android directories are mounted under /android

    La finalidad para poner el debian en mi g1 es para poder hacer auditorias de redes utilizando el tcpdump (si es posible), si sabes de alguna manera de poderlo instalar o bien algun tutorial al respecto te lo agradeceria.

    Muchas gracias por tu ayuda,

    ResponderEliminar
  4. Ya no tengo mi G1 como para verlo, pero es probable que ese debian ya lo traiga instalado. Si no lo trae, podrías intentar instalarlo usando apt-get.

    Si no conoces apt-get te recomendaría que leas algún tutorial de Linux, porque seguramente cuando empieces con tcpdump te vas a encontrar con unas cuantas cosas que te vendría bien conocer :)

    Sobre Linux no tengo ahora ningún tutorial a mano, pero sí tengo uno sobre la consola de Linux que armé hace poco para una materia que doy en la universidad, por si te sirve: http://bit.ly/bKOxrh

    ResponderEliminar
  5. muchas gracias, lo leere con atencion.

    en cuanto al g1, de momento he conseguido arrancar el tcpdump sin pasar por el debian, simplemente lo he instalado en el systema "/data/local" del celular, y lo inicio desde la consola de comandos (terminal emulator), arrancando con "su" y a continuacion el comando, sin pasar por debian (de momento).
    Lo que hace es visualizar paquetes de datos, aunque por el momento no los captura, pero ya es algo...
    Gracias de nuevo

    ResponderEliminar
  6. hola.. esta muy buena la info.. yo tengo el siguiente problema... al bajar apps se guardan en la memoria interna del cell y no en la sd como deberia.. como puedo hacer que las apps se guarden en la sd?? la demas info como fotos y musica si se almacenan en la sd sin problemas... desde ya gracias si me pueden ayudar

    ResponderEliminar
  7. estoy probando con mi dream 2.2 y no funcionan los primeros pasos, no crea los directorios

    ResponderEliminar
  8. Los primeros pasos se refieren a descomprimir un archivo zip. Eso no te funciona? cómo lo estás intentando descomprimir? dónde?

    ResponderEliminar
  9. hola Fisa voy a ponerme a instalarlo en un huawei 8110 haber si tengo suerte , si lo consigo te lo hago saber gracias por el tutorial(el unico en español)

    ResponderEliminar
  10. Lo he conseguido, muchas gracias otra ve por tu tutorial, ahora voy instalar las x11 pero creo que esto promete, vi,vim,aircrack,¿tu sabes como se podria cargar en modo dual android o debian? por que si es asi podriamos libranos de toda la memoria que ocupa android y convertir nuestros dispositivos de bajo coste en toda una pda con todo el software al dia si sabes algo comenta tio

    feliz año

    ResponderEliminar
  11. La verdad que no encontré nada sencillo para hacer un dual boot en un aparato con Android, pero sí, sería algo muy bueno :D

    ResponderEliminar
  12. Fisa revisando los scripts del zip ¿no te faltarían los módulos correspondientes de unionfs.ko y ext2.ko, lo digo por que en los scripts aparecen insmod ext2 y union fs, no creo que pueda acceder al directorio de módulos de android por si solo

    ResponderEliminar
  13. Yo no armé los scripts, pero podés preguntar en el thread original (en inglés). Fijate que están los links en la última sección.

    ResponderEliminar