IR an mceusb unter Ubuntu 16.04.2 LTS

  • Die Fernbedienung war in den letzten Jahren meist der komplizierteste und mit widersprüchlichster Dokumentation belastete Teil der VDR-Inbetriebnahme.

    Allerdings hänge ich an einer Stelle - wie immer bei so einem Update kämpfe ich mit Lirc.

    Scheint also nicht nur mir so zu gehen.


    Die Zusammenhänge aktuell dargestellt findet man allenfalls für eventlircd und wohl yaVDR unter https://docs.google.com/drawings/d/1LZj77h-AbbYpUapqITRFMyBs-xuwAXjwqyBTTgjvDk8/edit?authkey=CMzNqKoB&hl=de&pli=1 bzw. http://www.pro-linux.de/artike…n-lirc-mit-inputlirc.html.


    Aus DVBSky (Mystique TeCaBiX) LIRC ? ausgekoppelt versuche ich daher mal den aktuellen Stand der Dinge zusammenzuschreiben,
    um einen VDR der Distributionsstandardpakete des gerade erschienenen Ubuntu 16.04.2 LTS
    an einem gängigen HP-MediaCenter-USB-Modul (http://kodi.wiki/view/File:Hpremote.jpg) unter Kernel 4.8 fernbedienbar zu machen,
    mit einem Sender gemäß den beiden ersten 8in1-Dateien aus http://lirc.sourceforge.net/remotes/universal/:


    Grundfehler der meisten Anleitungen scheint mir der Vorschlag, (erst und nur) innerhalb eines bestimmten Protokolls und Keymappings testen zu wollen, ob überhaupt etwa empfangen wird.
    https://wiki.ubuntuusers.de/Ko…ote/#Fernbedienung-testen
    https://ubuntuforums.org/showthread.php?t=1754719
    http://kodi.wiki/view/HOW-TO:S…nux#Edit_the_driver_table
    So wird das meiste weggfiltert und damit nichts angezeigt, ohne dass man sehen könnte, ob die Sender und Empfänger an sich funktionieren und wo die Konfiguration noch bearbeitet werden muß.
    Startpunkt muß vielmehr die rohe Ausgabe von /dev/lirc0 sein, bei der Kernellösung rc-code z.B. mit sudo hexdump -C wie schon beim "klassischen" LIRC das Tool mode2.

    Richtig noch (auf älterem Stand): http://www.vdr-wiki.de/wiki/in…_LIRC_Installation#Testen
    Kaum eine Anleitung verdeutlicht zudem, dass und wie diese untere Ebene hierfür erst durch Beenden autogestarteter den Zugriff darüberliegend blockierender Programme freigelegt werden muß.


    Außerdem wird bis zum aktuellen Ubuntu-LTS ein uraltes apt-Paket lirc (0.9.0) ausgeliefert: Tickets zu Problemen, die dies verursacht, werden bei dieser und auch anderen Distributionen massenweise unter Verweis auf neuere Versionen (oder Konfiguration ohne diese zu bezeichnen, bis hin zum LIRC-Maintainer höchstselbst) geschlossen,
    https://bugzilla.redhat.com/show_bug.cgi?id=658628#c13
    https://bugs.launchpad.net/ubuntu/+source/lirc/+bug/783202#5
    https://bugs.launchpad.net/ubuntu/+source/lirc/+bug/1029604
    obwohl diese auch 2017 gar nicht in offiziellen Paketquellen sind:
    https://launchpad.net/ubuntu/+source/lirc
    https://launchpad.net/~leamas-…archive/ubuntu/lirc-0.9.4
    https://bugs.launchpad.net/ubuntu/+source/lirc/+bug/1443590


    Ohne apt-Paket lirc wird zunächst gar nichts erkannt, allerdings macht sich ein Tastendruck durch Ausgaben auf /dev/lirc0 bemerkbar (s.u.):
    Somit ist die Funktion der Fernbedienung belegt und man kann sich mittels Durchprobieren zum passenden Protokoll und Keytable vortasten:
    In meinem Falls führt sony zu einem fernbedienbaren VDR, wenn auch nach inputlirc noch ohne Tastenwiederholung.


    Mit apt-Paket lirc funktioniert zumindest nach sudo service lirc stop die Fernbedienung im VDR wenn auch ohne Tastenwiederholung.
    Es ist wohl weiterhin erforderlich, wenn man neben dem IR-Empfang auch noch senden muß, und macht alles noch wilder: https://ubuntuforums.org/showthread.php?t=2270362


    Hoffe es springt jemandem ins Auge, was in den folgenden Posts (ohne und mit apt-Paket lirc) fehlen könnte, damit ich das ergänzen kann.

  • Da vom apt-Paket lirc abgeraten wird, erfolgt zunächst nur sudo apt install vdr vdr-plugin-femon vdr-plugin-xineliboutput inputlirc.


    /lib/udev/rules.d/60-ir-keytable.rules (in früheren Versionen noch Priorität 40) enthält

    Code
    1. ACTION=="add", SUBSYSTEM=="rc", RUN+="/usr/bin/ir-keytable -a /etc/rc_maps.cfg -s $name"


    Universal8in1 folgenden Inhalts (unverändert wie am IR-Port der DVBsky angelernt, für auf Code 052 definierte AUX-Tasten) kommt weiterhin nach /lib/udev/rc_keymaps - obwohl in /etc/rc_maps.cfg immer noch falsch /etc/rc_keymaps steht.


    /etc/rc_maps.cfg wird folgende tabulatorgetrennte Zeile angefügt:

    Code
    1. mceusb * Universal8in1


    /var/lib/vdr/remote.conf (worauf ein bis dahin ungültiger Symlink aus /etc/vdr zeigt) erhält den Inhalt:




    Damit müsste doch alles an Ort und Stelle sein?! :rolleyes:


    Die Tasten sollen an VDR übergeben werden durch inputlircd -g -m 0 /dev/input/by-path/pci-0000:00:1d.0-usb-0:1.5:1.0-event (systemabhängig).


    sudo service inputlirc stop, um folgendes testen zu können, wie von http://www.lirc.org/html/configuration-guide.html verordnet:


    Direkt am Kernel werde ohne apt-Paket lirc werden also gar keine Tasten erkannt (und natürlich fehlt auch irsend).


    Dabei sollten selbst für unbekannte Fernbedienungen hier Scancodes erscheinen.


    Was aber funktioniert, ist folgendes:


    Das Problem muß also nach dem oberen Pfeil ---->---- von http://www.lirc.org/html/confi…l-configuration-decisions zwischen Kernel und Linux Input Layer liegen.



    Als letzte Zeile der /lib/udev/rules.d/60-ir-keytable.rules ist also erforderlich:
    ACTION=="add", SUBSYSTEM=="rc", RUN+="/usr/bin/ir-keytable -c -p sony -w /lib/udev/rc_keymaps/Universal8in1"
    Evtl. ergänzt um derzeit wohl nur manuell und mit einem Hack zu ermittelnde -D und -P, damit die Wiederholung gedrückt gehaltener Tasten auch für den VDR hinter inputlirc funktioniert.

  • Versuchen wir es also mal mit sudo apt install lirc, auf das devinput-Device, danach Reboot.


    /etc/lirc/hardware.conf


    ...und /etc/lirc/lircd.conf

    Code
    1. include /usr/share/lirc/remotes/devinput/lircd.conf.devinput



    Damit das Eventsystem und dadurch VDR die Tastendrücke sehen kann, ist schrägerweise erst mal sudo service lirc stop erforderlich.


    Dann aber regnet es (im Gegensatz zum vorigen Post) EV_MSCs für unbekannte und EV_KEYs für bereits definierte Tasten in sudo evtest bzw. sudo ir-keytable -t.


    Bei Verwendung des VDR X-Frontend werden die Tasten wieder mal doppelt erkannt, da automagisch als vdr-sxfe --lirc in die Menüs eingetragen (Jahre alter https://bugs.launchpad.net/ubu…ineliboutput/+bug/1001818 alle Releases wieder).


    Um zum Test dem aktuellen Ubuntu-VDR abzugewöhnen, (statt, oder schlimmer noch neben vdr-sxfe) selbst --lirc zu verwenden, ist diese Zeile wohl in /etc/vdr/conf.d/00-vdr.conf auszukommentieren:
    /etc/default/vdr ist leer und OPTIONS="--lirc=/dev/null" gemäß LIRC deaktivieren scheint darin nicht mehr zu funktionieren.
    Bei mir führt das allerdings auch nur dazu, dass die Tastendrücke statt doppelt beim VDR gar nicht mehr ankommen, trotz vdr-sxfe --lirc.


    Leider konnte ich bislang auch mit diversen Delays weder auf Ebene von ir-keytables noch von inputlircd die automatische Wiederholung gehaltener Tasten in VDR zum Laufen bringen:
    [gelöst] Probleme mit Debian Stretch und lircinput seit Debian 4.8.11 beschreibt ein ähnliches Problem, aber für die RC6-Fernbedienung.
    (Erst) nach(!) sudo service lirc stop erkennt irw gedrückt gehaltene Tasten, nur wie VDR ohne Wiederholung.
    Nach weiterem sudo service inputlirc stop wird /dev/input/event9 auch für sudo ir-keytable -t und sudo evtest zugänglich:
    Beide zeigen (anders als VDR&irw) funktionierende Wiederholung gedrückt gehaltener Tasten.