Table of Contents

lirc zur Multimediasteuerung einsetzen

Vor einigen Jahren habe ich mir mal den 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. 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 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.