mercredi 28 février 2007
Télécommande ATI Remote Wonder II: 5ème partie - Installation sous Dapper de A à  Z
Par david techer, mercredi 28 février 2007 à 04:47 :: Ubuntu
AVERTISSEMENT
Les notes qui suivent sont mes notes personnelles pour ma bécane mais je ne garantis pas qu'elles puissent fonctionner pour vous! Il s'agit donc d'un résumé de mes postes précédents, voir un condensé concernant l'utilisation de LIRC en fonction des diverses sources - voir en fin de ce billet - trouvées sur le Web. Comme je n'aime pas de faire de copier-coller, je me permet de citer les sources en rendant à  César ce qui appartient à  César.
PRESENTATION - OU L'ACHETER?
Une fois déballé, notre beau produit se présente ainsi

Déballage du produit: Le carton, le récepteur usb et la télécommande.
Vendu dans le commerce sous le nom de SAPPHIRE Remote Control Bob - Version 2, on peut la trouver sur ebay.fr et chez d'autres vendeurs internet comme ldlc.com
EXEMPLE ET SOLUTIONS POSSIBLES
Le but ici est d'utiliser la télécommande pour pouvoir par exemple lancer mes applications préférées sans bouger du canapé. Il existe bien un module ati_remote2
qui propose une préconfiguration pour la télécommande mais à  un moment, cette solution ne me convenait pas trop! - voir ce billet-. Finalement, j'ai opté pour lirc - Linux Infrared Control Remote - qui offre beaucoup plus de possibilités et une meilleure souplesse avec la télécommande

Exemple d'utilisation pour TVTIME

Le récepteur de la télécommande
Pré-requis
Avoir les sources du noyau. Chez moi, j'ai
uname -a
qui me renvoit 2.6.15-26-386
apt-get install linux-headers-$(uname -r) hwinfo
Installation de LIRC
On télécharger les sources de lirc pour la version 0.8.1 sur le site http://www.lirc.org
tar xvjf lirc-0.8.1.tar.bz2 cd lirc-0.8.1 ./configure --with-driver=atiusb --with-kerneldir=/usr/src/linux-headers-2.6.15-26-386 --with-x make make install
Ici, j'aurais donc préciser à  configure de prendre en considération le driver pour ATI.
- Le répertoire d'installation par défaut sera donc
/usr/local
- Un fichier de configuration générique pour toutes les télécommandes ATI sera copié à Â
/etc/lircd.conf
mais je prendrais un autre. - Les modules
lirc_atiusb
etlirc_dev
sont installés à Â/lib/modules/$(uname -r)/misc
Configuration de LIRC et de LIRCMD
Désactiver le module ati_remote2
Par défaut, Dapper reconnaà ®t quand le récepteur usb est connecté à  la machine et charge automatiquement le module par défaut (voir un des précédents billets). Pour le désactiver proprement
echo blacklist ati_remote2 >> /etc/modprobe.d/blacklist
Pour charger nos nouveaux modules au démarrage, nous ferons
echo lirc_atiusb >> /etc/modules echo lirc_dev >> /etc/modules
UDEV
Pour Dapper, un mount|grep sysfs
me renvoit
root@jenna:~# mount |grep sysfs /sys on /sys type sysfs (rw)
Donc d'après [1],, il me faut copier le fichier lirc-0.8.1/contrib/lirc.rules
dans /etc/udev/rules.d
cp /depuis/les/sources/de/lirc-0.8.1/contrib/lirc.rules /etc/udev/rules.d/
dont le contenu est
root@jenna:~# cat /etc/udev/rules.d/lirc.rules
KERNEL=="lirc[0-9]*", NAME="lirc/%n"
Lancer lircd, lircmd au démarrage, gestion avec Gnome
Lircd
permet d'affecter une action à  une touche de la télécommande en fonction du logiciel lancé. Quant à  lircmd
, ce dernier permet d'émuler une souris en utilisant certains boutons de la télécommande. En dépit de mes recheches sur le Web, je n'ai rien trouvé qui puisse permette de l'avoir d'activer lors de ma première session d'utilsation de Gnome. Ce n''est qu'en utilisant une deuxième session de gnome sur laquelle j'ai redémarré depuis une première session que je pouvais avoir accès a mes fonctionnalités de lircmd.
. Sà »rement une bonne utilisation de upate-rc.d
devrait permettre de résoudre ce problème, oà ¹ de lancer lirc depuis mon ~/.bashrc
, je n'en sais rien. Quoiqu'il en soit, j'ai directement modifier mon script /etc/init.d/gdm
pour pouvoir à  la fois utiliser lircd/licmd au démarrage de gdm. J'ai donc opté pour un appel sans installation par service, ce qui me suffit amplement pour mes besoins.
Voici donc mes modifications pour /etc/init.d/gdm
--- /etc/init.d/gdm.orig 2007-02-28 04:33:26.000000000 +0100 +++ /etc/init.d/gdm 2007-02-26 01:18:37.000000000 +0100 @@ -58,6 +58,8 @@ log_begin_msg "Starting GNOME Display Manager..." start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --name gdm $SSD_ARG -- $CONFIG_FILE >/dev/null 2>&1 || log_end_msg 1 log_end_msg 0+ /usr/local/sbin/lircd --device=/dev/lirc/0
+ /usr/local/sbin/lircmd
fi ;; stop)
Fichiers de configuration
On trouve aisément des fichiers de configuration de cette télécommande sur Internet. [2],sur son site propose ces fichiers dont je me suis inspiré ici
- lircd.conf - fichier d'affectation des boutons - qu'il faut placer dans
/etc/
; - lircmd.conf - fichier d'affectation pour émuler la souris - qu'il faut placer dans
/etc/
; - En ce qui concerne le fichie de configuration
lircrc
, vous pouvez facilement vous inspirer de [3] ou récupérer les miens. Ces fichiers-là  sont à  placés dans votre home directory/home/XXX/.lircrc
,/home/XXX/.lircrc.vlc
etc...Par exemple chez moi, la touche [TV] me permet de lancer tvtime
Mon fichier principale /home/david/.lircrc contient les lignes suivantes:
Prenons par exemple le cas maintenant avec TVTIME géré dans mon fichier .lircrc.tvtime. Je dois quand même dire que chez moi, le flux TV de la Freebox est obtenu une carte pinnacle pctv usb2 50e. Le son, je l'ai branché directement sur l'entrée Micro de mon ordi. Voici donc mon fichier /home/david/.lircrc.tvtime
Emulation de la souris: modification du fichier xorg.conf
En référence à  ce que propose [2], dans mon fichier /etc/X11/xorg.conf
, j'ai ajouté les lignes suivantes
Section "InputDevice" Identifier "LIRC-Mouse" Driver "mouse" Option "Device" "/dev/lircm" Option "Protocol" "IntelliMouse" Option "SendCoreEvents" Option "Buttons" "2" Option "ZAxisMapping" "4 5" EndSection
Et dans la section ServerLayout
Section "ServerLayout" ... ... ... ... InputDevice "LIRC-Mouse" EndSection
Irexec pour pouvoir lancer ses application préféres prises en compte pra lirc dès le démarrage de la sessions de Gnome
En référence à  [4], on ouvre un fichier /home/david/ir.sh
- par exemple - et on colle le texte suivant dedans
#!/bin/bash killall irexec /usr/local/bin/irexec -d /home/david/.lircrc
Puis depuis le menu de Gnome, Système ---> Préférences --> Sessions --> Onglet "Programme au démarrage",
on choisit d'ajouter un programme. On y met le contenu suivant
sh /home/david/ir.sh
TESTS
Reconnaissance du récepteur
Au rédémarrage de la machine, si l'on connecte le récepteur usb, un hwinfo --usb
nous renvoit
17: USB 00.0: 0000 Unclassified device [Created at usb.123] UDI: /org/freedesktop/Hal/devices/usb_device_471_602_noserial_if0 Unique ID: rg_L.JYGbF+L_KO7 Parent ID: zPk0.NPZbmpoZGj2 SysFS ID: /devices/pci0000:00/0000:00:10.2/usb4/4-2/4-2:1.0 SysFS BusID: 4-2:1.0 Hardware Class: unknown Model:"Philips Unclassified device"
Hotplug: USB Vendor: usb 0x0471"Philips"
Device: usb 0x0602 Speed: 12 Mbps Module Alias: "usb:v0471p0602d0000dc00dsc00dp00icFFisc00ip00" Driver Info #0: Driver Status:lirc_atiusb is active
Driver Activation Cmd:"modprobe lirc_atiusb"
Driver Info #1: Driver Status:ati_remote2 is not active
Driver Activation Cmd: "modprobe ati_remote2" Config Status: cfg=new, avail=yes, need=no, active=unknown Attached to: #16 (Hub)
Philips est le nom du fabricant de la télécommande. Un dmesg|grep lirc_atiusb
nous confirme aussi que le module a bien été chargé.
[17179587.812000] lirc_atiusb: USB remote driver for LIRC v0.5 [17179587.812000] lirc_atiusb: Paul Miller[17179587.828000] lirc_dev: lirc_register_plugin: sample_rate: 0 [17179587.828000] lirc_atiusb[2]: on usb4:2 [17179587.828000] usbcore: registered new driver lirc_atiusb
Lircd, et lircmd tournent?
Un petit ps aux|grep lirc
renvoit
root@jenna:~# ps -eo cmd|grep lirc /usr/local/sbin/lircd --device=/dev/lirc/0 /usr/local/sbin/lircmd /usr/local/bin/irexec -d /home/david/.lircrc grep lirc
donc les daemons de lircd et de lircmd tournent!
Reconnaissance des touches de la télécommande
En tapant irw
depuis un terminal, on obtient
david@jenna:/root$ irw
0000000002010000 00 1 /etc/lircd.conf
0000000002010000 01 1 /etc/lircd.conf
0000000002020000 00 2 /etc/lircd.conf
0000000002200000 00 ch+ /etc/lircd.conf
0000000002210000 00 ch- /etc/lircd.conf
00000000028e0000 00 ati /etc/lircd.conf
00000000028e0000 01 ati /etc/lircd.conf
00000000025c0000 00 ok /etc/lircd.conf
00000000025c0000 01 ok /etc/lircd.conf
Les touches sont donc bien reconnues !
Emulation de la souris
En appuyant sur la touche [ATI], on active/déactive le curseur de souris. Le panel multidirectionnel fonctionne
Vérification pour irexec
Une fois connecté sous ma session de gnome, l'appui sur la touche [TV] me lance tvtime comme attendu .
Elle est pas belle la vie
Conclusion
Maintenant, je vais pouvoir me poser depuis mon clic-clac confortablement pour matter la télé sur l'ordi - surtout mes dessins animés -, écouter de la musique ou matter la télé grà ¢ce à  VLC, regarder mes films préférés etc.... Je ne regrette pas mon investissement.
Sources
- [1] = http://www.trustonme.net/didactels/339.html#lance
- [2] = http://www.llaumgui.com/post/ati-remote-wonder-ii-sous-fedora-core-4-via-lirc-1ere-partie-lircd et http://www.llaumgui.com/post/ati-remote-wonder-ii-sous-fedora-core-4-via-lirc-2eme-partie-lircmd
- [3] = http://doc.ubuntu-fr.org/applications/lircrc
- [4] = http://wiki.alionet.org/doku.php?id=ati_remote_lirc