Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/08/2011, à 18: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, à 18:29)

Hors ligne

#2 Le 02/08/2011, à 19: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, à 19: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 smile (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 03/08/2011, à 00: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 tongue
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 tongue

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 03/08/2011, à 00: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) tongue

David.

Hors ligne

#6 Le 03/08/2011, à 18: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 smile
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 smile

Dernière modification par Dr4gOoN (Le 03/08/2011, à 18:28)

Hors ligne

#7 Le 03/08/2011, à 20:14

David Mézière

Re : [RESOLU] Hook d'une télécommande wireless/usb via udev et pystromo

Heureux d'avoir pu aider smile

Hors ligne

#8 Le 14/05/2016, à 20: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