Grundlagen |
Installation |
Konfiguration |
Die Modelle | Softwareinst. via inputlirc | Konfiguration – Treiber |
Signalverarbeitung | Softwareinst. via hardware.conf | Konfiguration Tastenzuordnungen |
Tasten Befehle und Funktionen zuordnen | ||
Problemlösungen | Tipps und Tricks | |
———————————————- | ———————————————- | ———————————————- |
Die X10 Fernbedienungsmodelle
Die X10 Fernbedienungen von Medion übertragen Signale per Funk statt über Infrarot. Somit ist kein direkter Sichtkontakt nötig und die Fernbedienung ist nahezu in der ganzen Wohnung nutzbar (z.B. Lautstärkeregelung in anderen Räumen).
Einige Modelle:
Medion 2002 | Medion OR24V | Medion OR33V | Medion 8080 | Medion OR28V | Externer Empfänger |
Signalverarbeitung durch Lirc/Inputlirc
Die Signalverarbeitung von der Eingabe auf der Fernbedienung bis zur Aktion im KODI Mediacenter:
- Das Drücken einer Taste auf der Fernbedienung löst über den Empfänger und den geladenen Treiber (Blau .ko Modul) ein Kernelevent (Grün) aus.
- In der /etc/lircd/lircd.conf Datei werden die Kernelevents in interpretierbare Bezeichnungen übersetzt (bei der Nutzung von inputlirc nicht nötig, da inputlirc die Zuweisung einer Keymap übernimmt).
- Die in der /etc/lircd/lircd.conf bzw. von inputlirc zugeordneten Tasten werden in der ~/.xbmc/userdata/Lircmap.xml XBMC Tasten zugewiesen.
- Die ~/.xbmc/userdata/keymaps/remote.xml wiederum wird genutzt, um die Menüs des XBMC zu steuern. Hier erfolgt die endgültige Zuordnung der Tasten in XBMC Steuerbefehle in Abhängigkeit des aktiven Fensters/Menus (Ausführliche Info).
Installation
Installieren der Software (Automatische Einrichtung der Fernbedienung mit inputlirc)
Wenn Lirc, Eventlirc und Inputlirc nicht installiert ist, reicht es, den Receiver anzuschließen und die Lautstärketasten der Fernbedienung (FB) zu probieren. Lässt sich die Lautstärke steuern, kennt der Kernel den Receiver und die FB. Eine passende Keymap ist im Verzeichnis /lib/udev/rc_keymaps/ vorhanden. Dabei kann es allerdings vorkommen, dass einige Tasten nicht vom Kerneltreiber erkannt oder zugewiesen werden. Dann kann auf Lirc zurückgegriffen werden:
1 |
sudo apt-get install lirc inputlirc |
Das Paket lirc-x ist optional um Desktopanwendungen zu steuern (für Kodi und den VDR nicht nötig). Mithilfe des folgenden Shell Befehls lassen sich Eingaben der Fernbedienung prüfen. Ist inputlirc richtig konfiguriert, erscheinen neben den Kernelevents auch die Zuordnungen der einzelnen Tasten.
1 2 3 4 5 |
irw cf 0 KEY_PLAY /dev/input/event5 6c 0 KEY_DOWN /dev/input/event5 67 0 KEY_UP /dev/input/event5 |
Sollte irw (nur bei aktivem lirc daemon), evtest oder ir-keytable keine Ausgabe liefern oder eine Fehlermeldung „recource is busy“ etc, ist mit den Befehlen lsusb und/oder cat /proc/bus/input/devices zu prüfen ob der Empfänger vom System erkannt wurde (Ausführliche Anleitung).
Bei Nutzung der im Kernel eingebauten Lirc-Funktionen entfallen Befehle wie irw. Stattdessen ist das Programm ir-keytable zuständig
Installieren der Software (Manuelle Einrichtung der Fernbedienung per hardware.conf und lircd.conf)
Falls inputlirc installiert wurde, sollte es deinstalliert werden, da die manuelle Konfiguration ansonsten von der automatischen Einrichtung durch inputlirc bei jedem Neustart des Systems überschrieben wird.
1 |
sudo apt-get install lirc && sudo apt-get remove --purge inputlirc |
Konfiguration
Konfiguration – Treiber
Wird bei der Installation des lirc-pakets in dem Konfigurationsdialog keine Auswahl getroffen (beide Dialoge werden mit „None“ bestätigt), wird, falls vorhanden, der Kerneltreiber genutzt. Es kann vorkommen, dass der Kerneltreiber die Empfänger teilweise nicht richtig konfiguriert/erkennt. In dem Fall ist die Angabe eines Treibers in der /etc/lirc/lirc_options.conf nötig sowie ggf. das „Blacklisten“ (automatisches laden des Treibers wird unterbunden) des Kerneltreibers. Das Erstellen einer blacklist für lirc Module wird wie folgt realisiert:
1 2 3 4 5 6 |
echo "#File automatically generated upon lirc install >> /etc/modprobe.d/lirc-blacklist.conf echo "#Because a module had to be blacklisted. Don't >> /etc/modprobe.d/lirc-blacklist.conf echo "#Modify by hand, but rather via" >> /etc/modprobe.d/lirc-blacklist.conf echo "#dpkg-reconfigure lirc" >> /etc/modprobe.d/lirc-blacklist.conf echo "blacklist lirc_atiusb" >> /etc/modprobe.d/lirc-blacklist.conf echo "blacklist ati_remote" >> /etc/modprobe.d/lirc-blacklist.conf |
Bei der MD 8800 Fernbedienung funktionieren mit inputlirc einige Tasten nicht. Es empfiehlt sich daher auf den externen Treiber atilibusb zurückzugreifen. Dieser kann bei der Konfiguration von lirc (sudo dpkg-reconfigure lirc) ausgewählt (ATI/NVidia/X10 RF Remote (userspace)) oder manuell in der /etc/lirc/lirc_options.conf (driver = atilibusb) eingetragen werden.
Der Befehl usb-devices listet die USB-Geräte und weitere Informationen, z.B. welcher Treiber geladen wurde etc., auf. (Ausführliche Anleitung).
Konfiguration Tastenzuordnungen
Es gibt verschiedene Möglichkeiten, die Tastenzuordnungen ( keymaps ) zu konfigurieren. Die einfachste Variante ist die Verwendung von inputlirc. Bei der Nutzung von inputlirc kann es allerdings vorkommen, dass nicht allen Tasten eine Aktion zugewiesen wurde. Dies kann an einer fehlenden oder falschen Zuordnung des Kernelevents zu einer Aktion/Taste liegen (Fehler in der Keymap, Funkanal der FB passt nicht zur Keymap/Kernelevent s. Problemlösungen => Funkkanal der Fernbedienung ändern).
Eine andere Variante, die zwar aufwendiger, aber wesentlich mehr Konfigurationsmöglichkeiten bietet und unabhängig vom gewählten Funkkanal der Fernbedienung ist, ist die Erstellung einer eigenen Keymap mittels irrecord. Der lirc Dienst und irrecord können nicht parallel auf den Empfänger zugreifen. Daher muss mittels
1 |
sudo service lircd stop |
der lirc Dienst gestoppt werden, bevor irrecord auf den Empfänger zugreifen kann. Ist der lirc Dienst gestoppt, kann unter der Angabe des verwendeten Treibers mit
1 |
sudo irrecord -H <Treiber> <Keymapdatei> |
eine Keymap erstellt werden. Für den o.g. Empfänger, bei Nutzung des atilibusb Treibers, wird mit folgendem Befehl die Keymapdatei MD_8800.conf erzeugt:
1 |
sudo irrecord -n -H atilibusb MD_8800.conf |
Alternativ kann mit sudo irrecord -H <Treibername> -d /dev/<das_ermittelte_device> /pfad/zur/lircd.conf explizit der Empfänger angeben werden. Der allgemeine Speicherpfad der lirc keymaps ist /usr/share/lirc/remotes/.
Das Einbinden der Keymapdatei kann auf verschiedenen Wegen realisiert werden:
- Keymapdatei kopieren und umbenennen ( cp ~/MD_8800.conf /etc/lirc/lircd.conf )
- Keymapdatei kopieren und verlinken ( cp ~/MD_8800.conf /etc/lirc/ && ln -s MD_8800.conf lircd.conf )
- Keymapdatei kopieren und per include laden ( cp ~/MD_8800.conf /etc/lirc/ && echo „include /etc/lirc/MD_8800.conf >> lircd.conf )
- Keymapdatei mit inputlirc laden (Infos folgen)
Nachdem lirc mit sudo service lirc start nun wieder gestartet wurde wird bei richtiger Konfiguration in der irw Ausgabe jetzt für Kanal 1 der MD 8800 Fernbedienung der Kerneleventcode, die zugeordnete Taste und der Name der Fernbedienung angezeigt : 00000014ef1a0000 00 up MD_8800.
ACHTUNG: Das Ändern des Funkkanals der Fernbedienung (s. Problemlösungen) hat zur Folge, dass sich auch die Kernelevents ändern und somit die Zuordnung von Kernelevent zu einer Taste in der lircd.conf nicht mehr stimmt!
Tasten Befehle und Funktionen zuordnen
Um den von lirc zugewiesenen Kernelvents/Tasten Befehle zuzuordnen, hängt es davon ab, wie und für welche Anwendungen die Fernbedienung genutzt werden soll. Für die allg. Zuweisung von Befehlen wird eine .lircrc-Datei im User-Homeverzeichnis benötigt (s. Tasten_mit_Funktionen_belegen)
Für die Nutzung einer Fernbedienung unter XBMC muss den in der lirc.conf zugewiesenen Tasten in der ~/.xbmc/userdata/Lircmap.xml der entsprechende XBMC Befehl zugeordnet werden. In der ~/.xbmc/userdata/Lircmap.xml wird die Ausgabe von lirc zu einer Eingabe an XBMC übersetzt. Die verschiedenen Eingaben des XBMC sind sehr anpassungsfähig. Je nachdem welches Fenster/Menu gerade aktiv ist, kann einer Taste eine andere Funktion zugewiesen werden. Dies geschieht über die Datei ~/.xbmc/userdata/keymaps/remote.xml in der den Fenstern und Menüs dann wiederum bestimmten Tasten Aktionen zugewiesen werden.
Problemlösungen
Wechselndes „eventX“
Wenn es Probleme mit dem Ansprechen der Fernbedienung gibt, weil von Start zu Start (aufgrund unterschiedlicher Verwendung der USB-Anschlüsse o.ä.) unterschiedliche „events“ ausgegeben werden, kann ggf. auch ein fester Wert in die hardware.conf eingetragen werden, unter dem dann die Fernbedienung immer erkannt werden sollte. Ein sudo irw und Drückern einer Taste der Fernbedienung gibt dann den eventX wert an. Ein ls -l /dev/input/by-path/* gibt die aktuelle Zuordnung der eventX Nummer zu den entsprechenden Geräten an.
1 2 3 |
sudo irw 69 0 KEY_LEFT /dev/input/event12 |
1 2 3 4 5 6 7 8 9 |
ls -l /dev/input/by-path* lrwxrwxrwx 1 root root 9 Mai 13 09:04 pci-0000:00:1a.0-usb-0:1.1:1.0-event-kbd -> ../event2 lrwxrwxrwx 1 root root 9 Mai 13 09:04 pci-0000:00:1a.0-usb-0:1.1:1.1-event -> ../event3 lrwxrwxrwx 1 root root 10 Mai 13 09:04 pci-0000:00:1a.0-usb-0:1.6:1.0-event -> ../event12 <<<=== lrwxrwxrwx 1 root root 10 Mai 13 09:04 pci-0000:00:1a.0-usb-0:1.6:1.0-event-mouse -> ../event13 lrwxrwxrwx 1 root root 9 Mai 13 09:04 pci-0000:00:1a.0-usb-0:1.6:1.0-mouse -> ../mouse1 lrwxrwxrwx 1 root root 9 Mai 13 09:04 pci-0000:00:1d.0-usb-0:1.7:1.0-event-mouse -> ../event4 lrwxrwxrwx 1 root root 9 Mai 13 09:04 pci-0000:00:1d.0-usb-0:1.7:1.0-mouse -> ../mouse0 |
Eintrag in der /etc/lirc/hardware.conf:
1 |
REMOTE_DEVICE="pci-0000:00:1a.0-usb-0:1.6:1.0-event" |
Doppeltes Ausführen von Befehlen
Falls keine korrekte Ausgabe erfolgt, oder falls es Probleme gibt, die Nummerntasten zu verwenden keine Ausgabe bei irw) hilft es, in einem Editor mit Rootrechten in der /etc/default/inputlirc-Datei folgende Optionen festzulegen:
1 2 3 |
# Options to be passed to inputlirc. EVENTS="/dev/input/event*" OPTIONS="-g -m 0" |
Die Option -g ist mit Vorsicht zu verwenden; sie führt dazu, dass nur noch inputlirc auf die Impulse der festgelegten Geräte reagiert. Daher nur bei festgelegten events (s.o.) nutzen, sonst fällt ggf. Maus und Tastatur aus! (Die weiter unten beschriebene Anpassung von lirc.fdi sollte damit hinfällig werden). Die Parameter -m 0 sorgt dafür, dass alle Tasten erkannt werden; Standard ist, dass die Tasten unterhalb der Wertes 88 (das sind die der „Standard-Tastatur“) nicht ausgelesen werden. Weiteres zu den verwendbaren Optionen in der man-Page (Befehl man inputlircd) (Ausführliche Info)
Bei der Verwendung von XBMC (ohne inputlirc), hilft das Erstellen der ~/.xbmc/userdata/advancedsettings.xml Datei mit folgendem Inhalt:
1 2 3 4 |
<advancedsettings> <remotedelay>10</remotedelay> <remoterepeat>650</remoterepeat> </advancedsettings> |
Kodi selbst fängt die mehrfache Tasteneingabe aus lirc dann eigenständig ab (Ausführliche Info).
Fernbedienung reagiert nicht mehr / Funkkanal der Fernbedienung ändern
Die Fernbedienungen senden auf bis zu 13 (Anzahl der Kanäle nicht bestätigt) versch. Funkkanälen. Das Wechseln des Funkkanals der Fernbedingung hat zur Folge, dass die Kernelevents ebenfalls wechseln und die lircd.conf nicht mehr passt. Der Funkkanal der o.g. Fernbedienungen kann wie folgt geändert werden:
- Die Runde Taste (bei der MD 8800 die Weltkugel, bei der MD ogv24 die Windows taste) ein paar Sekunden gedrückt halten.
- Wechselt die OK Taste von konstantem Leuchten zu einem Blinken, kann der neue Kanal eingegeben werden.
- Neuen Kanal eingeben.
- Eingabe wird mit einem Blink bestätigt.
- Die runde Taste zum Bestätigen des Funkkanalwechsels erneut drücken.
- Neue lircd.conf erstellen, falls nötig
Fernbedienung reagiert nur mir Pfeiltasten
Reagieren nur die Pfeil/Cursor- und Lautstärketasten der Fernbedienung, ist wahrscheinlich das falsche Kernelmodul geladen worden (ati_remote). Um ein Modul/Treiber vom automatischen laden auszuschließen, gibt es die sog. blacklisten in dem Verzeichnis /etc/modprobe.d/ . Das Erstellen einer blacklist für lirc Module wird wie folgt realisiert:
echo „#File automatically generated upon lirc install >> /etc/modprobe.d/lirc-blacklist.conf
1 2 3 4 5 |
echo "#Because a module had to be blacklisted. Don't >> /etc/modprobe.d/lirc-blacklist.conf echo "#Modify by hand, but rather via" >> /etc/modprobe.d/lirc-blacklist.conf echo "#dpkg-reconfigure lirc" >> /etc/modprobe.d/lirc-blacklist.conf echo "blacklist lirc_atiusb" >> /etc/modprobe.d/lirc-blacklist.conf echo "blacklist ati_remote" >> /etc/modprobe.d/lirc-blacklist.conf |
Programme reagieren nicht auf Befehle, irw gibt aber richtige Befehle aus
Der Lirc Socketdaemon, früher unter /dev/lircd gelistet, ist bei neueren Lirc Installationen nun /var/run/lirc/lircd erreichbar. Kodi bietet mit der Option -l die Möglichkeit, einen neu definierten Lircsocket zu nutzen.
1 |
kodi -l /var/run/lirc/lircd |
Alternativ kann ein Link beim Systemstart via /etc/rc.local oder über cron gesetzt werden:
1 2 |
/etc/rc.local => ln -s /var/run/lirc/lircd /dev/lircd root crontab => @reboot ln -s /var/run/lirc/lircd /dev/lircd |
Um die Fernbedienung für Kodi zu konfigurieren, muss der Name der Fernbedienung (/etc/lirc/lircd.conf.d/<remote_config_file> => Eintrag: name) in der ~/.kodi/userdata/cat Lircmap.xml eintragen werden ( <remote device=“Medion_X10_CHANNEL_1″> )
Tipps und Tricks
Aktuell geladene Keymap(s) können mit folgendem Befehl auslesen werden:
1 |
sudo ir-keytable -r |
Mit ir-keytable ist es auch möglich Tastencodes der Fernbedienung zu ermitteln, z.B. um zu sehen, ob überhaupt Tastendrücke erkannt werden oder um eine Keymap zu erstellen. Da Tastendrücke von eventlircd abgefangen werden, muss dieser Dienst gestoppt sein. Außerdem ist es empfehlenswert, den VDR vorher zu stoppen, um eine unbeabsichtigte Fehlbedienung zu vermeiden. Die Standardkeymaps befinden sich in dem Ordner /usr/share/lirc/remotes/ .
Beispielausgabe ohne geladene Keytable.
1 2 3 4 5 6 7 |
user@yavdr:~$ sudo ir-keytable -t Testing events. Please, press CTRL-C to abort. 1310546299.271540: event MSC: scancode = 3d 1310546300.071543: event MSC: scancode = 3b 1310546301.471538: event MSC: scancode = 01 1310546301.871547: event MSC: scancode = 02 1310546302.271537: event MSC: scancode = 03 |
Funkkanäle trennen : Klick
Nützliche Befehle
- xmodmap -pk => zeigt aktuell zugewiesene Keymap und Events sowie Keycode an
- xinput list => zeigt Eingabegeräte an
- xbindkeys-config => Einfach GUI um Tasten Befehlen zuzuweisen
by Speefak | xbindkeys |