i've written a small daemon (called "airboard-ir") that will
take IR input from an "airboard" keyboard. the airboard is a
small IR keyboard with joystick pointing device, made by
Silitek. it's also known as the LiteOn SK-7100, and it's been
used and relabeled by Motorola and Gateway, among others.
the keyboard comes with an IR receiver/decoder which translates
the IR reports into PS/2 for the keyboard and serial for the
mouse. the mouse is not PS/2 compatible.
since i just purchased two Eee Box systems, which have no PS/2 or
serial ports, but which _do_ have USB IR receivers connected for
LIRC purposes, it was clear what i had to do.
airboard-ir is a standalone program, which takes high/low pulse
input from my avrlirc devices (in fact, it's based on
"avrlirc2udp", which i wrote to support the avrlirc receivers  ),
and can inject keyboard and mouse events into the kernel via
uinput. the "special" multimedia keys can optionally be dealt
with separately (specifically, their ascii names can be sent to a
configured udp socket). finally, all received pulse data can
forwarded to lircd (again, via its udp interface).
airboard-ir is up on sourceforge:
i'm really not clear on whether the guts of airboard-ir could be
melded into lircd or not. the key and mouse reports are not
anything like CIR format -- they're more like SIR (i.e., similar
to UART signalling). there's a 0 start bit, a number of data bits
(at 1200 baud), and often, but not always, a stop bit. keystroke
reports are 19 bits long, mouse reports are 30. i would have
tried harder to figure out if lircd has support for that kind of
decoding, but a) in my setup, lircd doesn't run on the machines
the keyboards are attached to (it runs on a remote server), so that
would have to change, and for the initial write/test/debug cycle,
having my code be standalone was easier. but if anyone thinks
some or all of this support can or should be moved to lircd, i'm
certainly willing to help.
 avrlirc and avrlirc2up are described here:
paul fox, pgf@... (arlington, ma, where it's 18.3 degrees)