This device is a cheap remote control that can be bought on the web for a few dollars. It is recognized as both a keyboard and a mouse. However not all keys work out of the box as they are combinations of several keyboard keys. This driver should work completely with kernel 2.6.34 and newer. Some keys may not work with older versions of kernel.
This rule creates links for the keyboard and the mouse parts in /dev/lirc. Create a file "lirc_atwf83.rules" in /etc/udev/rules/ that contains the following lines :
# Rules for "ATWF@83-W001_ESKY.CC_USB_V3B" USB remote to be managed by lirc ATTR{idVendor}!="0755", GOTO="atwf83_end" ATTR{idProduct}!="2626", GOTO="atwf83_end" KERNEL!="hidraw[0-9]*", GOTO="atwf83_end" # Link raw devices into "/dev/input/ir" ATTRS{bInterfaceNumber}=="01", SYMLINK+="lirc/atwf83_mouse" ATTRS{bInterfaceNumber}=="00", SYMLINK+="lirc/atwf83_kbd" LABEL="atwf83_end"
Since multimedia keys of the remote work out of the box in xorg, pressing them may trigger the default actions associated with these keys and the lirc action at the same time. The following rule forces xorg to ignore the remote. Create a file in /etc/X11 xorg.conf.d and name it 70-atwf83.conf.
# Make xorg ignore the remote to disable multimedia keys # default actions. # !!! This prevents the mouse part of the remote from # working too !!! Section "InputClass" Identifier "Ignore ATWF@83 remote input" MatchProduct "ESKY.CC USB_V3B" Option "Ignore" "on" EndSection
Since not all keys belong to a single device, lirc has to be run twice. The following script launches lirc for the mouse and the keyboard parts using symlinks created by the udev rule. It creates the lirc device /dev/lircd that will be used by lirc client applications. This script can be placed in /etc/init.d so that lirc will be run on startup.
#! /bin/sh lircd_BIN=/usr/sbin/lircd test -x $lircd_BIN || exit 5 lircd_CONF=/etc/lirc/lircd.conf lircd_PID=/var/run/lirc/lircd.pid lircd_PID1=/var/run/lirc/lircd1.pid case "$1" in start) echo -n "Starting lircd " if [ ! -L /dev/lircd ]; then rm -f /dev/lircd ln -s /var/run/lirc/lircd /dev/lircd fi lircd_ARGS="--device=/dev/lirc/atwf83_kbd --pidfile=$lircd_PID --driver=atwf83 --output=/var/run/lirc/lircd --connect=localhost:8765" lircd_ARGS1="--device=/dev/lirc/atwf83_mouse --pidfile=$lircd_PID1 --driver=atwf83 --output=/var/run/lirc/lircd1 --listen" $lircd_BIN ${lircd_ARGS1[@]} $lircd_BIN ${lircd_ARGS[@]} ;; stop) echo -n "Shutting down lircd " killproc -TERM -p $lircd_PID $lircd_BIN killproc -TERM -p $lircd_PID1 $lircd_BIN ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac