#1 Le 02/08/2011, à 17:25
- Dr4gOoN
[RESOLU] Hook d'une télécommande wireless/usb via udev et pystromo
Bonjour à tous,
Je cherche à faire de ma télécommande wireless/usb de présentation (http://eu.kensington.com/kensington/fr/ … rouge.aspx), une télécommande multimédia.
Pour ce faire, je l'ai d'abord branché, et j'ai testé si elle était bien reconnu.
J'ai ensuite testé les 4 boutons, qui correspondent bien à des signaux.
Je recherche donc quelques informations sur le périphérique :
root@dell:/home/nono# cat /proc/bus/input/devices
I: Bus=0003 Vendor=047d Product=2012 Version=0111
N: Name="Kensington Wireless Presenter with Laser Pointer"
P: Phys=usb-0000:00:1d.0-1.2/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/input/input17
U: Uniq=
H: Handlers=sysrq kbd event13
B: EV=100013
B: KEY=e080ffdf 1cfffff ffffffff fffffffe
B: MSC=10
puis :
root@dell:/home/nono# udevadm info -a --path /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/input/input17
looking at device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/input/input17':
KERNEL=="input17"
SUBSYSTEM=="input"
DRIVER==""
ATTR{name}=="Kensington Wireless Presenter with Laser Pointer"
ATTR{phys}=="usb-0000:00:1d.0-1.2/input0"
ATTR{uniq}==""
ATTR{modalias}=="input:b0003v047Dp2012e0111-e0,1,4,14,k77,7D,7E,7F,ram4,lsfw"
looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0':
KERNELS=="2-1.2:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="usbhid"
ATTRS{bInterfaceNumber}=="00"
ATTRS{bAlternateSetting}==" 0"
ATTRS{bNumEndpoints}=="01"
ATTRS{bInterfaceClass}=="03"
ATTRS{bInterfaceSubClass}=="01"
ATTRS{bInterfaceProtocol}=="01"
ATTRS{modalias}=="usb:v047Dp2012d0006dc00dsc00dp00ic03isc01ip01"
ATTRS{supports_autosuspend}=="1"
looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2':
KERNELS=="2-1.2"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{configuration}==""
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bmAttributes}=="a0"
ATTRS{bMaxPower}=="100mA"
ATTRS{urbnum}=="48"
ATTRS{idVendor}=="047d"
ATTRS{idProduct}=="2012"
ATTRS{bcdDevice}=="0006"
ATTRS{bDeviceClass}=="00"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bNumConfigurations}=="1"
ATTRS{bMaxPacketSize0}=="8"
ATTRS{speed}=="1.5"
ATTRS{busnum}=="2"
ATTRS{devnum}=="15"
ATTRS{devpath}=="1.2"
ATTRS{version}==" 2.00"
ATTRS{maxchild}=="0"
ATTRS{quirks}=="0x0"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{authorized}=="1"
ATTRS{manufacturer}=="Kensington"
ATTRS{product}=="Wireless Presenter with Laser Pointer"
Je prend note des différentes infos, et je fais donc ma règle udev (dans /etc/udev/rules.d/50-udev.rules) :
KERNEL=="input*", SUBSYSTEMS=="usb", ATTR{name}=="Kensington Wireless Presenter with Laser Pointer",NAME="%k", SYMLINK+="input/kensington"
Seulement voila, ma regle ne semble pas fonctionner, car je n'ai rien dans /dev/input/kensington ...
Est-ce que quelqu'un pourrait m'aider à trouver le problème ?
Dernière modification par Dr4gOoN (Le 03/08/2011, à 17:29)
Hors ligne
#2 Le 02/08/2011, à 18:06
- David Mézière
Re : [RESOLU] Hook d'une télécommande wireless/usb via udev et pystromo
Bonjour,
Pense à préciser sur quelle version d'Ubuntu tu tournes, les règles udev changent selon les version. Je vais partir du postulat que tu es sous 11.04.
Si tu regarde vers la fin de dmesg (dmesg | less) tu devrais pouvoir un mesage, si erreur il y a.
J’aurai tendance à déclarer une règle un peu plus simple, pour commencer :
SUBSYSTEM=="usb*", ATTRS{idVendor}=="047d", ATTRS{idProduct}=="2012", SYMLINK+="kensington"
Dans ta règle tu as mis des ATTR sans s à la fin, je ne suis pas certain que cela fonctionne avec les versions récentes de udev.
David.
Hors ligne
#3 Le 02/08/2011, à 18:11
- Dr4gOoN
Re : [RESOLU] Hook d'une télécommande wireless/usb via udev et pystromo
Très juste, je suis en ubuntu 10.10 ...
Du coup, ta rule fonctionne au poil (niveau reconnaissance).
Peut-on, selon ce device, et selon les signaux envoyé, attribuer des commandes spécifiques ?
Et surtout, comment définir/nommer ces signaux ?
Hors ligne
#4 Le 02/08/2011, à 23:15
- David Mézière
Re : [RESOLU] Hook d'une télécommande wireless/usb via udev et pystromo
Cool !
Qu'est-ce que tu entends par signaux ?
Tu sais quoi ? Je crois qu'en relisant ta question j'ai trouvé la réponse à une des miennes
http://forum.ubuntu-fr.org/viewtopic.php?id=591031
Grâce à la commande udevadm (que je ne connaissais pas), je devrais pouvoir créer une règle udev pour mapper directement mon port parallèle dans le bon mode et sur le bon point de montage
Ah ! je pense avoir compris, tu voudrais remapper les codes caractères de ta télécommande à la volée. Mince, j'avais trouvé ça lors de mes recherches sur le pad Belkin n52te ... Je recherche ça et je te le poste !
David.
Hors ligne
#5 Le 02/08/2011, à 23:22
- David Mézière
Re : [RESOLU] Hook d'une télécommande wireless/usb via udev et pystromo
Voilà !
https://launchpad.net/pystromo
PyStromo est un module du noyau qui, une fois chargé, te permet de rerouter tous tes périphériques HID. Par exemple, j'ai un pad Belkin n52te (un pad de gamer). Sous Windaube il y a un logiciel qui permet de remapper les touches clavier auxquelles correspondent celles du pad. Mais pas sous Linux. Avec ce module, tu peux dire que quand tu appuie sur la première touche, bien que le pad envoie le caractère "1", ça enverra en réalité le caractère "a", par exemple.
En fait tu peux réécrire à la volée les touches envoyées périphérique par périphérique.
En revanche, j'avais trouvé ça, mais je ne l'ai pas utilisé; donc je ne peux pas t'aider à le configurer, pour cela il te faudra suivre la doc sur leur site (j'espère qu'il y en a)
David.
Hors ligne
#6 Le 03/08/2011, à 17:09
- Dr4gOoN
Re : [RESOLU] Hook d'une télécommande wireless/usb via udev et pystromo
[EDIT 2]
Nickel, c'est exactement ca que je cherchais
J'ai trouvé tout ce qu'il me fallait !
vendor + product : lsusb
Les différentes code de touche tappé : showkey
l'équivalence, code de touche, variable pystromo : cat config/constant.py
Ce qui me donne:
[Device:kensington]
vendor=0x047d
product=0x2012
[Map:kensington]
KEY_B:KEY_Q
KEY_PAGEUP:KEY_U
KEY_PAGEDOWN:KEY_D
KEY_F5:KEY_H
J'execute ./pystromo-remap.py -m config/kensington.map
Et mes hook fonctionne au poil !
Il me reste plus qu'à lancer ca comme service au démmarage, et choisir correctement mes touches pour en faire une télécommande multimédia
Dans tous les cas, merci de ton aide
Dernière modification par Dr4gOoN (Le 03/08/2011, à 17:28)
Hors ligne
#7 Le 03/08/2011, à 19:14
- David Mézière
Re : [RESOLU] Hook d'une télécommande wireless/usb via udev et pystromo
Heureux d'avoir pu aider
Hors ligne
#8 Le 14/05/2016, à 19:08
- Arnaud04
Re : [RESOLU] Hook d'une télécommande wireless/usb via udev et pystromo
Bonjour,
Désolé pour le déterrage de sujet, mais j'ai la même télécommande.
Dans mon cas, je veux juste l'utiliser normalement ... mais le bouton "stop" (carré) envoie un signal ":", au lieu de "B" (ce qui permettrait d'afficher une diapo vide pendant un diaporama).
J'ai relu tout le fil, mais je ne comprends vraiment pas ce qu'il faut faire pour mapper différemment ce bouton.
Merci de ton aide,
Hors ligne