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