====== 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.