lcd
LCD and remote control configuration
For marcos.
- 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:
. 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:
Driver `imon' not supported.
. seems like this is bound to fail while we wait for a backport of the kernel and/or lircinsmod: error inserting '/lib/modules/2.6.32-5-amd64/misc/lirc_imon.ko': -1 Unknown symbol in module
- connect with XBMC
Other useful pages:
- MythTV page on imon displays and remotes
- Getting the volume know working in mythtv
- Getting the LCD to work in mythtv
- Getting the remote to work in myththv (actually the basis of all else)
- this guy made it work apparently
Another attempt:
- use the 2.6.38 kernel from unstable (!!)
- hardcode the display type in my module configuration (/etc/modprobe.d/imon.conf):
##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