Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
telecommande_ati_remote_wonder [Le 10/11/2008, 18:17] 213.95.41.13 |
telecommande_ati_remote_wonder [Le 11/09/2022, 11:33] (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>breezy dapper edgy matériel télécommande}} | + | {{tag>matériel télécommande VÉTUSTE}} |
---- | ---- | ||
- | |||
- | |||
====== Télécommande ATI SAPPHIRE REMOTE WONDER Version 1 ====== | ====== Télécommande ATI SAPPHIRE REMOTE WONDER Version 1 ====== | ||
+ | Le module pour utiliser cette télécommande est déjà présent dans le noyaux mais nécessite quelques modifications, mais le plus simple est l'utilisation de [[:lirc]]. | ||
+ | Cette méthode fonctionne aussi pour la ATI remote wonder (ID: B4SUR84A) | ||
- | ===== Méthode compilation du module ati_remote ===== | ||
+ | ==== Configuration et modification du pilote ==== | ||
- | + | <code>gedit linux-source-2.6.35/drivers/input/misc/ati_remote.c</code> | |
- | Chaque touche de la télécommande correspond à un keycode, comme n'importe quelle touche d'un clavier. | + | |
- | Le souci, c'est que les keycodes affectés sont ceux d'un clavier américain : | + | |
- | la touche 1 par exemple correspond à la touche & comme sur un clavier américain. | + | |
- | Pas facile de zapper les chaînes sur TvTime ;-) | + | |
- | + | ||
- | Pour résoudre ce petit problème, je propose de recompiler le driver en assignant directement les keycodes qui vont bien. | + | |
- | + | ||
- | + | ||
- | ==== Préparation ==== | + | |
- | + | ||
- | + | ||
- | <code>sudo apt-get install linux-source | + | |
- | sudo apt-get install build-essential | + | |
- | sudo apt-get install linux-headers-`uname -r`</code> | + | |
- | + | ||
- | extraire les sources du driver : le fichier ati_remote.c | + | |
- | + | ||
- | <code>tar -xjvf /usr/src/linux-source-2.6.17.tar.bz2 linux-source-2.6.17/drivers/usb/input/ati_remote.c</code> | + | |
- | + | ||
- | Pour la version Intrepid, le code diffère un peut : | + | |
- | + | ||
- | <code>tar -xjvf /usr/scr/linux-source-2.6.27.tar.bz2 linux-source-2.6.27/drivers/input/misc/ati_remote.c</code> | + | |
- | + | ||
- | + | ||
- | Attention la version du noyau peut être différente selon les configurations, dans ce cas le nom du répertoire est différent. | + | |
- | + | ||
- | <note important>Dans Gutsy, le module pour lirc est chargé par défaut et prend le dessus sur ce module. Si vous souhaitez utiliser avec ce module, il vous faudra blacklister lirc_atiusb</note> | + | |
- | + | ||
- | Pour se faire, il faut éditer le fichier /etc/modprobe.d/blacklist : | + | |
- | + | ||
- | Pour ubuntu : | + | |
- | <code>gksudo gedit /etc/modprobe.d/blacklist</code> | + | |
- | Pour kubuntu : | + | |
- | <code>kdesu kate /etc/modprobe.d/blacklist</code> | + | |
- | On rajoute la ligne suivante à la fin du fichier : | + | |
- | <code>blacklist lirc_atiusb</code> | + | |
- | + | ||
- | Pour prendre effet immédiatement, il suffit de rentrer la commande suivante dans un terminal afin de décharger le module : | + | |
- | <code>sudo modprobe -r lirc_atiusb</code> | + | |
- | + | ||
- | ==== Configuration et modification du pîlote ==== | + | |
- | + | ||
- | + | ||
- | <code>gedit linux-source-2.6.17/drivers/usb/input/ati_remote.c</code> | + | |
voici la partie intéressante du code dans le ficher ati_remote.c | voici la partie intéressante du code dans le ficher ati_remote.c | ||
les keycodes sont placés dans l'avant dernière colonne | les keycodes sont placés dans l'avant dernière colonne | ||
- | <code> | + | <file>/* Directional control pad axes */ |
- | /* Directional control pad axes */ | + | {KIND_ACCEL, 0x35, 0x70, EV_REL, REL_X, -1}, /* left */ |
- | {KIND_ACCEL, 0x35, 0x70, EV_REL, REL_X, -1}, /* left */ | + | {KIND_ACCEL, 0x36, 0x71, EV_REL, REL_X, 1}, /* right */ |
- | {KIND_ACCEL, 0x36, 0x71, EV_REL, REL_X, 1}, /* right */ | + | {KIND_ACCEL, 0x37, 0x72, EV_REL, REL_Y, -1}, /* up */ |
- | {KIND_ACCEL, 0x37, 0x72, EV_REL, REL_Y, -1}, /* up */ | + | {KIND_ACCEL, 0x38, 0x73, EV_REL, REL_Y, 1}, /* down */ |
- | {KIND_ACCEL, 0x38, 0x73, EV_REL, REL_Y, 1}, /* down */ | + | /* Directional control pad diagonals */ |
- | /* Directional control pad diagonals */ | + | {KIND_LU, 0x39, 0x74, EV_REL, 0, 0}, /* left up */ |
- | {KIND_LU, 0x39, 0x74, EV_REL, 0, 0}, /* left up */ | + | {KIND_RU, 0x3a, 0x75, EV_REL, 0, 0}, /* right up */ |
- | {KIND_RU, 0x3a, 0x75, EV_REL, 0, 0}, /* right up */ | + | {KIND_LD, 0x3c, 0x77, EV_REL, 0, 0}, /* left down */ |
- | {KIND_LD, 0x3c, 0x77, EV_REL, 0, 0}, /* left down */ | + | {KIND_RD, 0x3b, 0x76, EV_REL, 0, 0}, /* right down */ |
- | {KIND_RD, 0x3b, 0x76, EV_REL, 0, 0}, /* right down */ | + | |
- | /* "Mouse button" buttons */ | + | /* "Mouse button" buttons */ |
- | {KIND_LITERAL, 0x3d, 0x78, EV_KEY, BTN_LEFT, 1}, /* left btn down */ | + | {KIND_LITERAL, 0x3d, 0x78, EV_KEY, BTN_LEFT, 1}, /* left btn down */ |
- | {KIND_LITERAL, 0x3e, 0x79, EV_KEY, BTN_LEFT, 0}, /* left btn up */ | + | {KIND_LITERAL, 0x3e, 0x79, EV_KEY, BTN_LEFT, 0}, /* left btn up */ |
- | {KIND_LITERAL, 0x41, 0x7c, EV_KEY, BTN_RIGHT, 1},/* right btn down */ | + | {KIND_LITERAL, 0x41, 0x7c, EV_KEY, BTN_RIGHT, 1},/* right btn down */ |
- | {KIND_LITERAL, 0x42, 0x7d, EV_KEY, BTN_RIGHT, 0},/* right btn up */ | + | {KIND_LITERAL, 0x42, 0x7d, EV_KEY, BTN_RIGHT, 0},/* right btn up */ |
- | /* Artificial "doubleclick" events are generated by the hardware. | + | /* Artificial "doubleclick" events are generated by the hardware. |
- | * They are mapped to the "side" and "extra" mouse buttons here. */ | + | * They are mapped to the "side" and "extra" mouse buttons here. */ |
- | {KIND_FILTERED, 0x3f, 0x7a, EV_KEY, BTN_SIDE, 1}, /* left dblclick */ | + | {KIND_FILTERED, 0x3f, 0x7a, EV_KEY, BTN_SIDE, 1}, /* left dblclick */ |
- | {KIND_FILTERED, 0x43, 0x7e, EV_KEY, BTN_EXTRA, 1},/* right dblclick */ | + | {KIND_FILTERED, 0x43, 0x7e, EV_KEY, BTN_EXTRA, 1},/* right dblclick */ |
- | /* keyboard. */ | + | /* keyboard. */ |
{KIND_FILTERED, 0xd2, 0x0d, EV_KEY, KEY_KP1, 1}, | {KIND_FILTERED, 0xd2, 0x0d, EV_KEY, KEY_KP1, 1}, | ||
{KIND_FILTERED, 0xd3, 0x0e, EV_KEY, KEY_KP2, 1}, | {KIND_FILTERED, 0xd3, 0x0e, EV_KEY, KEY_KP2, 1}, | ||
Ligne 135: | Ligne 90: | ||
{KIND_FILTERED, 0xf5, 0x30, EV_KEY, KEY_SELECT, 1}, /* SELECT */ | {KIND_FILTERED, 0xf5, 0x30, EV_KEY, KEY_SELECT, 1}, /* SELECT */ | ||
- | {KIND_END, 0x00, 0x00, EV_MAX + 1, 0, 0}</code> | + | {KIND_END, 0x00, 0x00, EV_MAX + 1, 0, 0}</file> |
- | Pour ma part j'ai changé les touche 0 à 9 par les touches du pavé numérique | + | Pour ma part j'ai changé les touches 0 à 9 parles touches du pavé numérique |
- | et la touche A par la touche Q | + | et la touche A parla touche Q |
- | ex KEY_1 par KEY_KP1 | + | ex KEY_1 parKEY_KP1 |
- | pour optenir les codes attribués à chaque touche | + | pour obtenir les codes attribués à chaque touche |
- | gedit /usr/src/linux-headers-`uname -r`/include/linux/input.h | + | <code>gedit /usr/src/linux-headers-`uname -r`/include/linux/input.h</code> |
+ | |||
+ | mais pour aller plus loin et configurer les touches TV; DVD; stop ; enregistrement etc ... j'utilise xev et Préférences/raccourcis claviers. | ||
+ | |||
+ | Or les keycodes du input.h du noyau et ceux indiqués parxev, ne sont pas forcément les mêmes: | ||
+ | |||
+ | pour le noyau 2.6.35-22 : | ||
+ | |||
+ | * pour la touche 1 du clavier numérique le input.h donne 79 comme keycode et xev donne 87! | ||
+ | * de même pour la touche "windows" ou "super_L" le input.h donne 125(KEY_LEFTMETA) et xev donne 133 | ||
+ | |||
+ | Il y a donc un décalage dans le cas de ce noyau de 8 codes! | ||
+ | |||
+ | <note help>Petite astuce si la touche Windows ne fonctionne pas: | ||
+ | <code> gconftool-2 --set /apps/metacity/global_keybindings/panel_main_menu --type string "Super_L" </code> rétablis la touche windows.</note> | ||
+ | |||
+ | Donc pour attribuer les bons codes aux touches: | ||
+ | |||
+ | * __Votre clavier multimédia a des touches multimédia non configurées__ | ||
+ | |||
+ | |||
+ | Exemple: | ||
+ | |||
+ | xev renvoie pour la touche FN + F5: | ||
+ | |||
+ | <code>" state 0x2010, keycode 156 (keysym 0x1008ff41, XF86Launch1), same_screen YES "</code> | ||
+ | |||
+ | donc le keycode associé dans le fichier input.h est 156-8=148 donc KEY_PROG1 pour le noyau 2.6.35-22 | ||
+ | |||
+ | Il suffit alors de remplacer dans ati_remote.c : | ||
+ | |||
+ | <code>{KIND_FILTERED, 0xc9, 0x04, EV_KEY, KEY_DVD, 1}, /* DVD */</code> | ||
+ | |||
+ | par | ||
+ | |||
+ | <code>{KIND_FILTERED, 0xc9, 0x04, EV_KEY, KEY_PROG1, 1}, /* DVD */</code> | ||
+ | |||
+ | Enfin , nous voulons utiliser notre lecteur multimédia préféré:( vlc dans mon cas) pour la touche DVD de la télécommande | ||
+ | |||
+ | Il suffit d'aller dans Préférences/raccourcis claviers et ajouter le lancement de vlc avec comme touche de raccourcis le keysym XF86Launch1 | ||
+ | et le tour est joué ! | ||
+ | |||
+ | * __Votre clavier multimédia est parfaitement configuré:__ | ||
+ | |||
+ | |||
+ | Il faut donc chercher donc connaitre le keycode de la touche et keysim associé. | ||
+ | |||
+ | La commande : <code>$ xmodmap -pke </code> | ||
+ | vous donne la relation keycode-keysim; sinon xev fait normalement bien le travail | ||
+ | On cherche alors la correspondance du keycode dans le fichier input.h (en retirant 8 dans le cas du noyau 2.6.35-22) | ||
+ | |||
+ | Voir l'exemple prédent pour la fin de la modification du ficher ati_remote.c | ||
+ | |||
+ | |||
+ | une fois le fichier modifié, il n'y a plus qu'à compiler le pilote | ||
- | une fois le fichier modifié, il n'y a plus qu'à compiler le driver | ||
<code>gedit linux-source-2.6.17/drivers/usb/input/Makefile</code> | <code>gedit linux-source-2.6.17/drivers/usb/input/Makefile</code> | ||
+ | |||
+ | version intrepid et suivante: | ||
+ | |||
+ | <code>gedit linux-source-2.6.35/drivers/input/misc/Makefile</code> | ||
voici le Makefile : | voici le Makefile : | ||
<code> | <code> | ||
VERSION = 2 | VERSION = 2 | ||
PATCHLEVEL = 6 | PATCHLEVEL = 6 | ||
- | SUBLEVEL = 17 | + | SUBLEVEL = 35 |
EXTRAVERSION = .13-ubuntu1 | EXTRAVERSION = .13-ubuntu1 | ||
NAME=Crazed Snow-Weasel | NAME=Crazed Snow-Weasel | ||
Ligne 178: | Ligne 190: | ||
make</code> | make</code> | ||
- | le driver compilé est le fichier ati_remote.ko | + | version intrepid et suivantes: |
+ | |||
+ | <code>cd linux-source-2.6.35/drivers/input/misc | ||
+ | make</code> | ||
+ | |||
+ | le pilote compilé est le fichier ati_remote.ko | ||
Pour le tester dans un premier temps: | Pour le tester dans un premier temps: | ||
- | - enlever le driver actuel déjà chargé | + | - enlever le pilote actuel déjà chargé |
<code>sudo rmmod ati_remote</code> | <code>sudo rmmod ati_remote</code> | ||
Ligne 199: | Ligne 216: | ||
<code>sudo cp ati_remote.ko /lib/modules/`uname -r`/kernel/drivers/usb/input/ati_remote.ko</code> | <code>sudo cp ati_remote.ko /lib/modules/`uname -r`/kernel/drivers/usb/input/ati_remote.ko</code> | ||
+ | |||
+ | version intrepid et suivantes: | ||
+ | |||
+ | <code>sudo cp ati_remote.ko /lib/modules/`uname -r`/kernel/drivers/input/misc/ati_remote.ko</code> | ||
+ | |||
Cette méthode n'est pas très élégante puisqu'elle écrase le module actuel | Cette méthode n'est pas très élégante puisqu'elle écrase le module actuel | ||
- | Mais elle évite tout conflit avec l'ancien driver puisqu'il n'existe plus | + | Mais elle évite tout conflit avec l'ancien pilote puisqu'il n'existe plus |
- | de plus le driver est chargé directement au démarrage | + | de plus le pilote est chargé directement au démarrage |
Si écraser le fichier vous fait hérisser les poils, il est possible de faire un backup du fichier avant de l'écraser. | Si écraser le fichier vous fait hérisser les poils, il est possible de faire un backup du fichier avant de l'écraser. | ||
Ligne 223: | Ligne 245: | ||
== Tests et enregistrement du masque == | == Tests et enregistrement du masque == | ||
- | Une fois le masque trouvé, on va le tester avant de l'enregistrer. Pour cela, commencez par décharger le module à l'aide de la commande | + | Une fois le masque trouvé, on va le tester avant de l'enregistrer. Pour cela, commencez pardécharger le module à l'aide de la commande |
<code>sudo rmmod ati_remote</code> | <code>sudo rmmod ati_remote</code> | ||
Puis rechargez le en passant en paramètre le masque calculé via la commande | Puis rechargez le en passant en paramètre le masque calculé via la commande | ||
<code>sudo modprobe ati_remote channel_mask=masque</code> | <code>sudo modprobe ati_remote channel_mask=masque</code> | ||
- | Remplacez masque par le masque calculé juste au dessus. | + | Remplacez masque parle masque calculé juste au dessus. |
Il vous reste à tester maintenant si l'ordinateur répond toujours aux commandes de la télécommande :) | Il vous reste à tester maintenant si l'ordinateur répond toujours aux commandes de la télécommande :) | ||
Ligne 243: | Ligne 265: | ||
options ati_remote channel_mask=masque | options ati_remote channel_mask=masque | ||
</code> | </code> | ||
- | En remplaçant toujours masque par le masque calculé | + | En remplaçant toujours masque parle masque calculé |
== Et si ça ne marche pas ? == | == Et si ça ne marche pas ? == | ||
Ligne 265: | Ligne 287: | ||
Vous trouverez sur le wiki d'autres pages traitant de la configuration de lirc et notamment une page présentant les fichiers lircrc permettant de personnaliser l'utilisation de votre télécommande. | Vous trouverez sur le wiki d'autres pages traitant de la configuration de lirc et notamment une page présentant les fichiers lircrc permettant de personnaliser l'utilisation de votre télécommande. | ||
- | Remarque d'un lecteur : Vous trouverez [[http://blog.roozeec.fr/2007/04/18/telecommande-ati-remote-wonder-sous-ubuntu/|ici]] une page de blog qui m'a été trés utile, testé avec succès sous festy. | + | Remarque d'un lecteur : Vous trouverez [[http://blog.roozeec.fr/2007/04/18/telecommande-ati-remote-wonder-sous-ubuntu/|ici]] une page de blog qui m'a été très utile, testé avec succès sous festy. |
Ligne 273: | Ligne 295: | ||
On installe LIRC et ce qu'il faut pour compiler le module de notre télécommande : | On installe LIRC et ce qu'il faut pour compiler le module de notre télécommande : | ||
<code>sudo apt-get install lirc lirc-modules-source module-assistant</code> | <code>sudo apt-get install lirc lirc-modules-source module-assistant</code> | ||
- | Ou par le protocole apt:// | + | Ou parle protocole **apt** |
- | + | * [[apt://lirc|lirc]] | |
- | [[apt://lirc|lirc]] | + | * [[apt://lirc-modules-source|lirc-modules-source]] |
- | + | * [[apt://module-assistant|module-assistant]] | |
- | [[apt://lirc-modules-source|lirc-modules-source]] | + | |
- | + | ||
- | [[apt://module-assistant|module-assistant]] | + | |
Ligne 315: | Ligne 334: | ||
==== Suppression du module ati_remote ==== | ==== Suppression du module ati_remote ==== | ||
- | On empêche le chargement du module (driver) ati_remote : | + | On empêche le chargement du module (pilote) ati_remote : |
<code>gksudo gedit /etc/modprobe.d/blacklist</code> | <code>gksudo gedit /etc/modprobe.d/blacklist</code> | ||
Ligne 343: | Ligne 362: | ||
<code>gedit ~/.lircrc</code> | <code>gedit ~/.lircrc</code> | ||
- | Vous trouverez des exemples de fichiers de configuration pour Lirc sur le wiki : [[:lircrc|Lirc]] | + | Vous trouverez des exemples de fichiers de configuration pour Lirc sur le wiki : [[:tutoriel:lircrc|Création de fichiers lircrc]]. |
Pour finaliser l'installation redémarrez votre ordinateur. | Pour finaliser l'installation redémarrez votre ordinateur. | ||
Ligne 354: | Ligne 373: | ||
Bon courage !! | Bon courage !! | ||
+ | |||
+ | =====Voir aussi===== | ||
+ | |||
+ | * [[http://blog.roozeec.fr/2007/04/18/telecommande-ati-remote-wonder-sous-ubuntu/|Tutoriel très utile pour paramétrer les touches]] | ||
+ | |||
+ |