Escribía hace unos días sobre el control de relés con una Raspberry Pi. Este fin de semana, en el que he vuelto a Córdoba tras mucho tiempo sin regresar, hemos sacado, entre mi padre y yo, el primer partido al sistema anteriormente descrito:
Hemos conectado la electroválvula que controla el riego del jardín a uno de los relés. Mediante el uso del software WebIOPi controlamos desde un móvil o un PC la apertura de la válvula de riego. Y eso, aunque no está nada mal, no se presta demasiado bien a la automatización. Para ello, he desarrollado un pequeño script que permite controlar la electroválvula desde línea de comandos. Y, por descontado, invocarla desde el cron del sistema.
Siguiente paso: controlar el encendido de la depuradora de la piscina, del sistema de luces de la misma, y del sistema de riego por goteo del patio trasero.
Etiquetas: electroválvula, jardín, raspberry pi, relé, rpi
…o en xbian, o en cualquier otro sistema operativo linux para Raspberry Pi. Uno de los problemas que estoy viendo que son más habituales a la hora de manejarse con la RPi es que las tarjetas de red inalámbricas por USB no suelen disponer de drivers adecuados para funcionar.
O al menos, las dos que yo he comprado, adolecían de este problema. ^_^ En el caso concreto de la TP-Link TL-WN725N, existen, al parecer, dos versiones: la v1 hace uso del chipset RealTek RTL8188CUS (que sí cuenta con soporte nativo en la RPi), la v2 utiliza el chipset RTL8188EUS, que no lo tiene, por lo que es preciso andar compilando, algo que en la RPi suele ser un tanto doloroso. Pero que, dado que se cuenta con fuentes adecuadas, tampoco es excesivamente complicado.
Lo que sí hay que tener en cuenta, según he podido descubrir, es que el driver, compilado directamente de las fuentes, tiene dos problemas tal y como viene de fábrica: el led de estado no funciona, y vuelca demasiada información de debug en los logs de sistema. Esto último, en el caso de la RPi, que hace uso de tarjetas microSD para albergar el sistema operativo, puede ser bastante grave, tanto por problemas de rendimiento como por desgaste del dispositivo. Por suerte, se puede modificar la fuente del código para solventar este problema antes de la instalación. Los pasos a seguir son los siguientes:
Obtener el código necesario para compilar el driver
git clone https://github.com/liwei/rpi-rtl8188eu.git
git clone –depth 1 git://github.com/raspberrypi/linux.git rpi-linux
git clone –depth 1 git://github.com/raspberrypi/firmware.git rpi-firmware
Modificar el fichero rpi-rtl8188eu/include/autoconf.h
Es preciso modificar dos aspectos: descomentar la línea #define CONFIG_LED, y comentar la línea #define CONFIG_DEBUG_RTL819X. En el siguiente diff puede verse de manera más clara:
diff -Nauw ~/src/pi_plus/linux/drivers/net/wireless/rtl8188eu/include/autoconf.h include/autoconf.h
— /home/pi/src/pi_plus/linux/drivers/net/wireless/rtl8188eu/include/autoconf.h 2013-05-02 19:39:42.177227144 +0100
+++ include/autoconf.h 2013-05-03 00:22:52.383030986 +0100
@@ -156,7 +156,7 @@#define CONFIG_SKB_COPY 1//for amsdu
-//#define CONFIG_LED
+#define CONFIG_LED
#ifdef CONFIG_LED
#define CONFIG_SW_LED
#ifdef CONFIG_SW_LED
@@ -328,7 +328,7 @@
//#define CONFIG_DEBUG_RTL871X#define DBG 1
-#define CONFIG_DEBUG_RTL819X
+//#define CONFIG_DEBUG_RTL819X#define CONFIG_PROC_DEBUG 1
Compilar e instalar el driver
Seguimos con la receta anterior:
cd rpi-linux
make mrproper
zcat /proc/config.gz > .config
make modules_prepare
cp ../rpi-firmware/extra/Module.symvers .
cd ../rpi-rtl8188eu
CONFIG_RTL8188EU=m make -C ../rpi-linux M=`pwd`
sudo rmmod 8188eu
sudo install -p -m 644 8188eu.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless
sudo depmod -a
sudo modprobe 8188eu
Con todo ello, quedará correctamente instalado el driver para poder utilizar esta tarjeta.
Las fuentes de este artículo son las siguientes:
Bonus extra
En la raspbian pelada y mondada, tal y como viene de fábrica, no se disponen de los elementos necesarios para compilar drivers, ni para hacer funcionar una tarjeta wifi. Es necesario, al menos, instalar lo siguiente:
Para realizar la instalación de lo anterior, lo de siempre en sistemas de la familia Debian:
apt-get install build-essentials git wireless-tools usbutils wpa-supplicant
Etiquetas: debian, raspberry pi, raspbian, rpi, tl-wn725n, tp-link