Mostrando entradas con la etiqueta android. Mostrar todas las entradas
Mostrando entradas con la etiqueta android. Mostrar todas las entradas

domingo, 9 de julio de 2017

Orange Pi

Hola otra vez.

Sí, lo sé: hace muchísimo tiempo que no escribo en el blog. Pero ¿qué le voy a hacer?, es que llevo una temporada sin tiempo para nada.

Así que hoy que tengo un ratito voy a poner aquí unos breves apuntes sobre la Orange Pi.



¿Que qué es la Orange Pi?
¿No has oído hablar de la Raspberry Pi? ¿En serio?
¿Ni de cubietruck? ¿Ni de Banana Pi? ¿Ni de Odroid? ¿Ni de Orange Pi?

Raspberry Pi

Bueno, pues todo comenzó en la Universidad de Cambridge (UK) en 2006. En la Facultad de Informática decidieron fabricar un ordenador de reducidas dimensiones en una única placa, que costase poco y que sirviera de "inspiración" a los alumnos para realizar sus propios proyectos. Recuerda un poco en sus orígenes al Arduino, pero a diferencia de aquel, el objetivo era incluir un ordenador completo, no sólo un microcontrolador.

Raspberry Pi 1 Model B


No fue hasta el año 2012 cuando salió a la venta el primer modelo de Raspberry Pi, micro-ordenador del tamaño de una tarjeta de crédito, que fue un verdadero bombazo por su relación calidad-precio. Estas fueron las especificaciones del primer modelo (Raspbery Pi 1 Modelo B):

  • Procesador: Broadcom BCM2835. ARMv6 de un sólo núcleo a 700Mhz.
  • Gráfica: Broadcom VideoCore 4, capaz de codificar y decodificar 1080p, a 250 Mhz.
  • Memoria: 256 MB.
  • USB: 2 puertos USB 2.0
  • Salida de vídeo: vídeo compuesto y HDMI.
  • Salida de audio: minijack y HDMI.
  • Almacenamiento: sin almacenamiento interno, con slot para tarjeta SD.
  • Red: conector RJ45 a 10/100Mbps
  • Otros puertos: 26 pines GPIO (General Purpose Input / Output). Mediante estos pines se pueden implementar protocolos SPI, I2C, I2S, UART, OneWire, etc.
La placa se alimentaba a 5V con un consumo de unos 700 mA, y el precio inicial fue de unas 22£ (unos 35$) más IVA.

Debido al bajo precio de la placa, de la que se han vendido millones de unidades (tanto de los primeros modelos como de los que fueron saliendo después) pronto comenzó a surgir una gran comunidad de usuarios de manera que cualquiera que la compre puede encontrar miles de páginas donde se explica como instalarle cualquier distribución imaginable de Linux: Debian, Raspbian, ArchLinux, OpenElec, Ubuntu, etc.

Además, el bus de conectores GPIO permite la conexión de cualquier dispositivo de la misma manera que lo hacíamos con un Arduino, con la gran ventaja de poder programar en cualquier lenguaje de programación y no estar limitado al C que utliza Arduino ni a su IDE.

El único inconveniente que tiene esta placa es que, a diferencia del Arduino, se trata de un hardware cerrado. Uno puede montarse con cuatro componentes y medio su propio Arduino, hay cientos de fabricantes que lo hacen, diferentes precios, diferentes variantes.... Sin embargo, Raspberry sólo lo fabrica Raspberry, aunque el código fuente sí sea abierto.

Este hecho, y la necesidad de tener más potencia a menos precio, ha provocado que a lo largo de estos años hayan aparecido distintos proyectos que emulan el concepto de Raspberry Pi, pero siempre mejorando en algo: precio, memoria, procesador, etc. Muchos de estos proyectos, además, se han hecho con la intención de que sean compatibles en software (y muchas veces también en hardware) con la placa original, de manera que lo que se puede hacer en una Raspberry se pueda hacer igual en otra placa.

Orange Pi


Y aquí es donde llegamos a hablar de Orange Pi.
Orange Pi es una alternativa barata a Raspberry, tanto de hardware como de software abierto. Esto quiere decir que quien quiera puede construirse su propia placa o comprarla ya hecha a uno de los fabricantes.

Orange Pi PC


Los creadores originales de este micro-ordenador son la empresa china Shenzhen Xunlong Software CO, y dispone de una creciente comunidad de usuarios gracias a sus bajos precios, la disponibilidad de software y una relativa compatibilidad con las Raspberry Pi.

Modelos y características

Hasta la fecha han salido una gran variedad de modelos de este dispositivo, algunas de cuyas características expongo en la siguiente tabla. La mayoría de ellos se basan en el procesador H3 o variantes de la misma marca china: Allwinner. Este tipo de procesadores es muy habitual encontrarlos en multitud de "tablets" y "Android PC" chinos debido a su gran relación potencia-precio.




Modelo CPU RAM Alm.interno Alm.externo Red Vídeo Conectores
Orange Pi Zero H2+ (Cortex-A7 cuádruple núcleo) 256MB/512MB NO MicroSD hasta 64GB Ethernet 10/100 + WIFI Compuesto Bus 26 GPIO + conector expansión 13 pines + 2 USB 2.0 + USB OTG
Orange Pi One H3 (Cortex-A7 cuádruple núcleo) 512MB Ethernet 10/100 + WIFI HDMI CEC Bus 40 GPIO + USB 2.0 + USB OTG + conector cámara + infrarrojos + MIC
Orange Pi Lite Bus 40 GPIO + 2 USB 2.0 + USB OTG + conector cámara + infrarrojos + MIC
Orange Pi PC 1GB Bus 40 GPIO + 3 USB 2.0 + USB OTG + conector cámara + infrarrojos + MIC
Orange Pi PC Plus 8GB
Orange Pi PC 2 H5 (Cortex-A53 cuádruple núcleo 64 bit) 1GB Ethernet 100/1GB + WIFI


Orange Pi Zero

Esta es la pequeña de la familia, el modelo que yo tengo actualmente.
No se trata de una placa muy potente ni tiene unas especificaciones sobresalientes. Además, no está pensada para utilizarla como ordenador de escritorio puesto que no tiene salida HDMI ni VGA.

Sin embargo, para una gran cantidad de aplicaciones, tiene potencia suficiente y además incorpora de serie puertos USB, Wifi y conector de red RJ45. A pesar de que las especificaciones indican que necesita un alimentador de unos 1,5A - 2A yo la tengo funcionando conectada a un puerto USB que supuestamente debería dar unos 500 mA como máximo.

Estas son las ventajas, pero también tiene algunos inconvenientes según mi experiencia:
  • El conector GPIO no viene incluído, sino que tienes que soldarlo a la placa o soldar directamente los cables que necesites.
  • A pesar de traer WIFI, me ha demostrado que es bastante inestable. Yo particularmente la uso por ethernet y va estupendamente.
  • El procesador H2+ se calienta una barbaridad, tanto que si empiezas a pedirle es fácil que se ponga por encima de los 80 grados. Es casi imprescindible ponerle al menos un disipador térmico para que pueda funcionar a unos 60 grados que es algo más tolerable aunque no es lo óptimo.
  • La placa tiene salida de vídeo compuesto y posibilidad de tener más puertos USB aparte del que trae soldado y el USB OTG, pero por problemas de espacio no dispone de conectores para ello, sino que tiene un bus de expansión adicional (que sí viene soldado) de 13 pines en los que están disponibles todas estas señales. Venden un adaptador de expansión que se conecta a este bus y nos permite obtener directamente los conectores.

Software

En la página del fabricante disponemos de descargas de varias versiones de Sistemas Operativos para las Orange Pi:
  • Ubuntu.
  • Debian.
  • Raspbian (Distribución Debian específica par Raspberries).
  • Armbian (Distribución Debian para dispositivos ARM).
  • ArchLinux.
  • Android.
También tenemos la página de armbian donde disponemos de las últimas versiones de esta distribución, para varios modelos de Orange Pi y otras placas similares.

Precios

El precio de la Orange Pi Zero, que es la que yo tengo, es muy barato.

A mí me costó US$15.95 (unos 14€) de oferta en Banggood un kit con:
  • Orange Pi Zero de 512MB.
  • Tarjeta de expansión (con salida de vídeo compuesto y 2 puertos USB adicionales).
  • Caja para montaje de ambos elementos.
También podemos encontrarla en Aliexpress  a un precio parecido, por ejemplo en este enlace (16.24$).

De todos modos, a lo mejor comprar la caja es una tontería, dada la temperatura que coge el cacharro estando al aire...

Conclusión

Resumiendo, la placa de la que he hablado hoy es un micro-ordenador muy barato que nos puede servir para hacer muchos proyectos distintos. Podríamos tener distintos servidores preparados y simplemente cambiar de tarjeta SD para cambiar de sistema.

Aunque sus especificaciones no son las mejores del mundo y no tiene una salida HDMI ni VGA (por tanto no es adecuada para montar un ordenador de sobremesa), sí que nos puede servir para montar cualquier servidor que se nos ocurra.

En el siguiente artículo tengo intención de hablar de un proyecto particular de domótica que estoy montando en mi Orange Pi Zero: Home Assistant.

Hasta la próxima. 

miércoles, 5 de agosto de 2015

Servers Ultimate Pro gratis hoy en Amazon

Si te parece muy complicado instalarte un servidor en tu móvil, hay aplicaciones que te permiten tener uno o varios servicios directamente desde Android: FTP, servidor web, repositorios, etc.

Entrando hoy por casualidad en la tienda de Amazon, he visto que la aplicación gratuita del día es Servers Ultimate Pro:

http://www.amazon.es/Ice-Cold-Apps-Servers-Ultimate/dp/B00E00C70C

Yo me la he bajado, para un futuro, merece la pena.

martes, 14 de julio de 2015

Un servidor en tu móvil (y II)

En el artículo anterior [Un servidor en tu móvil (I)], vimos cómo montar todo un servidor Debian Linux en un teléfono móvil con Android sin una potencia exagerada. Vamos a continuar hoy donde lo dejamos, para configurar ciertas cosas que nos pueden venir bien.

Pantalla de configuración

A diferencia de la pantalla de "propiedades" que vimos en el artículo anterior, donde podíamos seleccionar la distribución de linux y demás, a la pantalla de configuración de Linux Deploy se accede pulsando la tecla de menú de Android. Nos aparece el menú de la aplicación donde seleccionamos "configuración" o "settings":





















Uno de los principales ajustes que podemos hacer, lógicamente, es poner el idioma en español. Por defecto, al instalar la aplicación nos lo pondrá en inglés. Además, podemos cambiar el tema entre el oscuro y el claro.

Pero lo que más tenemos que tener en cuenta son los siguientes puntos:

  • Por defecto, la aplicación está configurada para que la pantalla se quede encendida todo el tiempo mientras que el Linux esté funcionando. Esta es la primera opción, que en español se llama "bloquear pantalla". Yo os recomendaría que desmarcaseis esta opción, porque de lo contrario terminaremos con un teléfono que se calienta como un demonio y una pantalla gastada, si es que realmente vamos a utilizar este invento como un servidor.
    ¿Que por qué la aplicación viene configurada así? Pues muy fácil: Android hace una gestión del procesador de manera que cuando la pantalla se apaga es porque realmente no vamos a utilizar el teléfono, y por tanto la mayoría de las aplicaciones se quedan suspendidas o con un modo de funcionamiento de "bajo consumo". El procesador entra en modo "sleep" y sólo se despierta para hacer ciertas tareas urgentes: atender a las señales provenientes de la red de telefonía, mostrar notificaciones, etc. El resultado que yo observé al principio es que, si desmarcas esta opción, el Linux sigue funcionando, pero muuuuuuuyyyyyyyy leeeeeeennnntttooooooooo.
    De todos modos, os insisto en que desmarquéis la opción y ahora vemos como solucionar este problema.
  • Bloquear Wi-Fi.
    Esta opción hay que dejarla marcada, para que no se nos desconecte el servidor de la red.
  • Autoarranque.
    Marcando esta opción, cada vez que arranquemos el teléfono se nos iniciará nuestro servidor Linux, con lo cual es muy recomendable mantenerla marcada.

Como mantener el procesador despierto


Como hemos visto antes, por defecto Android pone en modo "sleep" al procesador cuando la pantalla está apagada, y nosotros no queremos tener la pantalla siempre encendida para que funcione bien nuestro servidor.

Hay una pequeña aplicación que nos permite evitar que el procesador se duerma y se denomina "RedEye Stay Awake". Su versión gratuíta, con algo de publicidad puede descargarse aquí:


Como su nombre indica, esta aplicación le pone los "ojos rojos" al procesador porque no le deja dormir, y hay varios métodos para hacerlo. Podemos elegir el método en la opción "awake level":


El método que debemos elegir es "CPU awake only", porque todos los demás mantendrán la pantalla encendida en mayor o menor medida.



Otras opciones que debemos seleccionar son las que se ven en esta pantalla: "start at boot" para que la aplicación se inicie al arrancar el teléfono y no nos tengamos que preocupar por iniciarlo y "enable at startup" para que se active el mantener despierto al procesador al iniciar la aplicación. De lo contrario necesitaríamos pulsar sobre el icono de la barra de notificaciones para activar este modo la primera vez.

Una vez que tenemos todo así configurado ya no tenemos que preocuparnos porque se inicie correctamente el servidor. Tendremos un servidor que se inicia cuando encendemos el teléfono y además lo tenemos configurado de manera que no duerma nunca.

Iniciando los servicios automáticamente

Por último vamos a ver cómo configurar nuestro Linux para que los servicios que tengamos instalados se arranquen correctamente.

Supongamos que instalamos un servicio como Apache o MySQL. Al instalar los paquetes con las herramientas estándar como apt-get o dpkg, se nos van a crear los scripts de inicio de los servicios como es normal, de manera que podemos iniciarlos a mano con el comando "service":

           > service apache2 start
           > service apache2 stop
           ...

Sin embargo, si reiniciamos el Linux observaremos que los servicios no se inician automáticamente..

Inicialmente se me ocurrió instalar el comando rcconf (apt-get install rcconf) que yo he usado otras veces. Se trata de una pequeña utilidad que nos permite activar o desactivar el arranque automático de los servicios instalados, de una manera muy gráfica. Pero fue en vano: a pesar de que los servicios están en teoría activados, la realidad es que no se inician en el inicio del sistema.

La solución es la siguiente: dentro de la pantalla de "propiedades" de Linux Deploy hay una opción que se llama "Scripts personalizados". Hay que activar esta opción y después se nos activa otra entrada que dice "Lista de scripts". Pulsando sobre esta opción nos aparece la siguiente pantalla:
La pantalla no es más que una lista de los servicios que queremos iniciar automáticamente. Pulsando la tecla de menú podemos dar de alta, modificar o dar de baja elementos de la lista. Cada elemento de la lista debe ser la ruta al script del servicio. Concretamente vemos en la pantalla que yo tengo puestos tres servicios en arranque automático: MySQL, Apache y el cron.

Y esto es todo de momento. Más adelante veremos cómo instalar ciertos servicios en nuestro flamante servidor.


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.