Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux:telecommande_multimedia_logitech_ultrax [2007/08/07 18:07]
gast0n
linux:telecommande_multimedia_logitech_ultrax [2010/01/12 13:29] (current)
Line 1: Line 1:
 +[[http://​www.google.fr/​search?​q=logitech+ultrax+media+remote|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 :
  
 +<​code>​
 +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
 +</​code>​
 +
 +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 :
 +
 +<​code>​
 +# /​etc/​default/​inputlirc ​
 +# Options to be passed to inputlirc, YMMV.
 +EVENTS="/​dev/​input/​event4 /​dev/​input/​event5"​
 +OPTIONS="​-d /​tmp/​lircd"​
 +</​code>​
 +
 +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.
 +<​code>​
 +#​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
 +</​code>​
 +
 +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.
 +
 +<​code>​
 +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
 +</​code>​
 +
 +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)