Ich habe hier noch aus Windows-Zeiten eine RF Fernbedienung mit USB-Empfänger rumliegen, die RF MCE Remote Control, Model OR23E von X10. Ich habe mir die Frage gestellt, ob es eventuell möglich ist, diese Fernbedienung auch unter Linux zu nutzen. Wichtig waren mir die Funktionen Lauter/Leiser, Stop, Play und Pause und vor allem die Bedienung von VLC, wobei ich bei VLC auch in den Vollbildmodus wechseln wollte und das Seitenverhältnis ändern können wollte. Vorweg: das ist mir glücklicherweise gelungen! :)
Darüber hinaus ist es möglich, den Computer mit der Fernbedienung runterfahren oder neu starten zu lassen.
Also, was wird benötigt?
Zunächst einmal die o. g. Fernbedienung.



Model der Fernbedienung in Erfahrung bringen

Ob es sich insoweit um die gleiche handelt, bringt man wie folgt in Erfahrung:

ronny@ubuntu:~$ lsusb
Bus 002 Device 002: ID 0bc7:0006 X10 Wireless Technology, Inc. Wireless Transceiver (ACPI-compliant)

Meine Fernbedigung hat also die ID 0bc7:0006 und die folgenden Ausführungen beziehen sich somit nur auf dieses Model.


Benötigte Pakete

Benötigt werden die Pakete lirc, lirc-x und xmacro:

$ sudo apt-get install lirc lirc-x xmacro

Im darauffolgenden Dialog wählt man ATI/NVidia/X10 RF Remote (userspace) aus und bestätigt mit Ok.

Anschließend wird “None” ausgewählt und ebenfalls mit Ok bestätigt.

Sollte euch ein Fehler unterlaufen sein: Keine Panik! Mit

$ sudo dpkg-reconfigure lirc

kann alles neu konfiguriert werden.

Sofern man den RF-USB-Empfänger bereits angeschlossen hatte, muss das dabei geladene Kernelmodul wieder entladen werden, damit es nicht zu Diskrepanzen zwischen diesem und lirc kommt, und danach lirc neugestartet werden:

$ sudo rmmod ati_remote
$ sudo /etc/init.d/lirc restart

Findet man in älteren Anleitungen noch den Hinweis, man müsse das sooeben entladene Modul in /etc/modprobe.d/blacklist eintragen, so erübrigt sich das ganze nunmehr, weil lirc selbst das Modul unter /etc/modprobe.d/blacklist-lirc blacklistet und es somit nicht mehr geladen wird.

Tasten der Fernbedienung konfigurieren

Als nächstes müssen die Tasten der Fernbedienung konfiguriert werden. Ich habe für dieses Fernbedieungsmodel vergeblich diverse Konfigurationsdateien ausprobiert. Einige Tasten wurden erkannt, viele aber auch nicht, sodass ich eine eigene Konfigurationsdatei erstellen musste. Dies geschieht wie folgt:

$ sudo /etc/init.d/lirc stop
$ sudo irrecord -H atilibusb ~/lircd.conf

gegebenenfalls muss noch das Kernelmodul von lirc händisch entladen werden:

$ sudo rmmod lirc_atiusb

Danach werdet ihr aufgefordert, zunächst irgendeine Taste gedrückt zu halten, was ihr dann natürlich auch tut. Im nächsten Schritt werden die einzelnen Tasten zugewiesen. Zu beachten ist, dass die Tastenbenennung in dieser Konfigurationi nicht frei erfolgen kann. Für die rote Taste auf der Fernbedienung ist es z.B. nicht möglich, sie “Rote_Taste” zu nennen.
Stattdessen gibt es einige Vorgaben für die Benennung der Tasten, die mit folgendem Befehl, evtl. in einem weiteren Terminal, aufgerufen werden können:

$ irrecord --list-namespace

So hat in meinem Beispiel zwingend als Benennung für die rote Taste KEY_RED zu erfolgen. Für die blaue entsprechend KEY_BLUE, für Play KEY_PLAY etc.
Solltet ihr eigene Bezeichnungen vornehmen wollen, so muss der Befehl irrecord mit dem Parameter –disable-namespace aufgerufen werden:

$ sudo irrecord -H atilibusb --disable-namespace ~/lircd.conf

Nachdem alle Tasten benannt sind, ist die soeben generierte lircd.conf in das richtige Verzeichnis zu kopieren, damit sie von lirc gefunden und auch benutzt wird:

$ sudo mv /etc/lirc/lircd.conf /etc/lirc/lircd.conf.original
$ sudo cp ~/lircd.conf /etc/lirc/lircd.conf
$ sudo /etc/init.d/lirc start

Wer nunmehr die gleiche Fernbedienung hat wie ich, der könnte theoretisch die von mir bereits erzeugte lircd.conf benutzen können.
Datei einfach in einen beliebigen Ordner herunterladen und danach an die richtige Stelle kopieren:

$ sudo mv /etc/lirc/lircd.conf /etc/lirc/lircd.conf.original
$ sudo cp /pfad/zur/heruntergeladenen/lircd.conf /etc/lirc/lircd.conf
$ sudo /etc/init.d/lirc restart

Wer nicht meine lircd.conf benutzt, muss darauf achten, dass der Fernbedieungsname in der lircd.conf auch in den weiter unten aufgeführten Dateien wieder auftaucht (bei mir x10_or23e).

Ob die Fernbedienung nun Ordnungsgemäß funktioniert könnt ihr mit dem Befehl irw überprüfen.

ronny@ubuntu:~$ irw
00000014d7020000 03 KEY_POWER x10_or23e
00000014d7020000 04 KEY_POWER x10_or23e
0000001487b20000 03 KEY_RED x10_or23e
0000001487b20000 04 KEY_RED x10_or23e
0000001409340000 03 KEY_YELLOW x10_or23e
0000001409340000 04 KEY_YELLOW x10_or23e
0000001488b30000 03 KEY_GREEN x10_or23e
0000001488b30000 04 KEY_GREEN x10_or23e

Jeder Tastendruck sollte dabei eine entsprechende Ausgabe zur Folge haben.


Programme für Lirc konfigurieren

Lirc ist nun imstande, die Signale der Fernbedienung zu empfangen, weiß diese aber noch nicht zu interpretieren. Es ist nun also geboten, den Tastendrücken auch entsprechende Aktionen zuzuweisen. Diese Zuweisungen erfolgen in der Datei ~/.lircrc.
Im folgenden findet ihr meine Konfigurationen, mit der die Medientasten, vlc und das Herunterfahren des Rechners per Fernbedienung gesteuert werden können. Nähere Informationen zur Tastenbelegung und zur Verwendung von Lirc kann man z.B. im Ubuntu-Wiki finden, wobei einige Einträge offensichtlich nicht mehr ganz up-to-date sind.
Es sind folgende Dateien zu erstellen:

~/.lircrc
~/.lirc/mediakeys
~/.lirc/vlc
~/.lirc/gnome-session-save

Wobei deren Inhalte wie folgt aussehen:

a) ~/.lircrc

#All application specific lircrc files are within ~/.lirc
include ~/.lirc/mediakeys
include ~/.lirc/vlc
### Session
begin
        prog = irexec
        button = KEY_POWER
        config = gnome-session-save --shutdown-dialog --gui
        mode = gnome-session-save
end
include ~/.lirc/gnome-session-save

b) .lirc/mediakeys

### MediaKeys
begin
        prog = irexec
        button = KEY_MEDIA
        repeat = 1
        delay = 5
        config = echo KeyStrPress XF86AudioMedia KeyStrRelease XF86AudioMedia | xmacroplay $DISPLAY
end
begin
        prog = irexec
        button = KEY_VOLUMEUP
        repeat = 1
        delay = 5
        config = echo KeyStrPress XF86AudioRaiseVolume KeyStrRelease XF86AudioRaiseVolume | xmacroplay $DISPLAY
end
begin
        prog = irexec
        button = KEY_VOLUMEDOWN
        repeat = 1
        delay = 5
        config = echo KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume | xmacroplay $DISPLAY
end
begin
        prog = irexec
        button = KEY_MUTE
        repeat = 0
        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_PAUSE
        config = echo KeyStrPress XF86AudioPause KeyStrRelease XF86AudioPause | 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
begin
end

c) ~/.lirc/gnome-session-save

begin gnome-session-save
        begin
                prog = irxevent
                button = KEY_UP
                config = Key Up CurrentWindow
        end
        begin
                prog = irxevent
                button = KEY_DOWN
                config = Key Down CurrentWindow
        end
        begin
                prog = irxevent
                button = KEY_OK
                config = Key Return CurrentWindow
        end
end gnome-session-save

d) ~/.lirc/vlc

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_UP
    config = key-nav-up
    repeat = 0
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_LEFT
    config = key-nav-left
    repeat = 0
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_OK
    config = key-nav-activate
    repeat = 0
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_RIGHT
    config = key-nav-right
    repeat = 0
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_DVD
    config = key-disc-menu
    repeat = 0
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_VOLUMEUP
    config = key-vol-up
    repeat = 0
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_CHANNELUP
    config = key-next
    repeat = 0
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_VOLUMEDOWN
    config = key-vol-down
    repeat = 0
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_MUTE
    config = key-vol-mute
    repeat = 0
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_CHANNELDOWN
    config = key-prev
    repeat = 0
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_REWIND
    config = key-slower
    repeat = 0
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_PLAYPAUSE
    config = key-play-pause
    repeat = 0
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_FORWARD
    config = key-faster
    repeat = 0
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_STOP
    config = key-quit
    repeat = 0
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_PAUSE
    config = key-play-pause
    repeat = 0
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_ENTER
    config = key-nav-activate
    repeat = 0
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_RED
    config = key-toggle-fullscreen
    repeat = 32
    delay = 0
end

begin
    remote = x10_or23e
    prog = vlc
    button = KEY_YELLOW
    config = key-aspect-ratio
    repeat = 32
    delay = 0
end

Wer möchte, kann die drei Dateien auch einfach von hier runterladen und diese benutzen.

Zum Testen der Konfiguration, nach dem Neustart von lirc, kann man

$ irexec

und

$ irxevent

eingeben und sehen, ob die jeweiligen Tasten erkannt werden.

Sollte alles zur vollen Zufriedenheit erkannt worden sein, sind die Daemons wie folgt zu starten:

$ irexec -d
$ irxevent -d


Autostart

Um die Programme bei jedem Gnome-Start zu starten, sind die Daemons noch zu den Autostartprogrammen unter System — Einstellungen — Startprogramme einzutragen.

Damit sollten nun VLC, die Medientasten und das Herunterfahren/Neustarten des Computers funktionieren.

#EOF.

Quellen:
http://linuxundich.de
http://wiki.ubuntuusers.de