domingo, 5 de julio de 2015

Un servidor en tu móvil (I)

¿Cuántos de vosotros tiene olvidado en un cajón un móvil que ya no usa?

Con el ritmo de los tiempos y el consumismo, vamos almacenando (o tirando) piezas de tecnología que hace dos años (o menos) se nos antojaban como la mayor maravilla del mundo, hasta que salió su sucesor. Salen nuevos programas y tu móvil ya no puede con ellos, tienes que desinstalar y limpiar si te quieres instalar el último juego, vas acumulando ficheros, programas, fotos, lo que sea.... y de repente: ¡anda! ¡si ya ha salido el S6! Y va una operadora y te lo vende a un módico precio que tú estás dispuesto a pagar...

La cosa es que tu viejo móvil acaba en un cajón (o en las manos de tu hija o de tu sobrino), mientras que tú disfutas de otro aparato que tiene mucha más potencia de lo que realmente necesitas.

Pues la entrada de hoy es una respuesta a la siguiente pregunta: ¿qué utilidad le puedo dar a mi antiguo móvil?

Resulta que en términos de potencia, estamos tirando a la basura o al abandono verdaderos ordenadores, que son mucho más potentes que los ordenadores de escritorio que teníamos hace unos años. Yo por ejemplo, tenía olvidado un Sony Xperia P que había dejado de usar porque la batería no intercambiable que traía me duraba unas dos horas y lo cambié por un teléfono chino que me va mil veces mejor. Pero resulta que dicho Xperia es todo un equipo con un procesador de doble núcleo, 1 GB de RAM y 16GB de almacenamiento interno. Más que suficiente para montar un pequeño servidor doméstico.



Os cuento qué es lo que hice:

Resulta que Android es, en gran parte, un sistema basado en Linux. No es que sea un Linux completo, pero posee un núcleo con las funcionalidades básicas.
En principio, podríamos pensar que podríamos utilizar Android como servidor Linux, y en cierto modo es así: existen aplicaciones (por ejemplo Servers Ultimate) que nos permiten montar servidores desde el propio Android... pero sigue sin ser un servidor completo.

Lo que yo quería era tener una distribución completa de Linux en el móvil. Para esto hay principalmente dos programas disponibles en el Play Store:



Ambas parten del mismo principio: establecen un "chroot", que no es más que un entorno virtual independiente dentro del sistema de ficheros de un sistema linux, en el que podemos instalar lo que queramos, como si se tratase de otra máquina. No es exactamente el concepto de "máquina virtual", porque realmente no hay nada que emular, se trata de la misma máquina ejecutando otro sistema operativo, independiente del principal. Se asemeja mucho al concepto de "jaula" como se conoce en FreeBSD.

Pues bien, resulta que ambas aplicaciones nos permiten establecer un "chroot" dentro del sistema de ficheros de Android, sobre el cual instalan una distribución completa de Linux: Debian, Ubuntu, Gentoo, Kali, OpenSUSE y muchas otras.

Yo he probado ambas como digo, pero me quedo con la segunda: Linux Deploy. Es mucho más versátil, falla menos y me permite hacer todo lo que le pido. A continuación os cuento los pasos principales para poner en marcha un sistema Linux completo en vuestro Android con Linux Deploy:
  1. Instalamos la aplicación.
    Este paso está claro, se trata de una aplicación gratuita y se encuentra en el Play Store en el enlace que os he puesto arriba. Sólo una advertencia: vuestro teléfono debe estar rooteado, de lo contrario no funcionará.
    Otra cosa a tener en cuenta es la memoria. Si tenéis el teléfono cargado de aplicaciones, vais a tener problemas. Yo lo que hice fue restablecer el teléfono de fábrica y dejarlo con el mínimo de aplicaciones: de hecho le desactivé muchas aplicaciones de Google que están cargando siempre la memoria.
  2. Elegimos nuestra distribución.
    Para ello, pulsamos sobre el icono inferior derecho de la pantalla principal del programa:

    Una vez que entramos en esta ventana, podemos seleccionar la distribución a instalar. Como podéis ver hay bastantes para elegir. Yo instalé Debian, a la que estoy bastante acostumbrado.

    Lo siguiente es seleccionar la versión de la distribución. Como se puede ver, yo he cogido el canal "stable", que en la fecha actual (Julio 2015) corresponde a la versión 8 de Debian, también llamada "Jessie".
  3. Configuración adicional.
    Sin salir de esta pantalla, elegiremos también las siguientes opciones, dejando el resto tal cual:
    • Seleccionar componentes: dejaremos marcado sólo "servidor SSH". El resto lo vamos a desmarcar porque en principio no nos va a hacer falta. Si lo que queremos es montar un servidor, no nos hace falta para nada un "ambiente de escritorio", ni necesitamos un servidor VNC ni por supuesto un servidor X. Todas esas opciones tienen como cometido acceder al Linux de forma gráfica. Nosotros somos más frikis y lo único que queremos es poder conectarnos desde un terminal de comandos.
    • Desmarcamos la opción "GUI".
    • Localización: la ponemos en "es_ES.UTF8, para que el sistema nos hable en nuestro idioma.
  4. Instalación.
    Una vez que hemos realizado la configuración indicada, pulsamos la primera entrada de esta pantalla, que en español dice "Instalar". Al hacer esto, la aplicación va a hacer lo siguiente:
    • Va a crear un fichero "linux.img" en nuestra tarjeta SD o almacenamiento interno. El tamaño dependerá de la distribución seleccionada. Para Debian, en principio el tamaño será de 4GB. Si queremos otro tamaño, tenemos que tener en cuenta que la tarjeta SD normalmente está formateada en FAT32, que tiene un límite de tamaño de 4GB para los ficheros, con lo que deberíamos crear una partición ext2, ext3 o ext4 y cambiar el tipo de instalación. A mí concretamente con 4GB me sobran.
    • Se va a descargar la distribución y versión seleccionadas (imprescindible tener el móvil conectado a la WIFI).
    • Va a instalar una serie de paquetes básicos necesarios para las opciones seleccionadas.
    • Una vez que está todo terminado, lo indicará por pantalla.
  5. Arrancamos nuestro Linux.
    Una vez instalada la distribución, podemos pasar a arrancarla. Para ello pulsaremos el botón "Start" o "Iniciar" de la pantalla principal de la aplicación.
    Ya tenemos el Linux funcionando. Podemos conectarnos desde nuestro ordenador abriendo un terminal SSH y conectándonos a la dirección IP del teléfono (la muestra en la pantalla principal).

    El usuario por defecto es "android", y su contraseña "changeme". Dicho usuario tiene permisos de "sudoers", con lo que mediante el comando "sudo" puede ejecutar instrucciones como root. Os recomiendo que la primera instrucción que ejecutéis sea para cambiar la contraseña del usuario "android":

                       > sudo passwd android
Y esto es todo por hoy. Ya tenemos nuestro servidor instalado y funcionando. En la próxima entrada veremos cómo optimizar el funcionamiento de todo esto.



Related Posts Plugin for WordPress, Blogger...

No hay comentarios:

Publicar un comentario