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:
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
und
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 br>
http://wiki.ubuntuusers.de