Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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:20]
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/​src/​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]]
 +
 +
  • telecommande_ati_remote_wonder.1226337638.txt.gz
  • Dernière modification: Le 18/04/2011, 14:55
  • (modification externe)