FB mit LIRC auf RasPi OK, auf PC nicht

  • Ich benutze diese lircd.conf auf einem RaspberryPi mit über GPIO angeschlossenem IR-Sensor (lircd 0.9.4c):

    Damit funktioniert alles wunderbar, auch die Wiederholfunktion.


    Benutze ich die gleiche Konfiguration auf meinem neuen VDR-PC unter openSUSE Leap 15.0 (ebenfalls lircd 0.9.4c) , mit über die serielle Schnittstelle angeschlossenem IR-Sensor, so reagiert LIRC nur träge. Auf kurze Tastendrücke wird überhaupt nicht reagiert. Erst wenn ich die Taste in etwa so lange drücke, wie es normalerweise dauert, bis die Wiederholfunktion einsetzt, wird ein Tastendruck generiert. Aber nur genau einer, eine Wiederholung findet nicht statt.


    Wenn ich mir mit 'mode2' die Impulse anzeigen lasse, so erscheint alles noch sehr flott. Auch kurze Tastendrücke werden erkannt, und bei längerem Drücken erkennt man an den veränderten Zeiten, dass die Repeat-Funktion einsetzt. Auch mit 'mode2 -s 250' werden sinnvolle Diagramme dargestellt.


    Den LIRC Dämon starte ich auf dem PC mit

    Code
    setserial /dev/ttyS0 uart none
    modprobe serial_ir
    rclircd restart

    Hat vielleicht jemand eine Idee, was dieses Fehlverhalten verursachen könnte?


    Klaus

  • Nachtrag: ich habe jetzt auf beiden Systemen mal mit 'mode2 -s 500' das Impulsdiagramm eines Drucks auf die OK-Taste aufgezeichnet:

    Code
    _------------_________-_-___-_-_-___-___-_-_-___-_-___-___-_-_-___-___-_-_-___-_-___-_-_-_-___-___-_-___-_-___-___-___-_
    _------------_________-_-___-_-_-___-___-_-_-___-_-___-___-_-_-___-___-_-_-___-_-___-_-_-_-___-___-_-___-_-___-___-___-_

    Oben der RasPi, unten der PC. Wie man sieht, sind die Diagramme völlig identisch. Das heißt also, es liegt nicht am Sensor oder der Art, wie dieser an das System angebunden ist. Die FB ist natürlich auch in beiden Fällen die selbe.


    Klaus

  • Hallo Klaus,

    Ist es derselbe Kernel (Version) ?

    Mfg Stefan

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • Aber mode2 (und inzwischen auch xmode2) liefert exakt die richtigen Impulsdiagramme. Alles weitere sollte doch eigentlich nur noch Software-Sache sein. Irgendwie macht anscheinend 'irw' (und damit auch der lircd) aus dem Impulsen nicht die richtigen Codes. Wobei er es, wie gesagt, tut, wenn man die Taste länger gedrückt hält (gefühlt ein paar hundert Millisekunden). Grundsätzlich kann er es also schon, nur kurze Tastendrücke und Repeat gehen nicht.


    Oder kann das echt was mit den "C States" zu tun haben?


    Klaus

  • So genau kenn ich mich damit nicht aus, ich weiss nur dass einige meiner Benutzer nach dem Abschalten der CStates auf einmal wieder lirc nutzen konnten ...

    Ich hab mit dem akteuellen 4.209er kernel allerdings das Problem dass lirc erst gar nicht mehr geht, da werd ich wohl auf ir-keytable umstellen muessen.

  • Hm ja diese Last hatte ich damals mit der SMT7020s Fernbedienung auch ;)


    Brauche hilfe bei smt-fernbedienung an Raspberry PI


    oder auch hier:

    [Gelöst] Lirc config für Fernbedienung Samsung SMT 7020s -- Titel alt Fehler beim anlernen der Samsung SMT 7020s FB an einem serielen Empfänger


    Heraus kamen dann eine Config welche am raspberry/Cubieboard geht

    und eine Für den PC.


    Man könnte sagen Keine Ahnung hat sehr viel Ahnung von Fernbedienungen ;D

  • Die SMT7020s benutzt anscheinend RC6, was die DM7020HD nicht tut. Meine sendet immer 32 Bit.


    Inzwischen habe ich lircd mal mit -Dtrace1 laufen lassen und da kommt bei einem kurzen Druck auf die "ok"-Taste:

    Der Code wird also richtig erkannt ("Trace: code: 4cb328d7", der Code für "ok").

    Aber anscheinend gibt es ein Problem mit dem "trailing pulse", weswegen die Daten dann verworfen werden.

    Ich habe für "ptrail" in lircd.conf schon alles Mögliche probiert - 0 (Null), kleinere Werte als 592 und größere - aber nichts hat geholfen.


    Klaus

  • Hast du nur diese eine Fernbedienung in der lircd.conf bzw. dem lircd.conf.d Verzeichnis oder gibt es da noch Einträge für andere Modelle, die eventuell ähnliche Codes akzeptieren?


    Und hast du mal versucht die Fernbedienung mit irrecord neu anzulernen? Dabei sollte er die Parameter für den Empfänger selber finden.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich nutze nen Philips-OVU412000

    Da kommt man mittlerweile relativ schwierig dran.

    Die laufen gut unter windows linux und macOS.

    Am Mac benutze ich die zum Beispiel mit der appletv3 FB wenn ich Präsentationen halte ...


    https://www.ebay.com/itm/Phili…429ad1:g:xUAAAOSwwKxbr6-D

  • als ich das letzte Mal lirc unter Ubuntu 18.04 eingerichtet habe, bin ich fast verrückt geworden. Auch andere sind auf aktuellen Systemen verzweifelt, siehe (vdr4)Arch - serial_ir ersetzt lirc_serial Modul mit Kernel >= 4.10


    Da die direkte Nutzung der Kernelschnittstelle über /dev/input... grottenlahm im Vergleich zu lirc war, habe ich die Nutzung der seriellen Schnittstelle für mich abgehakt. Beim nächsten mal werde ich mir ein FLIRC-Modul kaufen, dass einfach eine Tastatur emuliert.


    lirc ist deprecated und wird z.B. von mpv längst nicht mehr unterstützt. Um mittels mplayer-Plugin mpv nutzen zu können, musste ich mit irxevent jedes lirc-Kommando in einen Tastaturbefehl umwandeln. Das ist mit FLIRC dann auch nicht mehr notwendig.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Hi,

    Irmp soll gut laufen. Ranseyer bzw. Martin bei easyvdr bauen die ja. Jrie baut glaub ich auch welche. Frag beide mal. Ich denke es ist noch einer zu haben

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • Aber mode2 (und inzwischen auch xmode2) liefert exakt die richtigen Impulsdiagramme. Alles weitere sollte doch eigentlich nur noch Software-Sache sein. Irgendwie macht anscheinend 'irw' (und damit auch der lircd) aus dem Impulsen nicht die richtigen Codes.

    Bei irw werden die also schon nicht angezeigt? Die eigentliche Anwendung (VDR) ist dann also schon raus.


    Ich frage, weil der VDR die Daten von Lirc irgendwie merkwürdig verarbeitet.

    Der Wiederholcounter von LIRC liefert wird anscheinend ignoriert und statt dessen mit Wiederholverzögerung und -intervall versucht das irgendwie in den Griff zu bekommen.

    Nach dem Umstieg vom Remote-Plugin hab ich eine ganze Weile gebraucht die Parameter so einzustellen, dass es einigermassen lief. Symptome waren etwa wie hier beschrieben.


    Wenn es schon bei LIRC liegt, könnte man noch versuchen "gap" etwas zu verringern.

    Wenn der Wert zu gross ist, kann das dazu führen, dass der empfangene Tastencode verworfen wird.


    "repeat" müsste doch bedeuten, dass die FB nur so einen speziellen Code als Tastenwiederholung sendet und nicht den Code mit invertiertem Togglebit wiederholt?

    Irgendwie ist es für mich dann merkwürdig, dass ein längerer Tastendruck helfen hilft.


    Wundert mich ehrlich gesagt, dass man noch ohne Verrenkungen ein Board bekommt, das die "Legacy-Ports" noch hat...

    Mich wundert das weniger, ich würde mir nie ein Board ohne kaufen.

    Diese "alten" Schnittstellen sind noch immer die einzige Möglichkeit, wenn es um Hardware nahe, direkte Ein- und Ausgabe geht. (Zumindest, wenn es sich preislich im Rahmen bleiben soll.)

    Die Schnittstellen selber sind dazu in allen Multi-IO-Bausteinen drin, Mehrkosten sind also nur die Stiftleisen.

    Gruss
    SHF


  • Ja, bereits 'irw' bekommt die Daten nicht, ebensowenig wie ein 'ncat -U /var/run/lirc/lircd'.


    VDR berücksichtigt den Wiederholcounter durchaus. Je nach Fernbedienung folgen aber wiederholte Tastencodes sehr schnell nach dem ursprünglichen Tastendruck, so dass man sich teilweise schwer tut, einen einzelnen Tastendruck zu tätigen. Daher wird das mit RcRepeatDelay und RcRepeatDelta in einen brauchbaren Rahmen gebracht. Wenn man diese beiden Werte auf 0 setzt, dann erhält man das von der FB vorgegebene Timing.


    Den Wert von 'gap' habe ich schrittweise bis auf 0 verringert, aber das hat am Verhalten nichts geändert.


    Ein Tastendruck mit 'repeat' sieht so aus:

    Code
    _------------_________-_-___-_-_-___-___-_-_-___-_-___-___-_-_-___-___-_-_-___-_-___-_-_-_-___-___-_-___-_-___-___-___-_
    
    _------------____-_
    
    _------------____-_
    
    _------------____-_
    
    _------------____-

    Dabei ist mir jetzt etwas aufgefallen: in der letzten Zeile fehlt am Schluss das '_'. Und wenn ich eine Taste nur kurz drücke, sieht es so aus:

    Code
    _------------_________-_-___-_-_-___-___-_-_-___-_-___-___-_-_-___-___-_-_-___-_-___-_-_-_-___-___-_-___-_-___-___-___-

    Drücke ich sie zweimal hintereinander kurz, so:

    Code
    _------------_________-_-___-_-_-___-___-_-_-___-_-___-___-_-_-___-___-_-_-___-_-___-_-_-_-___-___-_-___-_-___-___-___-_
    
    _------------_________-_-___-_-_-___-___-_-_-___-_-___-___-_-_-___-___-_-_-___-_-___-_-_-_-___-___-_-___-_-___-___-___-

    Anscheinend fehlt da am Ende etwas, das erst beim nächsten Tastendruck (oder Repeat-Code) "nachgelegt" wird. Irgendwo wird da anscheinend etwas gepuffert, was nicht sein sollte.


    Klaus

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!