Delirios de un Informático

Sensores de temperatura para LCDproc

En el anterior post explicaba cómo programar clientes para LCDproc usando únicamente Perl. Pues bien, como de serie no trae ninguna pantalla que muestre información de los sensores de temperatura de la placa base y el procesador, he programado un script que lo hace: sensors.pl. Basta ejecutarlo para que muestre una pantalla con las temperaturas de la placa base, north bridge, procesador, tarjeta gráfica, discos duros y las revoluciones del ventilador principal:

sensors.pl

Requiere tener instalados lm-sensors para la temperatura de la placa base y procesador, hddtemp para los discos duros y nvclock para la tarjeta gráfica NVIDIA. Está preparado para una pantalla de 20×5, pero es fácilmente adaptable, añadiendo o quitando líneas. El código es muy claro y es sencillo modificar los sensores que se deben mostrar o añadir nuevos….

Programar clientes para LCDproc en Perl

Ya he hablado de LCDproc en este blog, pero aunque está muy bien las pantallas disponibles son limitadas y al estar programado en C, si no dominas el lenguaje es complicado programar tu propio cliente para mostrar lo que necesites. Para los aficionados al scripting en vez de a la compilación existe perl-LCDd, un pequeño módulo Perl que proporciona una clase para interactuar con la pantalla y así mostrar los datos que se desee. Viene con un ejemplo muy sencillo que ayuda a crear el primer cliente, así como con documentación de los métodos de la clase.

Actualización: para los mas frikis, ésta es la documentación oficial que permite crear un cliente. Es la especificación para comunicarse con el servicio, que puede hacerse incluso por telnet.

Logitech G15 y LCDproc en Debian

Ya hace unos meses que comenté cómo hacer funcionar un Logitech G15 en Debian con los controladores específicos y utilizando scripts especialmente programados para su pantalla LCD. Pero hasta ahora no había probado LCDproc, un software que permite el uso de pantallas LCD genéricas (utilizadas mucho en las cajas de los equipos) y que en su versión 0.5.2 añade soporte para este teclado.

El primer problema es que es necesario instalar la versión de los repositorios Experimental, ya que la versión de los repositorios estables es la 0.4.5, sin soporte para el G15. Para eso, deberemos añadir a nuestro /etc/apt/sources.list lo siguiente:

deb http://ftp.fr.debian.org/debian/ experimental main contrib non-free

Y luego instalar el programa:

sudo apt-get install -t experimental lcdproc

Una vez instalado se inicia automáticamente el daemon y debería aparecer LCDproc Server en la pantalla del teclado, pero no es así. Una llamada a lcdproc nos devuelve:

sock_connect: connect failed
Error connecting to LCD server 127.0.0.1 on port 13666.
Check to see that the server is running and operating normally.

Y el registro del sistema muestra:

Nov 22 09:41:37 vito LCDd: Could not open driver module server/drivers/g15.so:
server/drivers/g15.so: cannot open shared object file: No such file or directory
Nov 22 09:41:37 vito LCDd: Driver [g15] binding failed
Nov 22 09:41:37 vito LCDd: Could not load driver g15
Nov 22 09:41:37 vito LCDd: There is no output driver
Nov 22 09:41:37 vito LCDd: Critical error while initializing, abort.

Es decir, que no se ha compilado con el controlador para el G15, por lo que habrá que compilarlo a mano:

wget http://ftp.de.debian.org/debian/pool/main/l/lcdproc/lcdproc_0.5.2.orig.tar.gz
tar xzvf lcdproc_0.5.2.orig.tar.gz
cd lcdproc-0.5.2
./configure --enable-drivers=g15
make
sudo cp server/drivers/g15.so /usr/lib/lcdproc/

Y una vez compilado el controlador y copiado en su directorio, es necesario configurar el daemon editando el archivo /etc/LCDd.conf y modificando las siguientes líneas:

Driver=g15
DriverPath=/usr/lib/lcdproc/

Tras esto, tendremos todo listo y un sudo /etc/init.d/LCDd restar debería mostrar información en la pantalla y se podrá ejecutar el comando lcdproc normalmente.