lunes, 12 de julio de 2010

Cómo instalar Ubuntu en el Google Nexus One

Publico aquí un traducción bastante libre que he hecho del tutorial original: http://nexusonehacks.net/nexus-one-hacks/how-to-install-ubuntu-on-your-nexus-oneandroid/

Este tutorial es para aquellos que deseen instalar Ubuntu como sistema secundario en su Nexus One o en cualquier otro terminal rooteado con Android. He tratado de hacerlo lo más sencillo posible para todos.

Como podeis ver, he usado un Nexus One rooteado, pero si lo intentaís en otros terminales Android podríais tener problemas ya que no todos los teléfonos Android son exactamente iguales. Pero vamos, que puede que funcione, nunca lo sabrás hasta que lo pruebes.

En vez de instalarlo con sistema secundario, también se podría usar Ubuntu como sistema operativo primario en el Nexus One, pero eso significaría no poder usar el terminal como teléfono y probablemente, tampoco se podría usar la cámara.

La instalación que se describe en este tutorial NO afectará al sistema Android existente en tu teléfono. La terminal de Ubuntu se ejecutará en segundo plano mientras que la interfaz gráfica (X11) será mostrada mediante una aplicación VNC que corre sobre Android.



¿Por qué instalar Ubuntu en tu Nexus One?
Tener Ubuntu en tu Nexus One the permitirá ejecutar aplicaciones nativas de Linux en tu teléfono.

También he visto varios posibles usos en clases de ingeniería en la universidad, cuando se estudia Linux, en vez de ir a un laboratorio en el que haya ordeandores con dualboot, los estudiantes podrán usar su Nexus One para hacer las pruebas correspondientes.

Incluso para diseñadores web, su teléfono Android puede convertirse en un servidor web portable para probar sus últimos diseños.

Esta lista crecerá, y no hay absolutamente ninguna razón por la que no debamos ejecutar Ubuntu u otros sistemas Linux en teléfonos Android.

[...]

Cómo instalar Ubuntu en tu Nexus One
Antes de nada, descarga ubuntu.zip y descomprimelo:
http://www.megaupload.com/?d=FALJFT3L
ó
http://www.filefactory.com/file/b26fg8g/n/ubuntu.zip

1. Necesitas un Nexus One rooteado con busybox instalado (puedes seguir esta guía para instalar la ultima version de busybox: http://zedomax.com/blog/2010/07/07/android-hack-how-to-install-busybox-on-your-android/).
2. Si cumples el requisito anterior, podrás ejecutar Ubuntu bajo Chroot.

¿Qué es Chroot?
Chroot es basicamente la posibilidad de ejecutar otros sistemas operativos sobre el sistema actual (en este caso Android).
Chroot fue inicialmente desarrollado para probar nuevos sistemas operativos en entornos virtuales pero funcionará perfectamente en nuestro caso ya que nos permitirá usar Ubuntu como una máquina "virtual" sobre nuestro sistema Android.
Si, algo así como el Sun VirtualBox, VMWare o Virtual PC pero para Android.

Otro dato más: solamente peude "chroot" otro sistemas operativo hecho para la misma arquitectura de tu sistema. Por ejemplo, Google Nexus One usa la arquitectura ARM, lo cual significa que solamente podrás usar sistemas linux compilados para ARM.

En este caso estamos de enhorabuena ya que Ubuntu tiene un port para ARM.

3. Ahora que ya entiendes lo que es Chroot, copia la carpeta anteriormente descomprimida en la tarjeta MicroSD (tal cual, en la raiz).

4. Antes de seguir, asegurate que tienes desactivado el almacenamiento USB en tu teléfono, para que así podamos acceder a la tarjeta SD desde el programa "adb". Asegurate también de que el modo depuración USB está activado. Conecta ahroa el teléfono al ordenador.

5. Supongo que ya tienes instalado el SDK de Android instalado (lo tendrías que tener de cuando rooteaste tu Nexus One).
En Windows, vete a tu directorio donde tengas el SDK mediante la linea de comandos y ejecuta: "adb shell".
http://nexusonehacks.net/wp-content/uploads/2010/07/adbshell.jpg

6. Una vez que veas el simbolo "#" en la linea de comandos ya podremos continuar.

7. Ejecuta "su" para acceder al modo superusuario (root). Si te da un error aquí es que no rooteaste bien tu Nexus One.

8. Ejecuta "cd /sdcard/ubuntu".

9. Ejecuta "sh ./ubuntu.sh". Este script solo deberás ejecutarlo una vez (esta). Se iniciará la instalación:
http://nexusonehacks.net/wp-content/uploads/2010/07/ubuntu-android-2.jpg

10. Una vez que termine, ejecuta "bootubuntu" para "chroot"/bootear/ejecutar tu nuevo sistema Ubuntu sobre Android!
http://nexusonehacks.net/wp-content/uploads/2010/07/ubuntu-android-3.jpg

Si aparece la palabra "localhost", ¡felicidades! ¡Has instalado Ubuntu exitosamente!

Si no lo consigues, prueba reiniciando tu telefono y repite los pasos del 5 al 10 cuidadosamente.

¿Cómo consequir ver el entorno gráfico en tu Nexus One?

11. Necesitas descargar la última versión del VNC Viewer para Android: http://code.google.com/p/android-vnc-viewer/downloads/list
Instalalo en tu Nexus.

12. Ahora necesitas instalar algunas aplicaciones mediante la linea de comando de ubuntu, mediante apt-get.
Vuelve a la terminal de Ubuntu chrooteada y ejecuta:
"apt-get update"
"apt-get install tightvncserver"
"apt-get install lxde"
Tardará un rato (necesitarás conexión a internet y consumirá grandes cantidades de datos asi que asegurate de que estás conectado por WIFI).

13. Ejecuta:
"export USER=root"
"vncserver -geometry 1024x800"
http://nexusonehacks.net/wp-content/uploads/2010/07/ubuntu-android-7-499x243.jpg
Puedes establecer la contraseña del VNCServer como "123123123".

Ejecuta:
"cat > /root/.vnc/xstartup
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
icewm &
lxsession"
Pulsa Ctrl+D dos veces y pulsa intro.

14. Abre la aplicacion de VNC Viewer en tu Nexus One e introduce tu contraseña y pon el puerto 5901.

15. Pica en "connect" y ya deberías ver tu Ubuntu!

16. Para evitar tener que repetir todos estos pasos, haz lo siguiente:

17. Ejecuta:
"cat > front
export USER=root
cd /
rm -r -f tmp
mkdir tmp
cd /
vncserver -geometry 1024×800"
Pulsa Ctrl+D dos veces y pulsa intro.
http://nexusonehacks.net/wp-content/uploads/2010/07/ubuntu-android-10.jpg

Ejecuta:
"cat front /root/.bashrc > temp"
"cp temp /root/.bashrc"
http://nexusonehacks.net/wp-content/uploads/2010/07/ubuntu-android-11.jpg

Ya puedes salir con "exit".
Si deseas volver a Ubuntu, ejecuta "bootubuntu".

Nota: puedes usar un emulador de terminal para Android para bootear Ubuntu y asi no necesitar un ordenador.

Si sigues teniendo problemas:
Usa este otro fichero booubuntu:
http://zedomax.com/android/bootubuntu