Spiga

Liberando espacio en tu Raspberry Pi

Uno de los problemas que nos encontramos con nuestras pequeñas es el escaso espacio que nos dejan las tarjetas SD. En caso que quieras ganar espacio en el sistema de ficheros (rootfs, del Inglés Root File System) puedes seguir el tutorial de "Arrancando la Raspberry Pi desde un disco duro" que ya vimos hace un tiempo. Si por el contrario lo tuyo no es liarte con configuraciones puedes probar con lo que hoy vamos a explicar.

En nuestro rootfs tenemos infinidad de carpetas que, con el uso del sistema, van aumentando de tamaño. Una de estas carpetas la encontramos en "/var/cache/apt/archives/", pero... ¿qué contiene dicha carpeta? 

Respuesta: Todos los ficheros .deb que hemos ido descargando para instalar con apt o aptitude

En principio es una ventaja, porque si eliminamos mediante remove o purge un paquete del que posteriormente nos arrepentimos de haber desinstalado, podemos volver a instalarlo sin tener que descargarlo de nuevo, ahorrando así el uso de recursos y tiempo en el sistema. Todo muy bonito, sí, pero muchos partimos con una SD de apenas 4 GB y no estamos para ir gastando espacio en "por si me lo vuelvo a descargar".

Limpiando el directorio de caché de APT

Para limpiar toda la cache de apt tenemos que lanzar un simple comando:

sudo apt-get clean

Eso sí, pensad que si volvéis a pedir un paquete que ya habíais descargado, os tocará volverlo a descargar de nuevo. Creo que merece la pena por rascar un poquito de espacio, ¿no?

Existen más maneras de liberar espacio en nuestro disco, como por ejemplo eliminando los paquetes huérfanos del sistema, que son aquellos que han quedado sin uso después de haber borrado el programa o programas del que eran dependencias. Para ello vamos a utilizar una herramienta de uso muy simple y que paso a explicaros a continuación.

Instalando Deborphan y borrando paquetes huérfanos

Para instalar deborphan simplemente escribiremos en nuestra terminal lo siguiente:

sudo apt-get install deborphan

Deborphan puede listarnos todos los paquetes huérfanos y desde ahí vamos diciéndole a APT que los elimine o purgue del sistema, aunque podemos utilizar una herramienta "gráfica" para terminal que se incluye en Deborphan: orphaner.

Para ejecutar orphaner bastará con poner en nuestra terminal:

sudo orphaner


Captura de pantalla de orphaner

Marcamos mediante la barra de espacio aquellos que deseamos eliminar y para finalizar pulsamos en "OK". Existen otras maneras de eliminar todo sin hacer uso de orphaner, como por ejemplo:

sudo apt-get purge $(deborphan)

Que le mandará la salida de "deborphan" a "sudo apt-get purge", es decir, eliminará cada uno de los paquetes huérfanos listados.

Y por último camos comprobar el espacio que nos ha quedado libre en disco mediante el uso del comando:

df

Espero que os haya sido de utilidad. ¡Nos vemos en el próximo tutorial!

Controlando la Raspberry Pi (Raspbmc) por IR

¡Buenas de nuevo! Después de otro tiempo de inactividad volvemos a la carga con un tutorial para novatos que hará las delicias de muchos.

Hace apenas un mes recibí un correo de un seguidor del blog que me pedía si podía hacer un tutorial sobre control por IR (infrared). Como me pareció una propuesta interesante pedí el componente necesario para hacerlo, que es tan sencillo y simple como un TSOP 4838.

Para los que no sean entendidos en el tema, que me incluyo, el TSOP 4838 es un receptor de infrarrojo que funciona de 2,5 a 5,5v según su datasheet, aunque nosotros lo vamos a hacer funcionar a los 3,3v que nos dan de salida los pines de GPIO de la Raspberry Pi. No os preocupéis porque funciona de maravilla.

Imagen ampliada de un TSOP 4838


El precio es de risa, y es que podemos adquirirlo en Farnell / element14 por menos de 1€. Os dejo con el enlace para los que queráis comprarlo:

Comprar TSOP 4838 en la web de Farnell España

Las ventajas son muchas si trabajamos con una distribución como Raspbmc, ya que nos va a permitir controlar XBMC con cualquier mando que tengamos en casa, sin necesidad de vernos limitados a la función CEC que implemente nuestra TV con el mando (contando que contemos con una TV con dicha característica, claro). Sin ir más lejos yo he reaprovechado un mando multimedia que tenía abandonado de mi Xbox y le he dado un nuevo uso.

Lo primero que vamos a hacer es preparar el receptor. Para ello he utilizado lo siguiente:

  • Receptor IR TSOP 4838
  • Tubo (macarrón) termoretráctil para evitar hacer soldaduras o dejarlas al aire
  • Tres cables del panel frontal (FPANEL) de un PC viejo, para no soldar a los pines GPIO
Lo que he hecho ha sido pelar los extremos de los cables del panel frontal, si mal no recuerdo el del reset y el del power, aunque da lo mismo los que uséis ya que el objetivo es aprovechar los conectores para los pines de la Raspberry. Un vez pelados he insertado en ellos el tubo termoretráctil y lo he calentado con un mechero para que haga la "soldadura" (vale, no lo hace, pero esto va a ir genial para aquellos que no tengan un soldador en casa o directamente no tengan los conocimientos para hacerlo). Os dejo con una foto del momento justo anterior a calentar dicho tubo con un mechero:

TSOP4838 con termoretráctil listo para "calentar"

El resultado final debería ser algo parecido a lo siguiente:

Una vez calentado el tubo para que hagan contacto las patas del TSOP con el cable


Ahora vamos a conectar directamente a la Raspberry. Para ello me he guiado de una excelente representación de los pines que tenemos en los foros de Stmlabs (Raspbmc). Os dejo con la imagen en cuestión para que sepáis como hay que conectar el TSOP.

Esquema de conexión a GPIO


En resumidas cuentas y para que no tengáis que comeros la cabeza: el pin 1 del TSOP al 18 de la Raspberry (DATA), el pin 2 del TSOP al 6 de la Raspberry (GROUND) y por úlitmo el pin 3 del TSOP al pin 1 de la Raspberry (3,3v).

Una vez conectado, y si no la hemos hecho nada mal a la hora de calentar el tubo termoretráctil. ya tendremos nuestro receptor funcional. La parte que viene a continuación ya es de software y vamos a necesitar Raspbmc, del que ya os he dado el enlace anteriormente. La ventaja de su última versión es que ya viene con LIRC instalado y preconfigurado, por lo que vamos a tener que hacer poquita cosa para poder ponerlo todo en marcha. De nuevo, para los que no sepan qué es os puedo decir que LIRC es un software que permite leer las entradas que hacemos por IR y, dependiendo de lo que queramos, tomar control de programas multimedia o ejecutar comandos mediante el uso del fichero lircrc (ver sección "The .lircrc file format").

Como os decía antes en Raspbmc -en su última versión estable- ya viene todo instalado y listo para que procedamos a la configuración, por lo que lo primero que debéis hacer es saber si vuestro mando se encuentra entre los ya configurados por los usuarios. Si tienes la gran suerte de tener uno de ellos puedes copiar el fichero en tu directorio personal con el nombre "lircd.conf". En mi caso no ha sido así y me he hecho mi propia configuración, ya de paso he subido el fichero y espero que vosotros aportéis el vuestro.

Paso 1:
Vamos a detener el servicio de LIRC para comprobar si nuestro receptor esta funcionando correctamente. Para ello entraremos por SSH y escribiremos lo siguiente:

sudo service lirc stop

Deberá responderos con:

pi@raspbmc:~$ sudo service lirc stop
[ ok ] Stopping remote control daemon(s): LIRC:.

Ahora probaremos a ejecutar mode2 con:

mode2 -d /dev/lirc0

Paso 2:
Si presionamos cualquier tecla de nuestro mando deberían salir un montón de letras en pantalla, de lo contrario revisa las conexiones del receptor y comprueba que esté conectado en los pines correctos (o eso o el receptor está muerto :P) Suponiendo que todo haya ido correctamente listaremos todas las posibles teclas a las que podemos asignar una función, para ello escribimos:

irrecord --list-namespace

Anotad todas aquellas que os puedan servir en Raspbmc, como por ejemplo KEY_STOP, KEY_PLAY, etc. Podéis ver el listado de las que he mapeado yo aquí, ya que me están funcionando todas sin problemas.

Paso 3:
Ahora pasaremos a crear nuestro fichero de configuración y asignaremos las teclas al mando. Para ello volvemos a escribir en la shell:

irrecord -d /dev/lirc0 ~/lircd.conf

Os pedirá que presioneis tantos botones del mando como sea posible hasta rellenar dos líneas de puntos en pantalla, es importante seguir las instrucciones que os va dando, porque de lo contrario no funcionará de forma posterior. Llegará un momento que os pedirá el nombre del botón que queréis asignar, y es entonces cuando debéis escribir los nombres que hemos obtenido en el paso 2 y presionar el botón al que queréis asignar dicha función.

Cuando hayáis terminado con todas las teclas deseadas pusláis "Intro" y debería haberos guardado un fichero de nombre lircd.conf en vuestro directorio personal en /home/pi. Con esto tenemos toda la faena hecha, por lo que volvemos a iniciar LIRC con:

sudo service lirc start

Paso 4:
Ahora falta decirle a Raspbmc que vamos a usar control remoto por IR, para ello nos vamos al configurador que tenéis en "Programas" dentro del propio XBMC, a la pestaña de "IR Remote" y allí marcad la opción "Enable GPIO TSOP IR Receiver" y "GPIO IR Remote Profile" seleccionad "Custom", que irá a cargar el fichero lircd.conf de nuestro directorio home.

Ahora os pedirá reiniciar para aceptar la nueva configuración y... ¡listo! Ya tenéis vuestro mando funcionando en Raspbmc.

Os dejo con un vídeo del mío funcionando para que os hagáis una idea.

Un saludo y espero haber sido de utilidad.