Télécommande toute conne achetée 17e a Mongallet (ou 10e sur LDLC), comment kon fait. Y'a un ptit recepteur RF usb bundlé avec, dixit dmesg :

usb 1-2: USB disconnect, address 3
usb 1-2: new low speed USB device using uhci_hcd and address 4
usb 1-2: configuration #1 chosen from 1 choice
input: Logitech USB Receiver as /class/input/input4
input: USB HID v1.10 Keyboard [Logitech USB Receiver] on usb-0000:00:07.2-2
input: Logitech USB Receiver as /class/input/input5
input,hiddev97: USB HID v1.10 Device [Logitech USB Receiver] on usb-0000:00:07.2-2

Du coup, ca me crée 2 devices, /dev/input/event4 et /dev/input/event5, le premier va recevoir les évenements des touches flêches de la telecommande, et le deuxième recevra le reste.

Déja on oublie lirc, c'est super complixe, j'ai rien compris comment le faire marcher avec DEVICE=“dev/input”. Plus simple, on va installer inputlirc (bon on a quand même besoin du paquet lirc pour irexec). C'est un simple démon qui traduit les events arrivant en 'touches' et les envoie sur la socket /dev/lircd auxquelles les clients vont venir se connecter. On le configure avec :

# /etc/default/inputlirc 
# Options to be passed to inputlirc, YMMV.
EVENTS="/dev/input/event4 /dev/input/event5"
OPTIONS="-d /tmp/lircd"

Ici, j'ai du tricher en mettant la socket dans /tmp, et en faisant un symlink de /tmp/lircd vers /dev/lircd (irexec veut lire sur cette socket), je soupconne le udev de debian de faire son petit malin. On restarte inputlirc avec sudo /etc/init.d/inputlirc restart. Maintenant, on va utiliser irexec comme client.

Tout d'abord, on cherche quel code correspond à quelle touche avec input-events du paquet input-utils, ici le 5 correspond au event device sur lequel je veux ecouter.

#input-events 5
/dev/input/event5
   bustype : BUS_USB
   vendor  : 0x46d
   product : 0xc101
   version : 259
   name    : "Logitech USB Receiver"
   phys    : "usb-0000:00:07.2-2/input1"
   uniq    : ""
   bits ev : EV_SYN EV_KEY EV_REP

waiting for events
19:49:05.212800: EV_KEY KEY_BACK pressed
19:49:05.212810: EV_KEY KEY_BACK released
19:49:05.212829: EV_SYN code=0 value=0

On a les codes, maintenant on crée le fichier de conf ~/.lircrc (ou /etc/lircrc si vous comptez lancer irexec system-wide) contenant les commandes à lancer lors de l'appui sur une touche.

begin
        prog = irexec
        button = KEY_NEXTSONG
        config = mpc next
end

begin
        prog = irexec
        button = KEY_PREVIOUSSONG
        config = mpc prev
end

begin
        prog = irexec
        button = KEY_PLAYPAUSE
        config = mpc toggle
end

Et finalement on lance irexec -d (qui va recevoir les évenements venant de inputlirc), on teste, et on loutre dans son canap.

linux/telecommande_multimedia_logitech_ultrax.txt · Last modified: 2010/01/12 13:29 (external edit)