iMON PAD, MINI, VFD, LCD, Touch, etc.
With lirc 0.8.5 and earlier, iMON device support is a bit
lacking in feature-completeness, compared with Windows,
and for the newer devices, a pain for users to set up.
First up, many devices still need HID quirk overrides to
prevent the usbhid driver from claiming them before lirc
can. For starters, you need to determine the USB Vendor
and Device ID for you iMON device. Most devices have a
Vendor ID of 0x15c2. Device IDs are typically either
0xffdc or somewhere in the 0x0030 through 0x0046 range.
You should be able to see your IDs in the output of the
command 'lsusb'. For the purposes of this example, we'll
assume you have the 15c2:0045 device.
If your kernel has usbhid built as a module, then
the following in a modprobe config file (such as
/etc/modprobe.d/imon.conf) might be necessary:
options usbhid quirks=0x15c2:0x0045:0x0004
If your kernel has usbhid built-in, you may need to add
the quirk info to the your kernel boot parameters, like
If you're lucky, your device has already been quirked
properly in the usbhid driver itself, but if not, please
let the lirc developers know, so they can submit patches
to the usbhid driver upstream. You can tell if its
necessary by grepping your dmesg output after booting up,
looking for USB HID and your Device ID, like so:
$ dmesg |grep "USB HID.*15c2"
input,hidraw0: USB HID v1.01 Mouse [HID 15c2:0045] on usb-0000:00:02.0-2
hiddev96hidraw1: USB HID v1.00 Device [HID 15c2:0045] on usb-0000:00:02.0-2
In the above, we can see that the usbhid driver has claimed
our iMON device, and manual quirk addition is required.
Newer devices have two USB IR endpoints, which lead to
lirc 0.8.5 and earlier setting up two lirc devices for
what was in fact a single device, and the two devices
had to be bound together in userspace, lest the input
buffer would get wedged if a button from the device
you weren't listening to wasn't serviced. So if you're
using lirc 0.8.5 or earlier, you'll need to start up
two lircd daemons, bound to one another, along these
lircd --driver=default --device=/dev/lirc0 --pidfile=/var/run/lirc0.pid --listen=8765
lircd --driver=default --device=/dev/lirc1 --pidfile=/var/run/lirc1.pid --output=/dev/lircd --connect=localhost:8765
Note that this requires some modification of
distribution-provided init scripts, manual startup or
what have you, in most cases. It really does work
With post-0.8.5 lirc, the dual interface iMON devices
are handled as a single lirc device, greatly
simplifying setup for users -- distribution init
scripts should work out of the box. However, it may
still be necessary to manually add a quirk to keep
the usbhid driver from claiming your device.
In addition, post-0.8.5 lirc now includes mouse input
device support, so the keyboard/mouse toggle button
actually functions as one would expect it to (and as
it does under Windows). A special bonus not present
under Windows (I think) is that the ch+/- buttons
emulate a scroll wheel in mouse mode.
A lot of credit is due to Ron Frazier, for documenting
the necessary config for lirc 0.8.5 and earlier with
the newer iMON devices. See http://mythtvblog.blogspot.com/2008/04/getting-imon-0038-lcd-working-with-lirc.html
for historical reference.
The LIRC Manual, last update: 10-June-2014