Infos générales
J'avais acheté il y a quelque temps une télécommande ATI pour pouvoir piloter mon PC. Je voulais à vrai dire voir un petit peu de quoi ca avait l'air.

Et àprès quelques manipulations et tests, cette télécommande est restée dans le fond de mon tiroir. Je l'ai retrouvé il y a quelques jour et j'ai donc voulu la tester sous Ubuntu. La version Ubuntu est la Edgy.
tout d'abord, voir comment Ubuntu réagi lorsque je branche le capteur HF sur un port USB. Pour celà je regarde les messages systèmes en tapant dmesg dans un terminal :
Je lance maintenant un film avec mplayer et je m'apercois que beaucoup de touches ne fonctionne pas ou font pas vraiment ce qu'il faut.
donc, je surfe, je teste, je bidouille, eh oui .... pour en arriver à ce qui suit.
Il y a en fait 2 méthodes pour faire fonctionner la télécommande, soit par un module directement impléménté dans le kernel (ati_remote), soit par un programme externe : lirc.
C'est cette dernière méthode que je vais utiliser car grace à elle on a un contrôle total de la télécommande pour chaque application que l'on veut piloter.
Tout d'abord l'installation se fait sans problèmes particulier , un simple sudo apt-get install lirc et c'est parti.
Deux fichiers sont utilisés pour la configuration de la télécommande :
Ce fichier est utilisé pour définir le driver que l'on va utiliser pour la télécommande, dans ce cas c'est : atiliusb
Le fichier ressemble à ca :
Ce fichier est très important car c'est lui qui défini les codes des touches de la télécommande. Heureusement, il existe un programme qui permet d'enregistrer pour chaque touche les codes correspondant. C'est assez laborieux a faire quand même, mais bon, voici comment faire :
Tout d'abord il faut passer en mode root : sudo su
Le programme utilisé est le programme irrecord. Comme le dit le programme lui-même :
irrecord - application for recording IR-codes for usage with lirc
En francais dans le texte : irrecord - programme pour enregister les codes infra-rouges avec lirc
La commande à lancer est donc : irrecord -H atilibusb atiremotewonder.conf
Note : si vous n'êtes pas en mode root vous risquez d'avoir le message d'erreur suivant :
irrecord: could not init hardware (lircd running ? --> close it, check permissions)
Bon, Allons-y pour la définition des touches (en gras les commentaires que j'ai rajoutés) :
Maintenant et c'est très important, il faut copier ce fichier dans le répertoire /etc/lirc avec comme nom : lircd.conf
Commande à taper : sudo cp atiremotewonder.conf /etc/lirc/lircd.conf
Le fichier ressemble à ca :
Maintenant testons tout ca !
Premièrement, relancer le démon lirc pour prendre en compte nos fichiers de configurations. Ceci se fait avec la commande : sudo dpkg-reconfigure lirc
A ce moment dès qu'une touche de la télécommandes est appuyé, son code et son nom apparait :
Configuration des bouton pour une application : mplayer
Lirc chargera (si il existe) le fichier qui se trouve sous votre répertoire personnel : ~/.lircrc
Ce fichier definit pour chaque application, le role de chaque touche. Par exemple :
Voic un fichier pour mplayer : ~/lircrc.mplayer. A renommer en .lircrc.mplayer pour le cacher
A noter que le fichier ~/.lircrc supporte les inclusion de fichier, ce qui peut etre plus facile à ecrire et à maintenir . Comme par exemple : include ~/.lircrc.mplayer
Faire fonctionner tout ca au démarrage :
Ce qu'il faut tout simplement faire, c'est de supprimer le chargement du module ati_remote au démarrage. Ceci se fait dans le fichier : /etc/modprobe.d/blacklist
Il suffit d'y rajouter (en mode root bien sur) les lignes suivantes :
Amusez vous bien !!

Et àprès quelques manipulations et tests, cette télécommande est restée dans le fond de mon tiroir. Je l'ai retrouvé il y a quelques jour et j'ai donc voulu la tester sous Ubuntu. La version Ubuntu est la Edgy.
tout d'abord, voir comment Ubuntu réagi lorsque je branche le capteur HF sur un port USB. Pour celà je regarde les messages systèmes en tapant dmesg dans un terminal :
[17194778.044000] input: X10 Wireless Technology Inc USB Receiver as /class/input/input3Apparemment, c'est ok, elle est reconnue. Je double-vérifie en lancant la commande lsusb pour voir les connections sur les ports USB :
[17194778.044000] usbcore: registered new driver ati_remote
[17194778.044000] drivers/usb/input/ati_remote.c: Registered USB driver ATI/X10 RF USB Remote Control v. 2.2.1
[17194778.052000] drivers/usb/input/ati_remote.c: Weird data, len=1 ff 00 00 00 00 00 ...
Bus 002 Device 001: ID 0000:0000Egalement présente en tant que module X10. Donc tout va bien .... a priori...
Bus 001 Device 005: ID 0bc7:0004 X10 Wireless Technology, Inc. X10 Receiver
Bus 001 Device 003: ID 046d:0929 Logitech, Inc.
Bus 001 Device 004: ID 1532:0003
Bus 001 Device 001: ID 0000:0000
Je lance maintenant un film avec mplayer et je m'apercois que beaucoup de touches ne fonctionne pas ou font pas vraiment ce qu'il faut.
donc, je surfe, je teste, je bidouille, eh oui .... pour en arriver à ce qui suit.
Il y a en fait 2 méthodes pour faire fonctionner la télécommande, soit par un module directement impléménté dans le kernel (ati_remote), soit par un programme externe : lirc.
C'est cette dernière méthode que je vais utiliser car grace à elle on a un contrôle total de la télécommande pour chaque application que l'on veut piloter.
Tout d'abord l'installation se fait sans problèmes particulier , un simple sudo apt-get install lirc et c'est parti.
Dépaquetage de lirc (à partir de .../lirc_0.8.1+cvs20070310-0ubuntu1~edgy1_i386.deb) ...Un message indique que lirc n'est pas configuré. Normal. donc configurons tout celà.
Paramétrage de lirc (0.8.1+cvs20070310-0ubuntu1~edgy1) ...
Setting up modutils file
##################################################
## LIRC IS NOT CONFIGURED ##
## ##
## read /usr/share/doc/lirc/html/configure.html ##
##################################################
Starting lirc daemon:.
Deux fichiers sont utilisés pour la configuration de la télécommande :
- /etc/lirc/lircd.conf
- /etc/lirc/hardware.conf
Ce fichier est utilisé pour définir le driver que l'on va utiliser pour la télécommande, dans ce cas c'est : atiliusb
Le fichier ressemble à ca :
# /etc/lirc/hardware.confFichier /etc/lirc/lircd.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS=""
#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD=false
#Try to load appropriate kernel modules
#LOAD_MODULES=true
# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="atilibusb"
# If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be
# automatically used instead
DEVICE=""
MODULES=""
# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""
Ce fichier est très important car c'est lui qui défini les codes des touches de la télécommande. Heureusement, il existe un programme qui permet d'enregistrer pour chaque touche les codes correspondant. C'est assez laborieux a faire quand même, mais bon, voici comment faire :
Tout d'abord il faut passer en mode root : sudo su
Le programme utilisé est le programme irrecord. Comme le dit le programme lui-même :
irrecord - application for recording IR-codes for usage with lirc
En francais dans le texte : irrecord - programme pour enregister les codes infra-rouges avec lirc
La commande à lancer est donc : irrecord -H atilibusb atiremotewonder.conf
Note : si vous n'êtes pas en mode root vous risquez d'avoir le message d'erreur suivant :
irrecord: could not init hardware (lircd running ? --> close it, check permissions)
Bon, Allons-y pour la définition des touches (en gras les commentaires que j'ai rajoutés) :
Press RETURN to continue.Le fichier atiremotewonder.conf à donc été crée.
Hold down an arbitrary button. Appuyer de facon continue sur un bouton"
................................................................................
Found gap length: 147959
Now enter the names for the buttons.
Please enter the name for the next button (press <ENTER> to finish recording)
MENU Definion de la touche MENU
Now hold down button "MENU" Appuyer sur le bouton adequat
Please enter the name for the next button (press <ENTER> to finish recording)
Et ainsi de suite
Quand c'est fini, appuyer sur ENTREE
Checking for toggle bit mask.
Please press an arbitrary button repeatedly as fast as possible.
Make sure you keep pressing the SAME button and that you DON'T HOLD
hthe button down!.
If you can't see any dots appear, then wait a bit between button presses.
.............................. Là, j'ai pas trop compris le but de la manip ....
Invalid toggle bit.
Successfully written config file.
Maintenant et c'est très important, il faut copier ce fichier dans le répertoire /etc/lirc avec comme nom : lircd.conf
Commande à taper : sudo cp atiremotewonder.conf /etc/lirc/lircd.conf
Le fichier ressemble à ca :
begin remoteVous pouvez le télécharger ici : /etc/lirc/lircd.conf
name atiremotewonder.conf
bits 16
eps 30
aeps 100
one 0 0
zero 0 0
pre_data_bits 8
pre_data 0x14
post_data_bits 16
post_data 0x0
gap 148030
toggle_bit_mask 0x0
min_repeat 3
begin codes
A 0xC500
.........
VOLDOWN 0xCE09
............
CLOSE 0x417C
............
end codes
end remote
Maintenant testons tout ca !
Premièrement, relancer le démon lirc pour prendre en compte nos fichiers de configurations. Ceci se fait avec la commande : sudo dpkg-reconfigure lirc
sudo dpkg-reconfigure lircMaintenant, lancons un programme qui permet d'afficher les touches appuyées : irw
Password:
Stopping lirc daemon: lircmd lircd.
Starting lirc daemon: lircd.
A ce moment dès qu'une touche de la télécommandes est appuyé, son code et son nom apparait :
0000014df1a0000 03 UP atiremotewonder.confSuper, ca marche !
00000014df1a0000 04 UP atiremotewonder.conf
00000014e7220000 00 DOWN atiremotewonder.conf
00000014e7220000 01 DOWN atiremotewonder.conf
00000014e7220000 02 DOWN atiremotewonder.conf
00000014e7220000 03 DOWN atiremotewonder.conf
00000014e7220000 04 DOWN atiremotewonder.conf
00000014e41f0000 00 NEXT atiremotewonder.conf
00000014e41f0000 01 NEXT atiremotewonder.conf
00000014e41f0000 02 NEXT atiremotewonder.conf
Configuration des bouton pour une application : mplayer
Lirc chargera (si il existe) le fichier qui se trouve sous votre répertoire personnel : ~/.lircrc
Ce fichier definit pour chaque application, le role de chaque touche. Par exemple :
beginCe qu'il faut absolument, c'est que le nom du champ button soit présent également dans le fichier lircd.conf. C'est à dire que si j'écris : button = volumeup et que dans lirc.conf j'ai volup, ca ne marchera pas.
button = volup
prog = mplayer
config = volume 10
repeat = 5
end
Voic un fichier pour mplayer : ~/lircrc.mplayer. A renommer en .lircrc.mplayer pour le cacher
A noter que le fichier ~/.lircrc supporte les inclusion de fichier, ce qui peut etre plus facile à ecrire et à maintenir . Comme par exemple : include ~/.lircrc.mplayer
Faire fonctionner tout ca au démarrage :
Ce qu'il faut tout simplement faire, c'est de supprimer le chargement du module ati_remote au démarrage. Ceci se fait dans le fichier : /etc/modprobe.d/blacklist
Il suffit d'y rajouter (en mode root bien sur) les lignes suivantes :
#Ne pas charger le module ati_remoteUn petit test avec un film avec mplayer. Test rapide , augmentation/diminution du volume, pause, stop . tout fonctionne correctement. Génial !
blacklist ati_remote
Amusez vous bien !!
par Roozeec
publié dans :
Ubuntu

