====== lirc zur Multimediasteuerung einsetzen ======
{{ :doku:igorplugusb.jpg?250|}} Vor einigen Jahren habe ich mir mal den [[http://www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%20%28AVR%29_eng.htm|IgorPlugUSB]] gelötet. Das ist ein kleiner USB IR Empfänger mit einem TSOP Empfänger, AVR Tiny Mikrocontroller und ein bisschen Hühnerfutter aka Widerstände, Dioden und Kondensatoren. [[http://www.xs4all.nl/~dicks/avr/usbtiny/|USBTiny]] ist in etwa das selbe. Möglicherweise habe ich auch diese Schaltung nachgebaut. :)
Um das jetzt mit meinen Lieblingsmusikplayer zu verheiraten habe ich folgendes Unternommen:
* lirc installieren (aptitude install lirc)
* IgorPlug mit dem Konfigurationstool konfigurieren
* Gerät angestöpselt
* Fernbedienung anlernen
* irexec mit xmacro konfigurieren dass es mir die XF86Audio* Tastendrücke sendet (dann brauche ich nix umzukonfigurieren, denn die tun an meiner Tastatur schon prima)
===== Lirc und Fernbedienung =====
So mal im einzelnen hier:
aptitude install lirc xmacro
Dann die Fernbedienung anlernen (ich benutze derzeit eine Vivanco UR 4 SL Universalfernbedienung) mit dem Befehl:
irrecord -d /dev/lirc0 lircd.conf
Da benutzt man am besten die Namespaces die das Programm haben will, bedeutet also Button Namen alá KEY_HOME, KEY_NEXT usw. (was et alles gibt sieht man mit irrecord --list-namespace).
Wenn man aus Verzweiflung oder Wut nicht vorher aufgehört hat wie ein Wilder auf der armen Fernbedienung rumzuhacken, bekommt man beispielsweise folgende Datei lircd.conf:
begin remote
name lircd.conf.conf
bits 13
flags RC5|CONST_LENGTH
eps 30
aeps 100
one 981 801
zero 981 801
plead 1024
gap 112005
toggle_bit_mask 0x0
begin codes
KEY_0 0x1A00
KEY_1 0x1201
KEY_2 0x1A02
KEY_3 0x1203
KEY_4 0x1A04
KEY_5 0x1205
KEY_6 0x1A06
KEY_7 0x1207
KEY_8 0x1A08
KEY_9 0x1209
KEY_VOLUMEUP 0x1810
KEY_VOLUMEDOWN 0x1011
KEY_GREEN 0x0A0D
KEY_BLUE 0x0A0E
KEY_CHANNELUP 0x1220
KEY_CHANNELDOWN 0x1A21
KEY_NEXT 0x122A
KEY_PREVIOUS 0x122E
KEY_PLAY 0x1A2B
KEY_STOP 0x122C
KEY_YELLOW 0x0A10
KEY_RED 0x0211
KEY_MENU 0x0212
KEY_MUTE 0x180D
end codes
end remote
Dieser Dateiinhalt gilt natuerlich jetzt speziell für die besagte Vivanco UR 4 SL Fernbedienung. Es gibt schon viele vorgefertigte Konfigurationsdateien unter www.lirc.org damit man das nicht wie ich durchexerzieren muss. Nachdem man diese Datei nun nach /etc/lirc/lircd.conf kopiert hat kann man sich an die Konfiguration von irexec wagen.
===== irexec für die XF86Audio Tasten =====
Die Konfiguration für irexec liegt in der Datei .lircrc:
begin
prog = irexec
button = KEY_VOLUMEUP
config = echo KeyStrPress XF86AudioRaiseVolume KeyStrRelease XF86AudioRaiseVolume | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_VOLUMEDOWN
config = echo KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_MUTE
config = echo KeyStrPress XF86AudioMute KeyStrRelease XF86AudioMute | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_PLAY
config = echo KeyStrPress XF86AudioPlay KeyStrRelease XF86AudioPlay | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_STOP
config = echo KeyStrPress XF86AudioStop KeyStrRelease XF86AudioStop | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_NEXT
config = echo KeyStrPress XF86AudioNext KeyStrRelease XF86AudioNext | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_PREVIOUS
config = echo KeyStrPress XF86AudioPrev KeyStrRelease XF86AudioPrev | xmacroplay $DISPLAY
end
Das sorgt dafür das beispielsweise beim lirc Event KEY_PREVIOUS der Befehl der Zeile "config" ausgeführt wird. Im einzelnen wird also eine Befehlsfolge in xmacroplay geblasen welches das wiederum ausführt und den Tastendruck simuliert. Alles nicht so schön, aber funktioniert bestens.
Jetzt muss man noch irexec ausführen und testen. Klappt alles, legt man das vorzugsweise in den Autostart der X-Session. Bei mir mache ich das (Gnome) unter System->Einstellungen->Startprogramme.
Dort targe ich folgendes neues ein:
irexec -d
Und schwubba wie von geisterhand ist auch alles nach dem nächsten PC start funktional.