LCD and remote control configuration

For marcos.

  1. Setup LIRC - apparently, this works with 0.8.6, but stable has 0.8.3 and unstable has 0.9.0~pre1. I tried the latter but got stuck on:
Driver `imon' not supported.

. i even tried using the imon module (which should be in kernels 2.6.35 and above) from scratch using the 0.8.3 package(!) but it failed:

insmod: error inserting '/lib/modules/2.6.32-5-amd64/misc/lirc_imon.ko': -1 Unknown symbol in module

. seems like this is bound to fail while we wait for a backport of the kernel and/or lirc 2. connect with XBMC

Other useful pages:

Another attempt:

##options lirc_imon is_lcd=1
options imon display_type=1

both drivers seem to work, but not really. regardless of the arguments passed above, I can't write anything on the screen. normally i should just be able to:

echo foo > /dev/lcd0

but that doesn't work: either i get "invalid argument" (display_type=2) or nothing happens (display_type=0 or 1).

The above does make the remote work however, with the "imon" driver. The "funniest" part is that the power button actually starts the shutdown sequence on the server. :P

The LCD problems are probably due to the complexity of the device, which makes it unusable from the CLI. The kernel source code indeed mentions that it's a full 16x96 pixel display: http://lxr.linux.no/linux+v2.6.38/drivers/media/rc/imon.c#L886

There's a bug report opened with a patch to support this device here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=505756

I have tried compiling the latest version (0.5.4) but it complains about -fPIC stuff:

gcc -fPIC -Wall -Wall -O3 -Wno-unused-function -shared  -o irman.so irmanin.o -lirman -ldl
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/libirman.a(irfunc.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/libirman.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[3]: *** [irman.so] Erreur 1
make[3]: quittant le répertoire « /home/anarcat/dist/lcdproc-0.5.4/server/drivers »
make[2]: *** [all-recursive] Erreur 1
make[2]: quittant le répertoire « /home/anarcat/dist/lcdproc-0.5.4/server »
make[1]: *** [all-recursive] Erreur 1
make[1]: quittant le répertoire « /home/anarcat/dist/lcdproc-0.5.4 »

By compiling with ./configure --enable-drivers=imonlcd, it works however. :) I can just throw the resulting .so in the /usr/lib/lcdproc directory and voila, it works even without recompiling lcdd.. :P

LCDd config

This config is tuned for the specific LCD i have. I have also modified lcdproc to taste and added a init script for it to start at boot. (see DebianBug:619454)

[server]
Driver=imonlcd
WaitTime=3
ServerScreen=no
GoodBye="Marcos' LCD died."
## [...]

## see http://lcdproc.sourceforge.net/docs/lcdproc-0-5-4-user.html#imonlcd-howto for details
[imonlcd]
## this is USB :0038
Protocol=1
## turn lcd off on exit
OnExit = 2
## default 200
Contrast = 200
## those two don't seem to change anything
Backlight = 0
DiscMode = 0

Références

Created . Edited .