Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
tutoriel:hid [Le 27/04/2012, 16:14] davy39 créée |
tutoriel:hid [Le 11/09/2022, 12:20] (Version actuelle) moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag>tutoriel}} | ||
+ | ---- | ||
+ | |||
====== Utilisation d'un périphérique HID ====== | ====== Utilisation d'un périphérique HID ====== | ||
+ | Les périphériques de la norme HID permettent d'envoyer des commandes au serveur X. | ||
+ | Toutefois toutes les commandes reçues ne sont pas toujours exploitables directement sous linux... | ||
+ | C'est pourquoi il est intéressant de pouvoir les "remapper", c'est à dire les attribuer aux commandes linux (**inputdev**) de notre choix. | ||
+ | |||
+ | Dans ce tutoriel, une télécommande [[http://www.aliexpress.com/product-gs/492454030-IR-USB-Mouse-Media-Desktop-Computer-PC-Remote-Controller-Control-Media-Center-wholesalers.html|disponible pour 5€65]] sera configurée afin d'effectuer de nombreuses actions ainsi que d'émuler le déplacement de la souris. | ||
+ | |||
+ | En second lieu, on verra comment configuer **LIRC** pour exploiter ce matériel. | ||
=====Préalables===== | =====Préalables===== | ||
Ligne 14: | Ligne 24: | ||
S: Sysfs=/devices/pci0000:00/0000:00:02.0/usb2/2-7/2-7:1.0/input/input5 | S: Sysfs=/devices/pci0000:00/0000:00:02.0/usb2/2-7/2-7:1.0/input/input5 | ||
U: Uniq= | U: Uniq= | ||
- | H: Handlers=sysrq kbd event5 | + | H: Handlers=sysrq kbd event5 |
B: PROP=0 | B: PROP=0 | ||
B: EV=120013 | B: EV=120013 | ||
Ligne 26: | Ligne 36: | ||
S: Sysfs=/devices/pci0000:00/0000:00:02.0/usb2/2-7/2-7:1.1/input/input6 | S: Sysfs=/devices/pci0000:00/0000:00:02.0/usb2/2-7/2-7:1.1/input/input6 | ||
U: Uniq= | U: Uniq= | ||
- | H: Handlers=kbd mouse1 event6 | + | H: Handlers=kbd mouse1 event6 |
B: PROP=0 | B: PROP=0 | ||
B: EV=1f | B: EV=1f | ||
Ligne 41: | Ligne 51: | ||
Pour cela créer le fichier suivant : | Pour cela créer le fichier suivant : | ||
<code>sudo nano /usr/share/X11/xorg.conf.d/50-HID-blacklist.conf</code> | <code>sudo nano /usr/share/X11/xorg.conf.d/50-HID-blacklist.conf</code> | ||
- | Et y copier ces lignes, en rensigant MatchProduct en fonction de ce que vous avez obtenu ci-dessus : | + | Et y copier ces lignes, en rensigant MatchProduct en fonction de ce que vous avez obtenu ci-dessus : |
<file> | <file> | ||
Section "InputClass" | Section "InputClass" | ||
Ligne 53: | Ligne 63: | ||
===== HID_MAPPER ===== | ===== HID_MAPPER ===== | ||
- | On va ensuite utiliser le programme présenté [[http://forum.xbmc.org/showthread.php?tid=88560|ici]] pour assigner les commandes voulues aux évènements générés par notre périphérique. | + | On va ensuite utiliser le programme présenté [[http://forum.xbmc.org/showthread.php?tid=88560|ici]] pour assigner les commandes voulues aux évènements générés parnotre périphérique. |
====Installation==== | ====Installation==== | ||
- | L'installation de hid_mapper s'effectue par les commandes suivantes : | + | L'installation de hid_mapper s'effectue parles commandes suivantes : |
- | <code>wget http://www.coldsource.net/hid_mapper.tar.gz | + | <code>wget http://www.coldsource.net/hid_mapper_beta.tar.gz |
- | tar zxvf hid_mapper.tar.gz | + | tar zxvf hid_mapper_beta.tar.gz |
- | cd hid_mapper | + | cd hid_mapper_beta |
make | make | ||
sudo cp hid_mapper /usr/local/bin/ | sudo cp hid_mapper /usr/local/bin/ | ||
Ligne 145: | Ligne 155: | ||
==Fichier mouse.map== | ==Fichier mouse.map== | ||
- | Dans mon cas, ma télécommande a une fonction spéciale d'émulation du déplacement du curseur de la souris, et affiche différents codes en fonction du temps d'appui sur les flèches directionnelles. | + | Dans mon cas, ma télécommande a une fonction spéciale d'émulation du déplacement du curseur de la souris, et affiche différents codes en fonction du temps d'appui sur les flèches directionnelles. |
- | Celui sera configurable de la manière suivante dans le fichier **mouse.map**. | + | Celui sera configurable de la manière suivante dans le fichier **mouse.map**. |
- REL_Y correspond à un déplacement sur l'axe vertical | - REL_Y correspond à un déplacement sur l'axe vertical | ||
- REL_X sur l'axe horizontal | - REL_X sur l'axe horizontal | ||
- Le dernier chiffre de chaque ligne à la taille du déplacement en nombre de pixel. | - Le dernier chiffre de chaque ligne à la taille du déplacement en nombre de pixel. | ||
- | <file>010000fe0000:REL_Y:-1 # haut --> -1->-8de plus en plus vite | + | <file>010000fe0000:REL_Y:-1 # haut --> -1->-8de plus en plus vite |
010000fc0000:REL_Y:-4 | 010000fc0000:REL_Y:-4 | ||
010000f80000:REL_Y:-8 | 010000f80000:REL_Y:-8 | ||
- | 010000020000:REL_Y:1 # bas --> 1->8 de plus en plus vite | + | 010000020000:REL_Y:1 # bas --> 1->8 de plus en plus vite |
010000040000:REL_Y:4 | 010000040000:REL_Y:4 | ||
010000080000:REL_Y:8 | 010000080000:REL_Y:8 | ||
Ligne 168: | Ligne 178: | ||
====Lancement==== | ====Lancement==== | ||
- | On peut alors lancer le "mappage" pour assigner les nouveaux codes aux évènements envoyés par notre périphérique. | + | On peut alors lancer le "mappage" pour assigner les nouveaux codes aux évènements envoyés parnotre périphérique. |
===Manuel=== | ===Manuel=== | ||
Ligne 194: | Ligne 204: | ||
Pour les habitués de [[lirc|LIRC]], il est possible d'utiliser le périphérique précédemment configuré. | Pour les habitués de [[lirc|LIRC]], il est possible d'utiliser le périphérique précédemment configuré. | ||
- | Pour cela, on attribue un lien symbolique à l' input/eventx générée par hid_mapper en ajoutant la ligne suivante au fichier 10-HID-REMOTE.rules que l'on vient de créer : | + | Pour cela, on attribue un lien symbolique à l' input/eventx générée parhid_mapper en ajoutant la ligne suivante au fichier 10-HID-REMOTE.rules que l'on vient de créer : |
<file> | <file> | ||
KERNEL=="event*",ATTRS{name}=="Generic USB input mapper",SYMLINK="input/hid_mapper" | KERNEL=="event*",ATTRS{name}=="Generic USB input mapper",SYMLINK="input/hid_mapper" | ||
Ligne 200: | Ligne 210: | ||
Il nous faudra également ajouter les [[http://lirc.sourceforge.net/remotes/devinput/lircd.conf.devinput | Il nous faudra également ajouter les [[http://lirc.sourceforge.net/remotes/devinput/lircd.conf.devinput | ||
- | |commandes devinput]] au fichier **/etc/lirc/lircd.conf**. | + | |codes devinput]] au fichier **/etc/lirc/lircd.conf**. |
Pour des raisons pédagogiques, admettons que vous avez une télécommande MiroPCTV connectée sur le port série ttyS0 (lirc_serial). | Pour des raisons pédagogiques, admettons que vous avez une télécommande MiroPCTV connectée sur le port série ttyS0 (lirc_serial). | ||
Ligne 239: | Ligne 249: | ||
- Enfin, on modifie le sript de lancement de lirc pour qu'il démarre les 2 instances de lircd : | - Enfin, on modifie le sript de lancement de lirc pour qu'il démarre les 2 instances de lircd : | ||
- | Editer le fichier /etc/init.d/lirc et le modifier vers la ligne 160 : | + | Editer le fichier **/etc/init.d/lirc** et le modifier vers la ligne 160 : |
- | Remplacer : | + | - Remplacer : |
<file> | <file> | ||
REMOTE_LIRCD_ARGS=`build_remote_args $REMOTE_LIRCD_ARGS` | REMOTE_LIRCD_ARGS=`build_remote_args $REMOTE_LIRCD_ARGS` | ||
</file> | </file> | ||
- | par | + | par |
<file> | <file> | ||
REMOTE_LIRCD_ARGS=`build_remote_args $REMOTE_LIRCD_ARGS` | REMOTE_LIRCD_ARGS=`build_remote_args $REMOTE_LIRCD_ARGS` | ||
REMOTE_LIRCD2_ARGS=`build_remote_args $REMOTE_LIRCD2_ARGS` | REMOTE_LIRCD2_ARGS=`build_remote_args $REMOTE_LIRCD2_ARGS` | ||
</file> | </file> | ||
- | Ainsi que : | + | |
+ | - Ainsi que : | ||
<file> | <file> | ||
start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/lircd -- $REMOTE_LIRCD_ARGS < /dev/null | start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/lircd -- $REMOTE_LIRCD_ARGS < /dev/null | ||
</file> | </file> | ||
- | par : | + | par: |
<file> | <file> | ||
start-stop-daemon --start --quiet --oknodo --name lirc1 --exec /usr/sbin/lircd -- $REMOTE_LIRCD_ARGS < /dev/null | start-stop-daemon --start --quiet --oknodo --name lirc1 --exec /usr/sbin/lircd -- $REMOTE_LIRCD_ARGS < /dev/null |