Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec
Transcription
Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec
Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC W ORKING PAPER 1 / 17 Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC W ORKING PAPER 2 / 17 COLLABORATORS TITLE : REFERENCE : Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC ACTION NAME WRITTEN BY DATE SIGNATURE March 7, 2007 REVISION HISTORY NUMBER DATE DESCRIPTION NAME Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC W ORKING PAPER 3 / 17 Contents 1 Avertissement 6 2 Où l’acheter? 6 3 Deux solutions: Module ati_remote2 et lirc 7 4 LIRC 7 4.1 Pré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.2 Compilation et installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5 Les modules 8 5.1 Désactiver le module ati_remote2 au démarrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.2 Chargement des modules de LIRC au démarrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.3 Udev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 6 Xorg: pouvoir émuler la souris 9 7 Mise en place du service 9 8 Lancer irexec au démarrage de sa session graphique 10 9 Fichiers de configuration 10 9.1 Fichier lircd.conf: Affectation des touches de la télécommande . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 9.2 Fichier lircmd.conf: Emuler une souris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 9.3 Fichier .lircrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 9.3.1 Exemple pour TVTIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 9.3.2 Exemple pour VLC - Multiposte de la Freebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 10 Tests 16 10.1 Reconnaissance du récepteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 10.2 Les daemons lircd et lircmd et irexec tournent-ils? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 10.3 Reconnaissance des touches de la télécommande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 10.4 Emulation de la souris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 10.5 Lancement des applications par irrexec 11 Sources de ce document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 17 Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC W ORKING PAPER 4 / 17 List of Figures 1 Télécommande ATI Remote Wonder II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Exemple d’utilisation avec TVTIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3 Le produit: Emballage, récepteur usb et la télécommande. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC W ORKING PAPER Figure 1: Télécommande ATI Remote Wonder II 5 / 17 Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC W ORKING PAPER 6 / 17 Figure 2: Exemple d’utilisation avec TVTIME 1 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. 2 Où l’acheter? 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 lcld.com à http://www.ldlc.com/fiche/PB00025627.html. Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC W ORKING PAPER 7 / 17 Figure 3: Le produit: Emballage, récepteur usb et la télécommande. 3 Deux solutions: Module ati_remote2 et lirc 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!. 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 4 LIRC Je détaille ici mon installation de LIRC 4.1 Pré-requis Il me faut les sources du noyau. Chez moi, j’ai uname-a qui me renvoit 2.6.15-26-386. Ainsi je fais apt-get install linux-headers-$(uname -r) hwinfo Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC W ORKING PAPER 8 / 17 4.2 Compilation et installation On télécharge 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-$(uname -r) --with ←-x make make install Note Il est tout à fait possible aussi d’avoir recours au script setup.sh fourni avec les sources mais celui-ci ne fait que préparer le terrain pour configure J’aurais donc préciser à configure de prendre en considération le driver pour ATI. Aun niveau de l’installation, • Le répertoire d’installation par défaut sera donc /usr/local; • Le fichier de configuration générique pour toutes les télécommandes ATI sera copié à /etc/lircd.conf mais je n’en tiendrais pas compte ici. • Les modules lirc_atiusb et lirc_dev sont installés à /lib/modules/$(uname-r)/misc 5 Les modules Il nous faut maintenant procéder à quelques modifications 5.1 Désactiver le module ati_remote2 au démarrage 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 5.2 Chargement des modules de LIRC au démarrage Pour charger nos nouveaux modules au démarrage, nous ferons echo lirc_atiusb >> /etc/modules echo lirc_dev >> /etc/modules 5.3 Udev Pour Dapper, un mount|grepsysfs me renvoit. Je ne suis donc pas en devfs root@jenna:~# mount |grep sysfs /sys on /sys type sysfs (rw) il me faut copier le fichier lirc-0.8.1/contrib/lirc.rules dans /etc/udev/rules.d pour que udev me crée le device nécessaire pour lirc. Dans mon cas, ce sera /dev/lirc0 Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC W ORKING PAPER 9 / 17 cp /depuis/les/sources/de/lirc-0.8.1/contrib/lirc.rules /etc/udev/rules.d/ Pour information, le contenu du fichier en question est root@jenna:~# cat /etc/udev/rules.d/lirc.rules KERNEL=="lirc[0-9]*", NAME="lirc/%n" 6 Xorg: pouvoir émuler la souris Dans mon fichier /etc/X11/xorg.conf, j’ai ajouté la section suivante 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, j’ai ajouté Section "ServerLayout" ... ... ... ... InputDevice "LIRC-Mouse" EndSection 7 Mise en place du service 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, Ou peut-être que gdm et lirc se lancent en même temps. 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 en faisant un diff --- /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) Il suffira donc d’ajouter les deux lignes commençant par /usr/local/sbin/.... dans votre fichier ←- Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC W ORKING PAPER 10 / 17 8 Lancer irexec au démarrage de sa session graphique on ouvre un fichier nommé par exemple /home/david/ir.sh et on colle le texte suivant #!/bin/bash killall irexec /usr/local/bin/irexec -d ~/.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 ~/ir.sh On s’assure bien sûr d’avoir donner le droit d’exécution à l’utilisateur de ce fichier! chmod u+x ir.sh 9 Fichiers de configuration Il exite trois fichiers de configuration • /etc/lircd.conf pour la configuration des touches de la télécommande; • /etc/lircmd.conf pour émuler la souris; • ~/.lircrc fichier personnel qui va permettre d’affecter une action ou plusieurs actions à une touche selon l’application souhaitée? Vous pouvez obtenir un meilleur descriptif de ces fichiers à http://www.lirc.org/html/configure.html. Voyons le contenu des trois fichiers de configuration en détail 9.1 Fichier lircd.conf: Affectation des touches de la télécommande Le contenur du fichier suivant est /etc/lircd.conf. # # # # # # # # # # # # Please make this file available to others by sending it to <[email protected]> this config file was automatically generated using lirc-0.7.2(any) on Thu Jan 5 21:26:37 2006 contributed by brand: /home/llaumgui/lir model no. of remote control: devices being controlled by this remote: begin remote name bits eps aeps one zero /etc/lircd.conf 16 30 100 0 0 0 0 Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC W ORKING PAPER 11 / 17 pre_data_bits 8 pre_data 0x0 post_data_bits 16 post_data 0x0 gap 203905 min_repeat 1 toggle_bit 0 begin codes a b c d e f power dvd tv interrogation fullscreen hand ati mouse_right-click mouse_left-click mouse_up mouse_right-up mouse_right mouse_right-down mouse_down mouse_left-down mouse_left mouse_left-up vol+ volmute ch+ ch1 2 3 4 5 6 7 8 9 0 list check chrono info up down left right ok play pause rec stop forward 0x0278 0x0279 0x027A 0x027B 0x027C 0x027D 0x020C 0x0238 0x0239 0x02BE 0x02D5 0x02D0 0x028E 0x02AA 0x02A9 0x01FF 0x11FF 0x10FF 0x12FF 0x02FF 0x22FF 0x20FF 0x21FF 0x0210 0x0211 0x020D 0x0220 0x0221 0x0201 0x0202 0x0203 0x0204 0x0205 0x0206 0x0207 0x0208 0x0209 0x0200 0x0254 0x0282 0x0296 0x02F9 0x0258 0x0259 0x025A 0x025B 0x025C 0x022C 0x0230 0x0237 0x0231 0x0228 Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC backward end codes W ORKING PAPER 12 / 17 0x0229 end remote 9.2 Fichier lircmd.conf: Emuler une souris Le contenu est # # lircmd config file # c : # Protocole utilisà PROTOCOL IntelliMouse # ACCELERATOR start max multiplier ACCELERATOR 1 30 1 # Bouton | ACCELERATOR 2 30 5utiliser pour activer la souris : TOGGLE_ACTIVATE * ati # Maping des directions : MOVE_N * mouse_up MOVE_NE * mouse_right-up MOVE_E * mouse_right MOVE_SE * mouse_right-down MOVE_S * mouse_down MOVE_SW * mouse_left-down MOVE_W * mouse_left MOVE_NW * mouse_left-up # Maping de la molette : MOVE_IN * up MOVE_OUT * down # Maping des clicks : BUTTON1_CLICK * mouse_left-click BUTTON3_CLICK * mouse_right-click Ici donc j’ai toutes les directions à partir du gros bouton de la télécommande mais aussi le clic-droit et le clic-gauche respectivement par rapport aux petits dessins qui accompagnent la télécommande. 9.3 Fichier .lircrc Ce fichier est facilement paramétrable. Voici un exemple pour configure tvtime, rhythmbox, vlc avec le multiposte de la Freebox, et totem Note Vous pouvez télécharger mes exemples à http://www.davidgis.fr/download/lircrc.zip begin prog button config mode end = = = = irexec tv if [ $(ps -eo cmd | grep -c ^tvtime$) -eq 0 ]; then (tvtime &); fi tvtime Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC W ORKING PAPER 13 / 17 begin prog = irexec button = b config = if [ $(ps -eo cmd | grep -c ^vlc) -eq 0 ]; then (vlc "http://mafreebox.freebox. ←fr/freeboxtv/playlist.m3u" &); fi mode = vlc end begin prog = irexec button = e config = if [ $(ps -eo cmd | grep -c ^mplayer$) -eq 0 ]; then (mplayer -playlist /media/ ←LACIE/Video/playlist.txt &); fi mode = mplayer end begin prog = irexec button = dvd config = if [ $(ps -eo cmd | grep -c ^totem$) -eq 0 ]; then (totem &); fi mode = totem end begin prog = irexec button = a config = if [ $(ps -eo cmd | grep -c ^rhythmbox$) -eq 0 ]; then (rhythmbox &); fi mode = rhythmbox end include ~/.lircrc.vlc include ~/.lircrc.totem include ~/.lircrc.tvtime include ~/.lircrc.rhythmbox 9.3.1 Exemple pour TVTIME Par exemple chez moi, la sortie péritel de la télévision de la freebox est relié à mon ordinateur par un pinnace pctv usb2. Le son de la télévision est connecté à mon ordinateur par l’entré Micro. Donc pour pouvoir gérer le son, passer en mode pleinne écran, le contenu de mon fichier ~/.lircrc.tvtime sera ## TVTIME ## begin tvtime begin prog = irexec remote = * button = mute config = /usr/bin/amixer -c 0 set ’Mic’ toggle end # # MONTER LE SON # begin prog = irexec remote = * button = vol+ config = /usr/bin/amixer -c 0 set ’Mic’ 3+ end # # BAISSER LE SON # begin prog = irexec remote = * Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC W ORKING PAPER 14 / 17 button = volconfig = /usr/bin/amixer -c 0 set ’Mic’ 3end # # quitter tvtime # begin prog = irexec button = power config = tvtime-command QUIT end # c # en plein Ãcran # begin prog = irexec button = fullscreen config = tvtime-command TOGGLE_FULLSCREEN end end tvtime 9.3.2 Exemple pour VLC - Multiposte de la Freebox Pour pouvoir changer de chaines grâce aux boutons [+] et [-] à côté de CH,quitter, gérer le volume ...., le contenu de mon fichier ~/.lircrc.vlc sera ## VLC ## begin vlc begin prog = vlc button = play config = key-play repeat=32 end begin prog = vlc button = pause config = key-play-pause end begin prog = vlc button = stop config = key-stop end begin prog = vlc button = power config = key-quit repeat=1 end begin prog = vlc button = ch+ config = key-next end begin prog = vlc button = chconfig = key-prev Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC end begin prog = vlc button = fullscreen config = key-fullscreen end begin prog = vlc button = rewind config = key-slower end begin prog = vlc button = forward config = key-faster end #Audio controls begin prog = vlc button = volconfig = key-vol-down repeat=0 end begin prog = vlc button = vol+ config = key-vol-up repeat=0 end begin prog = vlc button = mute config = key-vol-mute end #For dvd navigation begin prog = vlc button = 4 config = key-nav-left end begin prog = vlc button = 8 config = key-nav-down end begin prog = vlc button = 2 config = key-nav-up end begin prog = vlc button = 6 config = key-nav-right end begin prog = vlc button = 5 config = key-nav-activate end begin W ORKING PAPER 15 / 17 Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC W ORKING PAPER 16 / 17 prog = vlc button = source config = key-disc-menu end end vlc Voilà! :) 10 Tests Nous allons effectuer ici quelques tests. Pour celà, il est nécessaire de redémarrer la machine avec la télécommande et le récepteur connecté sur un des ports usb de la machine 10.1 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: <code>"Philips Unclassified device"</code> Hotplug: USB Vendor: usb 0x0471 <code>"Philips"</code> Device: usb 0x0602 Speed: 12 Mbps Module Alias: "usb:v0471p0602d0000dc00dsc00dp00icFFisc00ip00" Driver Info #0: Driver Status: <code>lirc_atiusb is active</code> Driver Activation Cmd: <code>"modprobe lirc_atiusb"</code> Driver Info #1: Driver Status: <code>ati_remote2 is not active</code> Driver Activation Cmd: "modprobe ati_remote2"</code> 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|greplirc_atiusb nous confirme aussi que le module a bien été chargé. [17179587.812000] [17179587.812000] [17179587.828000] [17179587.828000] [17179587.828000] lirc_atiusb: USB remote driver for LIRC v0.5 lirc_atiusb: Paul Miller <[email protected]> lirc_dev: lirc_register_plugin: sample_rate: 0 lirc_atiusb[2]: on usb4:2 usbcore: registered new driver lirc_atiusb 10.2 Les daemons lircd et lircmd et irexec tournent-ils? On obtient 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 Télécommande ATI Remonte Wonder II sous Ubuntu Dapper avec LIRC W ORKING PAPER 10.3 Reconnaissance des touches de la télécommande Dans un terminal, en tapant irw- utilitaire de LIRC pour mapper les touches déjà configurées - j’obtiens 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 10.4 Emulation de la souris En appuyant sur la touche [ATI], on active/désactive le curseur de souris. Le panel multidirectionnel fonctionne. 10.5 Lancement des applications par irrexec Enjoy ;) ! 11 Sources de ce document Les liens qui m’ont permis de réaliser ce document sont • http://www.trustonme.net/didactels/339.html#lance • http://www.llaumgui.com/post/ati-remote-wonder-ii-sous-fedora-core-4-via-lirc-1ere-partie-lircd • http://www.llaumgui.com/post/ati-remote-wonder-ii-sous-fedora-core-4-via-lirc-2eme-partie-lircmd • http://doc.ubuntu-fr.org/applications/lircrc • http://wiki.alionet.org/doku.php?id=ati_remote_lirc 17 / 17