gestern beim erstellen des Beitrags hatte ich noch das Problem kein /dev/lirc0 zu haben. Dabei hatte ich den Kernel 2.6.26.3 und lirc 0.8.3 mit den Patch für 2.6.26.
Nachdem ich gesehen hatte, dass Kernel 2.6.27 draußen ist, habe ich damit mein Glück versucht. Leider ließ sich lirc 0.8.3 mit dem Patch nicht kompilieren. Auch ein Patch direkt für Kernel 2.6.27 funktionierte nicht. Bei der Recherche habe ich gelesen, dass lirc 0.8.4-pre2 einige Änderungen habe soll die für mein Imon 0x15c2, 0x0038 sein soll.
Also habe ich mir das aus den CVS snapshots gezogen und konnte es ohne Probleme kompilieren. Das ist schon mal ein Erfolg! Nachdem ich dann die Module geladen hatte wurden die die Geräte erstellt unter /dev/lirc/0, /dev/lirc/1 und auch die /dev/lcdX Geräte. Soweit so gut.
Dann musste ich noch den LCDd mit einen Patch (lcdproc-0.5.2-imonlcd-0.2.patch) versehen. Der Lircd ließ sich direkt starten. Doch nun gibt es folgende Probleme:
- lircd-0.8.4pre2[19186]: accepted new client on /dev/lircd
kernel: lirc_imon: IR port opened
lircd-0.8.4pre2[19186]: could not get hardware features
lircd-0.8.4pre2[19186]: this device driver does not support the new LIRC interface
lircd-0.8.4pre2[19186]: make sure you use a current version of the driver
kernel: lirc_imon: IR port closed
lircd-0.8.4pre2[19186]: Failed to initialize hardware
kernel: lirc_imon: IR port opened
kernel: lirc_imon: IR port closed
kernel: lirc_imon: IR port opened
kernel: lirc_imon: IR port closed
Es scheint also einen Konflikt zu geben. Also ich habe herausfinden können, dass es am ioctl32 gelegen hat. Also habe ich dann von Hand im daemon/Makefile die Zeile CFLAGS = -O2 -g -Wall mit dem -m64 ergänzt. Dann einfach ein make im daemon-Ordner ausgeführt und damit ist der lircd dann gleich ein 64Bit Programm. Bei mir war danach der Fehler verschwunden. Übrigens zum Kompilieren musste ich wegen eine -lgcc Fehler noch gcc-multilib nachinstallieren.
Außerdem hatte ich beim LCDd starten den Fehler bekommen:
- kernel: lirc_imon: send_packet: packet tx failed(-32)
kernel: lirc_imon: lcd_write: send packet failed!
Code: Alles auswählen
static void send_byte_data(unsigned char data[], int fd)
{
write(fd, data, 8);
usleep(2000);
}
LCDd: Driver [imonlcd] has invalid display size
Nach etwas Recherche gibt es eine einfache Lösung in der LCDd.conf einefach die Size auskommentieren.
Code: Alles auswählen
[imonlcd]
#Size=16x2
Device=/dev/lcd0
Grüße
manticore