Páginas

martes, 26 de noviembre de 2013

El prometedor mundo Raspberry Pi

En mi manifiesto hablaba de mis aficiones, entre las que se encontraba Arduino, pero olvidaba comentar el maravilloso y prometedor mundo Raspberry Pi. En el momento en que creé el blog no contemplaba dentro de mis planes utilizar Raspberry Pi, pues el Linux empotrado que requería para mis desarrollos lo resolví adaptando un miniPC Android MK802 al entorno Linux, instalándole una de las distribuciones que probé y que me pareció era la más estable, pues requería pocos recursos. Estaba basada en una versión ligera de Ubuntu 12.04, que utilizaba el entorno gráfico de usuario LXDE. Aunque fue una buena experiencia, el dispositivo no daba para mucho, andaba justo de potencia y había que ir pensando en buscar otra solución. Y la solución llegó antes de lo esperado.

Las circunstancias, y el mal tiempo, hicieron que esta solución quedase descartada, eso sí, después de probar que la solución implementada, sistema de riego controlado mediante móvil, funcionase perfectamente. Un día de lluvia fue el causante que se mojase el hardware y el sistema dejase de funcionar.

El Raspberry Pi, de un vistazo

En el tamaño de una tarjeta de crédito se ha implementado este potente ordenador, que dispone de salida HDMI, dos puertos USB, un conector RJ-45 para conexión a red local por cable Ethernet, un conector para enchufarle una tarjeta de memoria SDcard, en donde instalaremos el sistema operativo, 512 Mbytes de RAM, conector RCA para vídeo y otro conector para salida de audio. Todo ello se alimenta con un alimentador de 5V/1.2A mediante el conector microUSB que dispone para tal fin, y solo para tal fin. Se le puede conectar una cámara de vídeo y posee otros conectores, de 26 y 10 pines, para poder comunicarse con el mundo exterior.
Decir también que existen dos versiones que hay que tener en cuenta, pues las diferencias, aunque mínimas, afectan  al desarrollo de las aplicaciones. La versión que dispongo es la rev2, la más reciente.
Los dos puertos pueden usarse para conectar un adaptador WiFi y otro para integrar un teclado y ratón inalámbricos. Eso es lo que he hecho.
En la siguiente ilustración se muestra las posibilidades que ofrece el sistema.

Mis primeros pasos con Raspberry Pi

Lo primero que hay que hacer es instalar un sistema operativo. Pero ¿cual instalamos? De todos los sabores de Linux para Raspberry Pi, me decanté por Raspbian, una portabilidad no oficial realizada a partir de Debian Wheezy. Parece ser que sí existe versión basada en Ubuntu (Building Ubuntu for the Raspberry Pi), que es la que utilizo en mis PCs, pero navegando por la red y viendo lo que había es lo que me ha decidido finalmente decantarme por Raspbian.
Me he ido a la página de descargas de Raspberri.org y ahí me recomiendan que me baje no uno sino un paquete de sistemas operativos y en fase de instalación decida qué sistemas instalar.
1) Me bajo la última versión, v1.3.2, de NOOBS (offline and network install), con un tamaño de 1,2 Gbytes. Existía la posibilidad de bajarme otro fichero más pequeño, NOOBS Lite (network install only), pero por si surgieran problemas de conexión a Internet me he decantado por el primero. Y también hubiera podido bajarme varios ficheros, cada uno con distinta versión de sistema operativo.
2) Lo descomprimo donde me apetezca. Por ejemplo, en donde lo he descargado.
3) Formateo a FAT32 una tarjeta SD, de más de 4 Gbytes de memoria. Para ello, y como mi entorno de trabajo es Linux Ubuntu 13.10, utilizo gparted.
4) Copio todo el contenido de la carpeta donde se ha descomprimido el fichero en la tarjeta SD.
5) Inserto la tarjeta SD en la ranura existente en Raspberry.
6) Conectaremos a la tarjeta Raspberry: a) el cable HDMI que, a su vez, conectaremos en el otro extremo al monitor de televisión, b) el adaptador WiFi en uno de los dos puertos USB, c) el cable de red al puerto RJ-45 LAN por un lado y por el otro a la red local (router o switch); y d) en el segundo puerto USB el teclado y ratón inalámbricos. He preferido conectar el cable de conexión a red local en previsión de problemas a la hora de reconocer el adaptador WiFi.
7) Finalmente alimento la tarjeta Raspberry Pi con un alimentador de 5V/1,2A y espero a que algo aparezca por la pantalla del televisor, lo que no tarda mucho en aparecer.
A primera vista, sorprende la calidad y nitidez de la imagen mostrada, y que de acuerdo al televisor, se está proyectando con una resolución de 1920x1080x60p, FullHD.

Selección de los sistemas operativos a instalar

Lo primero que nos aparece en pantalla es un panel con una lista de los sistemas operativos disponibles. Algunos se encuentran en la tarjeta SD y otros están disponibles si disponemos de conexión activa a Internet, distinguiéndolos mediante el icono correspondiente que aparece en la columna de la derecha.
También tenemos la posibilidad de elegir el idioma (pero olvidémonos del español, ya que no aparece) y la configuración del teclado. Otro dato importante que nos aparece es la memoria disponible en la tarjeta SD, y que a medida que vayamos seleccionando los sistemas operativos que queramos instalar se nos irá actualizando el tamaño de la memoria requerida, teniendo en cuenta que no debemos sobrepasar la memoria disponible. En mi caso, utilizando una SD de 8 Gbytes, solo pude curiosamente seleccionar dos sistemas operativos.
No existe opción de seleccionar la salida de vídeo compuesto, ya que siempre queda seleccionada para HDMI. Si pulsamos las teclas 1,2,3 o 4 podremos ir cambiando el modo de selección de pantalla. 1) HDMI, 2) HDMI VGA, 3) vídeo compuesto PAL y 4) vídeo compuesto NTSC.
En este proceso de instalación podemos invocar ayuda online, así como editar los parámetros de configuración de cada sistema operativo elegido.
Pulsando el icono de Install, se iniciará el proceso de instalación y simultáneamente nos irá presentando de forma amena el progreso del mismo, para terminar con un panel en donde se listan los sistemas operativos instalados, dándonos opción a elegir el sistema que se ejecutará. Si no hacemos nada, este elección es persistente entre arranques, por lo que al cabo de un tiempo se ejecutará el último sistema operativo que hayamos arrancado. Aunque siempre cabe la posibilidad de elegir otro, que pasará a ser el nuevo sistema a arrancar por defecto.
Y eso ha sido todo. Tengo una tarjeta Raspberry Pi v2 funcionando perfectamente y dispuesta a hacerle todo tipo de perrerías. En la siguiente entrada sobre Raspberry Pi hablaré del modo de comunicarme con el exterior a través del conector de 26 pines con interfaces especializados (SPI), I²C, I²S, UART o directamente con los pines del GPIO.

Enlaces

- Linux distributions that can run on an MK802 Mini PC
- Raspberry Pi
- Building Ubuntu for the Raspberry Pi
- Raspberry Pi Wiki
- Raspbian
- GitHub NOOBS

viernes, 15 de noviembre de 2013

El portátil que quería ser autista y no lo consiguió

Reciclando un portátil

El paso del tiempo no solo lo sufren las personas. También, y en mayor medida, y porque la sociedad de consumo nos ha acostumbrado a ello, lo que en su momento era lo más novedoso, en muy poco tiempo pasa a ser una antigualla.
Me refiero a un portátil, sí de un portátil, de cuando aún los portátiles estaban de moda.
El portátil en cuestión era y es, porqué aún no se ha estropeado, el modelo Inspiron 1721 de la marca Dell, del año 2007. Las características básicas del equipo son las siguientes:
Procesador:  AMD Turion(TM) 64 X2 Mobile Technology TL-60 x 2
Memoria:     4 Gbytes
Disco Duro:  160 Gbytes
Tarjeta
Gráfica:     ATI RADEON Xpress1270 HyperMemory
Tamaño:
pantalla:    17"
Resolución:  1440 X 900 píxeles
además de venir equipado con WiFi, Bluetooth, conector RJ45, modem, DVD, WebCAM y varias entradas USB. No estaba nada mal. El hardware era suficientemente potente, adecuado para el uso que se le iba a dar.
Pero había un pero. Venía equipado, como era casi lo normal, con Windows, en aquel momento con la versión de Vista. En principio, a pesar de que en aquella época el pasar de Windows XP a Vista suponía un pequeño esfuerzo, era un esfuerzo asumible, aunque no fuese nada evidente adivinar el porqué del cambio ni las mejoras que comportaban este mini salto cuántico. Posiblemente, sería cuestión de marketing ¿no? y de aspecto...y, sobre todo, incordiar a los sufridos usuarios acostumbrados a un entorno, Windows XP, que prácticamente dominaban lo suficiente para lo que tenían que hacer.
Pero como ocurría y ocurre con todas las versiones del sistema operativo Windows, el paso del tiempo no es que hace que el equipo se vuelva obsoleto, que sí ocurre pero lentamente, sino que el equipo se vuelve lento ¿de reflejos?, pesado ¿engorda? , le cuesta arrancar ¿dormilón?, etc., etc. y para un usuario normal, esta degradación del sistema se le hace enojoso e insufrible.

Primera opción

Y llega el día en que alguien propone una cura de adelgazamiento. Lo primero que se hace es desinstalar todo lo que no se utiliza. Después, se bloquean todos aquellos servicios que no sirven para nada y que se activan nada más arrancar el portátil. Y finalmente, se limpia el Registro del sistema (algo delicado pero que sorprende por la cantidad de basura que se va acumulando - parece la evolución del ADN con cadenas que aparentemente no sirven para nada.
Y no nos olvidemos del tan sufrido pero necesario programa que debemos tener activo en un entorno de Windows: el ANTIVIRUS, el que nos protege de los ataques exteriores, de los troyanos, del malware. Eso es peor que una guerra. Cambiamos de antivirus y aparenta funcionar mejor, pero no, es solo aparente.
Y esta cura de adelgazamiento, como todas las curas de adelgazamiento, no hace milagros. Será que nada más hacer la cura de adelgazamiento, algo se nota, pero los defectos propios del sistema permanecen y en poco tiempo vuelve a ralentizarse y desesperar al desgraciado usuario esclavo del sistema operativo Windows.

Segunda opción

Ampliar la memoria RAM como primera medida, para que los programas que hemos ido actualizando y requieren más memoria puedan funcionar más alegremente. Pero el sistema que es un portátil ya venía con el máximo de memoria admisible por hardware. Opción desechada.

Tercera opción

Cambiar el portátil por otro más actual, que venga con una CPU mucho más potente, memoria RAM de 8 Gbytes o más, y de disco duro, de varios TeraBytes. Pero claro, esta opción es cara pero se opta por dar el salto y gastarnos unos eurillos con tal de mantenernos al día y podamos seguir utilizando las aplicaciones que nos son precisas. Dicho y hecho.
Ahora tenemos un portátil más potente, evidentemente con Windows, y corriendo todas las aplicaciones que utilizábamos en el antiguo. La sensación es que hemos mejorado claramente. El portátil responde mejor a nuestros requerimientos, parece que vuela, parece como que fuera el portátil viejo cuando era joven. Pero no, no era eso. Era que las aplicaciones habían aumentado en requerimientos y eso obligaba a reponer el hardware por otro más potente.
Pero el problema persistía. El sistema operativo Windows se va volviendo lentorro y progresivamente insufrible...pero así está el panorama...actualmente.

Opción final...pero con problemas

Llegados a este punto teníamos dos portátiles, uno más actual y otro que teniendo la potencia de los smartphones y tablets actuales era más lento que el caballo del malo, y que se utiliza para ciertas cosillas: oír música y ver películas, siempre que te armes de valor y de paciencia.
Pero llega alguien y propone darle vida al viejo y obsoleto portátil, insuflarle una vitalidad que lo hagan de nuevo atractivo. ¿De qué manera? Instalándole un sistema operativo Linux, sistema operativo que está instalado en multitud de equipos que utilizamos sin saber que en sus tripas funciona el sistema operativo Linux, un descendiente del sistema UNIX, y que también ha servido como base para desarrollar otros sistemas como iOS (basado en UNIX) y Android (basado en LINUX).
Dicho y hecho. Se optó por instalar la versión de Ubuntu 12.04 LTS (Precise Pangolin). Y se instaló. Funcionaba casi a la perfección. Y más alegremente. Los vídeos se veían muy bien y la música también se oía de maravilla. ¿Sí? No. Los vídeos y la música que tuviéramos localmente, en el disco duro, se reproducían sin mayores problemas. Pero si queríamos oír música o ver vídeos que estuvieran en Red o en Internet, no era imposible. La conexión del portátil a Internet, o a la red local, por WiFi no era imposible.
Pero lo primero que hice fue reinstalar el Linux 12.10 (Quantal Quetzal). Como en la versión anterior, se instaló sin problemas, desde un pendrive. Pero como en la instalación reconoció la red Ethernet, opté porque fuese actualizando el software que fuera pertinente. Al final de la instalación se reinició el equipo; y continuó funcionando en red cableada. Pero la conexión vía WiFi no funcionaba. Al menos no estaba peor que antes de la reinstalación, ya que conservaba una conexión, la RJ45 cableada, funcionando, lo que me permitió actualizar, aún más, todo el software que se había instalado, y que me proponía el sistema que hiciera. Y eso que pensaba que se había actualizado todo durante la instalación. Pero no, aún faltaban más actualizaciones, actualizaciones que se cargaron la conexión RJ45 por cable.
¿Qué podía hacer? Tenía que haber una solución. Y como siempre había que buscarla en Internet

Solución

Parece ser que el problema estaba en el tipo de chip que utilizaba para gestionar la red WiFi, el BCM4311, que esta versión de Ubuntu no lo contempla adecuadamente.
Después de experimentar con varias propuestas encontradas en la Red, encontré la que realmente funcionó:
sudo apt-get remove --purge bcmwl-kernel-source
apt-get purge bcmwl-kernel-source
sudo apt-get install linux-firmware-nonfree
Con estas tres líneas resolví ambas conexiones, la de por cable RJ45 y la de  WiFi. Pero al principio tuve mis dudas de cómo hacerlo. Hay que tener en cuenta que me había quedado sin ningún tipo de conexión. Afortunadamente la primera sentencia no requería conexión. Ni la segunda, Y, también afortunadamente, una vez ejecutada la primera línea, recuperé la conexión por cable. Ejecuté la tercera sentencia y automáticamente me reconoció todas las redes WiFi existentes en la zona. Introduje la contraseña de mi red WiFi y se conectó sin mayores problemas.
Entre paso y paso, estuve reiniciando el Portátil varias veces.
Y eso es todo. Era preciso hacer una 'pequeña' introducción y confío que no haya sido excesivamente larga. Si es así es cuestión de ir directamente a este apartado.
Ahora mi amiga tiene un Portátil que funciona perfectamente, que es alegre, que responde con prontitud y que se conecta a la red sin ningún problema. Y confío en que con el paso del tiempo no se vaya ralentizando como probablemente ocurriría con Windows. En Linux esto no ocurre.
Por cierto, y se instaló sin problemas Spotify, que era una de las razones imprescindibles para tener WiFi funcionando.
sudo gedit /etc/apt/sources.list
añadimos al final del fichero la siguiente línea
deb http://repository.spotify.com stable non-free
y ejecutaremos las siguientes líneas desde un terminal
sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 94558F59
sudo apt-get update && sudo apt-get install spotify-client

Referencias

Aunque indique que es para las versiones 12.04 y 13.04 de Ubuntu, también funciona para la versión 12.10.
Broadcom STA driver broken after updates today
Este enlace y el siguiente me sirvió para documentarme del problema, de las posibles soluciones y de cómo preguntar a Google por una posible respuesta.
b43 and b43legacy
Los siguientes enlaces fueron consultados, me dieron cierta información, pero no los apliqué para solucionar el problema
Ubuntu 11 and Broadcom BCM4311
Dell:Repository/firmware
Dell:Manuals and Documents for Inspiron 1721
Como Instalar la tarjeta wireless Broadcom en Ubuntu 12.10 Quantal Quetzal
Broadcom Corp. BCM4313 Wireless not detected in Ubuntu 12.10

Instalar Spotify en Ubuntu 12.10 ‘Quantal Quetzal’

martes, 5 de noviembre de 2013

Ubuntu 13.10 (saucy salamander), zeitgeist y el bloqueo de los iconos en el lanzador de Unity

Los sufridos problemas al actualizar Ubuntu

No escarmiento. Siempre me ocurre lo mismo. Nada más salir una nueva versión de Ubuntu, no tardo ni dos días en que decido actualizar el ordenador de escritorio que tengo con la última versión. En este caso, con la versión 13.10 (aka saucy salamander).
A pesar de todo, una vez actualizado, el sistema me arrancó perfectamente, y aparentemente no se observaron cambios enormes ni problemas que me dejasen el PC para formatear el disco duro e reinstalar la versión anterior.
Pero poco a poco van apareciendo ligeras diferencias con respecto a lo acostumbrado, incómodas al principio, pero útiles a la larga. Por ejemplo, el gestor de archivos que se instala por defecto es el de siempre, Nautilus, con alguna funcionalidades suplementarias.
Aparte del propio sistema operativo, se actualizan aplicaciones para que puedan funcionar sin problemas con la versión 13.10. ¿Sin problemas? Bueno, no exactamente. Otro ejemplo que me ha llevado tiempo y que no he conseguid resolver totalmente ha sido la versión 2.8.6 de GIMP que se instaló por defecto. Funcionaba todo salvo un pequeño incordio, pero que hacía inoperante el programa. El panel lateral de herramientas ocupaba la mitad de la ventana. No hubo manera de poder dejarlo a mi gusto, más estrecho. Al final me decidí instalar la versión 2.9.1 del siguiente modo:
sudo add-apt-repository ppa:otto-kesselgulasch/gimp-edge
sudo apt-get update
sudo apt-get install gimp
funcionando casi a la perfección... ¿si? no, no me funciona la integración de GIMP 2.9.1 con ufraw, programa que me permite importar ficheros RAW a GIMP. Yo utilizo imágenes con el formato .NEF de NIKON y es el único modo que yo se de importar este tipo de ficheros al editor de imágenes GIMP. Y continúo sin resolver el problema.
Pero otras sutiles diferencias, más que sutiles eran y son errores, errores que sin dejar el ordenador maltrecho, me resultan un paso atrás en comparación de lo que tenía. Y me refiero al lanzador de Unity.

El lanzador (launcher) de Unity

Con el paso del tiempo me acostumbré al nuevo interfaz de usuario, Unity, el que trae por defecto Ubuntu desde la versión 11.04. El cambio fue radical pero con el tiempo me fui acostumbrando al nuevo modo de operar. Sobre todo, por la barra de iconos que se mostraban en la izquierda del escritorio y que es conocida como lanzador (de aplicaciones) o launcher.
Puedo crearme tantos iconos como quiera, puedo ordenarlos a mi gusto, y hasta puedo asociar a cada icono una lista de opciones que se muestran cuando pulso el botón derecho del ratón sobre cualquier icono, opciones que puedo definir a mi gusto, siempre y cuando sean acciones aceptables por la aplicación pertinente.
 Llegados a este punto, se podrá entender fácilmente lo que me pasaba y que no había manera de solucionar. Lo que me pasaba era que cuando instalaba una aplicación, automáticamente se mostraba un icono de la aplicación en el lanzador, para que me fuera fácil abrir el navegador. Por ejemplo, el icono de Google Chrome es un icono que se incluyó en el lanzador cuando instalé el navegador Google Chrome. Si soy de los que instalo miles de aplicaciones, podéis imaginar que los iconos que pueden mostrarse en el lanzador pueden llegar a ser incontables. Afortunadamente, pensé, aparece en la lista de opciones la de 'No mantener en el lanzador'. Pues aunque aparecía como opción, esta opción no funcionaba. Ni tampoco funcionaba mover un icono a otro lugar en el lanzador. Ambas posibilidades estaban bloqueadas.
Después de varios intentos, durante varios días de búsqueda en Internet, por fin encontré el modo de solucionar este par de problemas. Y consistía, ¿quién podía llegar a imaginarlo?, en borrar un fichero caché del programa zeitgeist, programa que se encarga de registrar todas las actividades que realizas en tu PC. Con este programa Ubuntu puede buscar y encontrar fácilmente cualquier cosa que se encuentre en nuestras unidades de almacenamiento. Y no, no tiene nada que ver con el documental con el mismo título, Zeitgeist: The Movie, que quizás alguno de vosotros hayáis visto. Recomiendo verla al que no la haya visto.

Procedimiento para solucionar el problema

Solamente hay que borrar el siguiente fichero:
~/.local/share/zeitgeist/activity.sqlite
No dudo que habrá razones para ello, pero así, de primeras, me cuesta entender la relación que existe entre el lanzador de Unity y el programa zeitgeist. En estos casos, resuelto el problema, no suelo perder más el tiempo intentando buscar el porqué ocurre esto. Evidentemente, está registrado como un gazapo (bug) del interfaz Unity; y que supongo resolverán con el tiempo.

Alternativas 'clásicas'

En la transición en la que me encontré mientras aprendía a utilizar el lanzador de Unity, recurrí a un programa que me permitía acceder a todas las aplicaciones (o a casi todas) que tenía instaladas, a la antigua usanza, mediante menús desplegables en la barra superior de Unity. Este programa es el Classic Menu Indicator.
El modo de acceder de este modo a las aplicaciones no es tan directo, pero la ventaja es de que se encuentran casi todas las que están instaladas en el PC. Este programa lo continúo utilizando frecuentemente, para aquellos programas que no se encuentran en el lanzador del escritorio.

Enlaces

- In 13.10 “unlock from launcher” option isn't working
- Comment 6 for bug 1233199
- Zeitgeist: Controla tus actividades en el ordenador
- Classic menu indicator

- Zeitgeist: The Movie