[gelöst] Probleme mit Debian Stretch und lircinput seit Debian 4.8.11

  • Hallo zusammen,


    nach einem halben Jahr Betrieb mit meinem Intel-NUC Skylake wollte ich ein Problem mit dem Tastenrepeat der Fernbedienung
    beheben, und hab erst mal ein Dist-Upgrade auf die aktuelle Version gemacht. Damit kam die Version 4.8 auf meinen Rechner ...
    (ganz genau: uname -a liefert Linux Intel-NUC 4.8.0-2-amd64 #1 SMP Debian 4.8.11-1 (2016-12-02) x86_64 GNU/Linux)


    Nach dem Upgrade lief VDR wieder, nur die Fernbedienung ging nicht mehr ...


    • Frage: sind aktuell Umbauten an lircinput bekannt, die das erklären?


    Nach etwas Analyse des Problems sehe ich folgendes Verhalten:


    • (nach Anhalten von inputlirc) bekomme ich mit ir-keytable -t Tastendrücke der Fernbedienung angezeigt.
      Wenn ich länger Drücke bekomme ich auch Repeat Tastendrücke zu sehen, also bis hier geht alles perfekt ...
    • (nach erneutem Start von inputlirc) bekomme ich die Tastendrücke auch mit irw angezeigt.
      Dazu mußte aber nach Rechner Hochlauf inputlirc einmal gestoppt und wieder gestartet sein ...
      (Hier muß ich später weitersuchen, warum der Tastenrepeat der Fernbedienung nicht geht; auch bei längerem
      Drücken der FB zeigt irw immer nur eine einmalig gedrückte Taste ...)
    • Wenn ich danach den VDR starte, läßt sich dieser auch wieder über die FB bedienen. Wenn ich nach Reboot
      des Rechners VDR stoppe, inputlirc restarte und VDR wieder starte, läßt sich VDR ebenfalls wieder mit FB bedienen.


    Die Regeln zum automatischen Einlesen der Keymap und des Einrichtens des Input-Devices greifen (sonst hätte
    ich schon mit ir-keytable -t nicht die korrekte Bezeichnung der gedrückten Tasten gesehen ...


    Nur nicht daß sich da Debian weiterentwickelt (ich lese da etwas von einem "Started lircd(8) initialization helper tool."
    und dann startet da ein "lircd-uinput" der "Reading data from /var/run/lirc/lircd, writing to /dev/uinput" und mir ggf.
    das Input-Device belegt ...


    Ein Grep nach lirc bringt folgendes zu Tage ...



    Kann da ein Spezialist von Euch etwas dazu sagen, warum ich diesen inputlirc Neustart benötige?


    m.f.G.
    Michael


    p.s. ich wußte jetzt nicht, ob das lirc spezifisch ist (und in´s Fernbedienungs-Forum gehört), oder ob das
    Debian spezifisch ist (vermute ich als erstes). Wenn es anders herum geschickter ist, bitte sagen ...

    VDR: Zotac ION-ITX F mit 2xSundtek Media-TV USB-Stick (für DVB-C); Debian Wheezy (3.2.0-4-686-pae)
    VDR: ASRock Q1900DC mit 1xTerratec Rev. 2 USB Stick (für DVB-C); Debian Ubuntu 14.04 LTS
    VDR: Intel NUC (Skylake i5) mit 128 GB SSD, 1GB Disk, 2xSundtek USB DVB-C Stick; Debian Stretch (4.9.30-2 x86_64)

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von VdrMize ()

  • Du hast sowohl lirc als auch inputlirc installiert und die beiden Daemons kloppen sich um den Empfänger (die neue Lirc-Version hat wenn ich das richtig im Kopf habe eine Vorkonfiguration, die rc-core Empfänger automatisch nutzbar macht). lircd-uinput geht eigentlich den umgekehrten Weg und gibt Tastendrücke von lirc-Empfängern auf einem uinput-Gerät so aus, als würden sie von einem Kernel Input Device stammen (was im Fall von rc-core Empfängern nicht unbedingt sinnvoll ist).


    Wenn du unbedingt inputlircd nutzen willst, ist es vermutlich am einfachsten, wenn du lircd und lircd-uinput maskierst, damit sie nicht mehr gestartet werden können:

    Code
    1. sudo systemctl mask lircd lircd-uinput


    Alternativ kannst du auch die beiliegende Dokumentation zu lircd lesen und schauen, ob das nicht genügt und du auf inputlircd verzichten kannst.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo seahawk1986,


    vielen Dank für die schnelle Antwort. Das Maskieren von lircd und lircd-uinput hat geholfen. Klasse.


    Zwei Fragen noch, wenn ich darf (vielleicht kannst Du oder ein anderer Leser noch was dazu sagen) ...

    • Wenn ich mit ir-keytable -t beim längeren Druck auf eine Taste auch Repeat Tastendrücke
      erkenne (mehrfache scancodes, aber nur einen key-down und key_up), später dann mit irw
      nur einen einzelnen Tastendruck angezeigt bekomme, wo kann ich da weiter suchen?
    • Die zweite Frage ist (ohne damit jetzt einen Glaubenskrieg entfachen zu wollen): als ich
      vor ca. 1-2 Jahren von meinem 5-10 Jahre altem VDR (mit Linux aus dieser Zeit) auf meine NUC´s
      (und aktuellem Linux) umgestiegen bin, hab ich lange nachgelesen wie ich lirc neu aufsetzen soll.


      Ich hatte das so verstanden, daß "lirc" alleine nicht mehr reicht, man sollte jetzt auf die input/event
      Schnittstelle und inputlirc umstellen, oder alternativ auf eventlirc umstellen ...


      War das eine Fehlinterpretation, d.h. lirc unterstützt genausogut die input/event - Schnittstelle,
      und es wäre geschickter auf inputlirc zu verzichten (weil überflüssig)? Dann bräuchte ich aber doch
      neben lirc den Eventlirc Unterbau, damit etwas an "/var/run/lirc/lircd" ankommt. Bei inputlirc komme
      ich ohne eventlirc aus, und emittiere gleich nach "/var/run/lirc/lircd". Also neben lirc muß man einen
      von beiden haben: inputlirc oder eventlirc. Richtig? Welcher ist zukunftsträchtiger?

    Vielen Dank im Voraus,
    Michael

    VDR: Zotac ION-ITX F mit 2xSundtek Media-TV USB-Stick (für DVB-C); Debian Wheezy (3.2.0-4-686-pae)
    VDR: ASRock Q1900DC mit 1xTerratec Rev. 2 USB Stick (für DVB-C); Debian Ubuntu 14.04 LTS
    VDR: Intel NUC (Skylake i5) mit 128 GB SSD, 1GB Disk, 2xSundtek USB DVB-C Stick; Debian Stretch (4.9.30-2 x86_64)

  • Hallo zusammen,


    Hat keiner für mich keiner einen Tip, wie ich den Tastenrepeat ordentlich zum Laufen bekomme?
    Ich nutze inputlirc, und das normale Bedienen mit der Fernsteuerung klappt. Nur der Repeat nicht.


    Wenn ich mit ir-keytable -t beim längeren Druck auf eine Taste auch Repeat Tastendrücke
    erkenne (mehrfache scancodes, aber nur einen einzelnen key-down und key_up), später dann
    mit irw nur einen einzelnen Tastendruck angezeigt bekomme, wo kann ich da weiter suchen?



    Vielen Dank im Voraus,
    Michael

    VDR: Zotac ION-ITX F mit 2xSundtek Media-TV USB-Stick (für DVB-C); Debian Wheezy (3.2.0-4-686-pae)
    VDR: ASRock Q1900DC mit 1xTerratec Rev. 2 USB Stick (für DVB-C); Debian Ubuntu 14.04 LTS
    VDR: Intel NUC (Skylake i5) mit 128 GB SSD, 1GB Disk, 2xSundtek USB DVB-C Stick; Debian Stretch (4.9.30-2 x86_64)

  • VdrMize


    Ich denke das Du die Option "-r 300" ändern musst.


    Bin mir aber unsicher welche Richtung, da die Beschreibung für mich nicht eindeutig genug ist. So aus dem Bauch heraus würde aber den Zeitraum verkleinern.


    [EDIT] Oder aber da liegt das Problem, das der Parameter gar nichts bewirkt mit den letzten Updates, auch eine Möglichkeit ...


    Regards
    fnu

    HowTo: APT pinning

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von fnu ()

  • Hallo fnu,


    weißt Du, ob Inputlirc die EV-MSC (Miscellaneous) Events verwendet, oder die scheinbar bereits von Linux gelieferten EV-KEY Events?


    Wie mir scheint hat die FB ca. 250ms Zeit, den Tastendruck zu wiederholen, dann bleibt der Eventkey unverändert (Taste bleibt gedrückt).
    Wenn die FB länger als 250 ms keinen Repeat mehr gesendet hat, generiert Linux (der Linux-Treiber?) selbständig einen Event Taste losgelassen.


    Dazwischen können 1000 Repeats kommen - Linux schickt keine neuen EV-Key Meldungen ...


    m.f.G.
    Michael

    VDR: Zotac ION-ITX F mit 2xSundtek Media-TV USB-Stick (für DVB-C); Debian Wheezy (3.2.0-4-686-pae)
    VDR: ASRock Q1900DC mit 1xTerratec Rev. 2 USB Stick (für DVB-C); Debian Ubuntu 14.04 LTS
    VDR: Intel NUC (Skylake i5) mit 128 GB SSD, 1GB Disk, 2xSundtek USB DVB-C Stick; Debian Stretch (4.9.30-2 x86_64)

  • Hallo fnu,


    ich hab in der Zwischenzeit mal mit den Zeiten gespielt - keine Veränderung. Der Tastenrepeat funktioniert nicht.
    Wenn ich für 2-3 sec den Lautstärke luter Knopf an der FB drücke, geht im VDR das Fenster mit dem Balken für die
    Lautstärke auf und um einen Tick nach rechts. Nach 2-3 sec. geht das Fenster wieder zu, obwohl ich noch immer
    die Taste auf der FB drücke.


    Gestern hab ich mal die Sourcen von devinput geholt und reingeschaut: Devinput geht nur auf das EV-KEY Device.
    Damit wandelt sich das Problem für mich zu: Wie stelle ich den Kernel (-driver) auf die Repeat Zeit meiner FB ein.


    Solange das Input device auch bei 3 sec Taste auf der FB drücken nur einen Tastendruck zeigt (siehe oben), kriegt
    inputlirc und vdr keine wiederholten Tasten mit.


    Nur wie ich das Inputdevice vom Kernel konfigurieren kann - dazu finde ich nichts ...


    m.f.G.
    Michael

    VDR: Zotac ION-ITX F mit 2xSundtek Media-TV USB-Stick (für DVB-C); Debian Wheezy (3.2.0-4-686-pae)
    VDR: ASRock Q1900DC mit 1xTerratec Rev. 2 USB Stick (für DVB-C); Debian Ubuntu 14.04 LTS
    VDR: Intel NUC (Skylake i5) mit 128 GB SSD, 1GB Disk, 2xSundtek USB DVB-C Stick; Debian Stretch (4.9.30-2 x86_64)

  • VdrMize


    Ich kann das inzwischen nachvollziehen, kein Repeat mit inputlirc und Kernel 4.8.x unter Ubuntu, der Parameter "-r" scheint gänzlich wirkungslos & ausgeschaltet.


    Leider nicht das erste Mal das am DVB/IR Teil was geändert wurde ohne es wirklich zu transparent zu machen, sind meine ganz besonderen Freunde ... :(


    Wird wohl ein wenig brauchen bis wir hinter das Geheimnis kommen, habe grad keine gute Idee.


    Regards
    fnu

    HowTo: APT pinning

  • Das war kürzlich in Arch genau so....

    Gruß utiltiy



    VDR Projekte EPGD EPG2VDR

  • Ich habe mir gerade ein Programm für Python >= 3.5 geschrieben, das das Kernel Input Device samt EV_MSC Events ausliest und die Tastendrücke auf einen Lirc-kompatiblen Sockel ausgibt: nuvoton-lircd.zip
    Unter Debian stretch/Ubuntu >= 16.04 muss man folgendes nachinstallieren (python3-evdev aus den Ubuntu-Quellen ist zu alt):

    Code
    1. sudo apt-get install python3-pyudev python3-pip
    2. sudo pip install evdev


    Unter Arch Linux sollte man sich python-evdev aus dem AUR holen können: https://aur.archlinux.org/packages/python-evdev/ und python-pyudev ist in den regulären Paketquellen.


    Das Programm muss als root laufen und optinal kann man ihm noch folgende Start-Argumente mitgeben:


    Im Prinzip kann man das mit jedem Kernel Input Device nutzen, dessen parent device durch einen Namen identifizierbar ist:

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von seahawk1986 ()

  • Das war kürzlich in Arch genau so....

    War heißt, es ist gelöst? Weißt Du was die Lösung war?


    seahawk1986


    Danke, werde es ausprobieren. Das Script muss einmalig beim Start ausgeführt werden?


    Regards
    fnu

    HowTo: APT pinning

  • Hallo zusammen,


    Praxis ist bekanntlich wenn´s geht, und keiner weiß warum ...


    Nachdem ich gestern mit den Zeiten herumexperimentiert habe, hatte ich den Rechner mit der verlängerten Zeit
    in der /etc/default/inputlirc (OPTIONS="-g -m 0 -r 750 -d /var/run/lirc/lircd") stehengelassen.


    Gestern Abend ging plötzlich zum ersten mal der Tastenrepeat !!!


    Die Frage: Hat da Mittags beim Test der längeren Zeit ein Reboot gefehlt??? Schau ich mit heute Abend noch mal an,
    und melde mich. (Den Patch von seahawk hab ich mir zwar mal angesehen, aber nicht installiert bzw. das Script nicht
    bewußt laufen gelassen ... Warum das plötzlich geht, ist mir völlig schleierhaft.)


    m.f.G.
    Michael

    VDR: Zotac ION-ITX F mit 2xSundtek Media-TV USB-Stick (für DVB-C); Debian Wheezy (3.2.0-4-686-pae)
    VDR: ASRock Q1900DC mit 1xTerratec Rev. 2 USB Stick (für DVB-C); Debian Ubuntu 14.04 LTS
    VDR: Intel NUC (Skylake i5) mit 128 GB SSD, 1GB Disk, 2xSundtek USB DVB-C Stick; Debian Stretch (4.9.30-2 x86_64)

  • Hallo zusammen,


    hier die Event´s die ich jetzt bekomme, in einer selbst generierten Version von inputlirc ...


    - Inputlircd info 1 ist oben im Inputlircd, wo die ganzen Event´s ankommen (Type 1=KEY, Type 4=MISC, Type 0=SYN)
    - Inputlircd info 2 ist unten im inputlircd, wo der Event Richtung über /var/run/lirc/lircd an VDR weitergegeben wird (1: Tastencode in Hex, 2: Repeat-Zähler, 3: Text String "Key_Code_" mit Tastencode dezimal angehängt; 4: Empfängerdevice)


    Man sieht schön, wie der Repeat-Zähler hochgezählt wird. Werden Repeat Tastendrücke von der FB erkannt, wird eine Taste-Losgelassen Meldung erzeugt, und ein Stück später die Taste als erneut gedrückt gemeldet. Damit erkennt VDR wiederholte Tastendrücke (auch wenn die FB dauerhaft betätigt wurde).



    m.f.G.
    Michael

    VDR: Zotac ION-ITX F mit 2xSundtek Media-TV USB-Stick (für DVB-C); Debian Wheezy (3.2.0-4-686-pae)
    VDR: ASRock Q1900DC mit 1xTerratec Rev. 2 USB Stick (für DVB-C); Debian Ubuntu 14.04 LTS
    VDR: Intel NUC (Skylake i5) mit 128 GB SSD, 1GB Disk, 2xSundtek USB DVB-C Stick; Debian Stretch (4.9.30-2 x86_64)

  • Zitat

    hier die Event´s die ich jetzt bekomme, in einer selbst generierten Version von inputlirc ...


    - Inputlircd info 1 ist oben im Inputlircd, wo die ganzen Event´s ankommen (Type 1=KEY, Type 4=MISC, Type 0=SYN)
    - Inputlircd info 2 ist unten im inputlircd, wo der Event Richtung über /var/run/lirc/lircd an VDR weitergegeben wird (1: Tastencode in Hex, 2: Repeat-Zähler, 3: Text String "Key_Code_" mit Tastencode dezimal angehängt; 4: Empfängerdevice)


    Man sieht schön, wie der Repeat-Zähler hochgezählt wird.

    Kannst Du uns verraten, wie und womit Du das aufgesetzt hast?

  • Kannst Du uns verraten, wie und womit Du das aufgesetzt hast?


    Hallo TEN,


    ich hab mir die Quellen von inputlirc besorgt, und dann inputlircd übersetzt. Die zwei Zeilen hab ich im Code in der Funktion processevent() eingefügt, und in den Syslog getraced. Die eine Zeile oben, wo die ganzen Events reinkommen und noch alle Events zu sehen sind (auch die, die später gar nicht an VDR weitergeleitet werden (Misc und Syn)), die zweite Zeile unten, kurz bevor der Event an lircd weitergeleitet wird ...


    Damit kann ich genau nachverfolgen welche Events reinkommen (aka was die Fernbedienung liefert, und vom IR-Sensor auch erkannt wird), und welcher Teil davon an lircd weitergegeben wird ...


    Mit etwas Spielen an den Zeiten, hab ich dann Werte herausgefunden, mit denen Repeatkommandos an den lircd weitergegeben werden ...


    Irgend einen Fehler hab ich in der Generierung noch drin gehabt, denn mit dem selbstgenerierten inputlircd hat mein VDR überhaupt keine Tasten von der Fernbedienung bekommen, aber ich konnte den Output im Syslog verfolgen, ob der paßte oder nicht. Mit den gleichen Zeiten und dem ursprünglichen inputlircd Treiber ging es dann auch mit VDR.


    Ich hänge unten mal den Code ran, mit dem ich das getestet habe ... (such mal nach MIZE)



    m.f.G.
    Michael

    VDR: Zotac ION-ITX F mit 2xSundtek Media-TV USB-Stick (für DVB-C); Debian Wheezy (3.2.0-4-686-pae)
    VDR: ASRock Q1900DC mit 1xTerratec Rev. 2 USB Stick (für DVB-C); Debian Ubuntu 14.04 LTS
    VDR: Intel NUC (Skylake i5) mit 128 GB SSD, 1GB Disk, 2xSundtek USB DVB-C Stick; Debian Stretch (4.9.30-2 x86_64)


  • ich hab mir die Quellen von inputlirc besorgt, und dann inputlircd übersetzt. Die zwei Zeilen hab ich im Code in der Funktion processevent() eingefügt, und in den Syslog getraced. Die eine Zeile oben, wo die ganzen Events reinkommen und noch alle Events zu sehen sind (auch die, die später gar nicht an VDR weitergeleitet werden (Misc und Syn)), die zweite Zeile unten, kurz bevor der Event an lircd weitergeleitet wird ...


    Damit kann ich genau nachverfolgen welche Events reinkommen (aka was die Fernbedienung liefert, und vom IR-Sensor auch erkannt wird), und welcher Teil davon an lircd weitergegeben wird ...


    Mit etwas Spielen an den Zeiten, hab ich dann Werte herausgefunden, mit denen Repeatkommandos an den lircd weitergegeben werden ...
    Ich hänge unten mal den Code ran, mit dem ich das getestet habe

    Danke, :] welches -r war es denn für inputlirc, und ggf. davor schon welche -D und -P für ir-keytable ?
    Kannst Du evtl. eine "Bauanleitung" aus Diff und Deiner Bash-History geben - oder lässt sich ein allgemeingültiger Bugfix ableiten, um zumindest inputlirc verlässlicher zu machen?
    Die Lage bei LIRC ist ja schon schlimm genug... :rolleyes: www.vdr-portal.de/board18-vdr-…-unter-ubuntu-16-04-2-lts

  • Nach Update auf Stretch will meinen Fernbedienung nicht mehr, daher klinke ich mich hier mal ein.


    evtest liefert bei gestopptem inputlirc die events und Tastendrücke. Sobald ich inputlirc laufen habe, nicht mehr (inputlirc hat ja exklusiven Zugriff). Grundsätzlich hat sich an meiner Konfirguration nichts geändert. Habe nur von Jessie auf Stretch geupdated. Irgendwas fehlt da aber noch. Wo kann ich da anfangen zu suchen?


    Der lirc Socket ist da, wird beim vdr-Start übergeben. Bin gerade ratlos.

    - VDR: Thermaltake DH 102 mit 7" TouchTFT * Debian Jessie/vdr-2.1.8/graphtft/MainMenuHooks-Patch * Intel Pentium G3220 * DH87RL * Zotac GT630 * 1 TB System HDD * 4 GB Corsair Vegance * Harmony 900 (39-44W) * satip-Plugin
    - Server: Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • Kommen denn auf dem Lirc-Sockel von inputlircd Tastendrücke an?


    Falls du lirc wegen irw installiert hast, würde ich mal schauen, ob das automatisch mit einer devinput-Konfiguration gestartet wurde - nicht dass sich die beiden Dienste da in die Quere kommen.

    Im Zweifelsfall mal die potentiell problematischen Lirc-Dienste stoppen und deaktiveren und dann inputlircd neu starten:

    Code
    1. sudo systemctl stop lircd lircd-unput
    2. sudo systemctl mask lircd.service lircd.socket lircd-uinput.service

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Kommen denn auf dem Lirc-Sockel von inputlircd Tastendrücke an?

    Wie kann ich das denn prüfen? Lirc habe ich nicht drauf, setze schon seit einigen Jahren auf inputlirc. Trotzdem hatte ich das gestern vorsichtshalber gesprüft.

    - VDR: Thermaltake DH 102 mit 7" TouchTFT * Debian Jessie/vdr-2.1.8/graphtft/MainMenuHooks-Patch * Intel Pentium G3220 * DH87RL * Zotac GT630 * 1 TB System HDD * 4 GB Corsair Vegance * Harmony 900 (39-44W) * satip-Plugin
    - Server: Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • irw zeigt dir das z.B. an. Ansonsten würde ich mal schauen, ob der VDR korrekt konfiguriert ist (also Start-Optionen und remote.conf).

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)