[0.4] LIRC mit Homebrew-Serial funktioniert nach einiger Zeit nicht mehr

  • Hi,


    bis vor etwa 2 Wochen war meine VDR Welt in Ordnung. Alles funktionierte prima.
    Nun aber habe ich Probleme: Der VDR reagiert nach einiger Betriebszeit (oder von Bootzeitpunkt an) nicht mehr auf die FB.


    Wann das Problem genau auftritt, konnte ich noch nicht feststellen.
    Meist funktioniert nach dem Einschalten alles, erst nach einiger Zeit reagiert der VDR nicht mehr auf die FB.


    Das komplette System ist seit längerer Zeit unverändert (HW, SW, OS, Plugins)


    Habe ein Home-brew (16x50 UART compatible serial port) an COM 1 mit einem Selbstbau-Empfänger und dies auch so im yaVDR konfiguriert:
    Web Configuration Frontend -> Einstellungen -> Einstellung der Fernbedienung
    LIRC Support [x]
    Empfänger: Home-brew (16x50 UART compatible serial port)
    Serielle Schnittstelle: ( ) none (o) /dev/ttyS0 (COM1) ( ) /dev/ttyS0 (COM1)
    In dem IR-Empfänger ist eine LED, so dass man erkennen kann, wenn der Empfänger Strom hat und ein IR Signal von der FB empfangen wird.


    Eine weitere "Besonderheit" meines Systems: Ich habe bereits vor langer Zeit ein Paket zum "entprellen" der FB installiert.
    # wget http://dl.dropbox.com/.../even…0930-0.3s~natty_amd64.deb
    # dpkg -i eventlircd*0.3s*.deb
    # restart eventlircd
    Die Installation liegt aber mittlerweile >6 Monate zurück


    Was habe ich schon probiert:

    • Über AndroVDR (Android App) kann ich den VDR noch steuern
    • Über eine angeschlossene Tastatur kann ich den VDR noch steuern
    • Einen anderen, baugleichen Empfänger angeschlossen: kein Erfolg
    • Den Empfänger vorübergehend an COM2 angeschlossen: kein Erfolg
    • Neue Batterien für die FB: kein Erfolg
    • # restart eventlircd: kein Erfolg
    • # restart lircd: kein Erfolg
    • # restart vdr: kein Erfolg
    • Im Web Frontend unter Einstellungen -> Einstellung der Fernbedienung bei unveränderten Einstellungen auf "Speichern" geklickt.
      Manchmal / selten funktioniert die FB wieder
    • # reboot: hilft meist nicht !? - Es muss schon ein Aus- / Einschalten sein ???!!!

    Meist hilft nur ein Aus- und Einschalten des PCs damit die FB bzw. Lirc (oder wasauchimmer) wieder funktioniert.


    Im Log konnte ich nix Verdächtiges sehen (aber vielleicht habe ich nur nicht nach dem richtigen gesucht).
    Wonach kann / soll ich suchen ?
    Wie kann man debuggen bzw. herausfinden, woran es liegt?


    Syslog:



    # cat /proc/bus/input/devices (zu einem Zeitpunkt wo es mal wieder nicht funktioniert)


    # ir-keytable


    # restart eventlirc

    Asus P5GC, Celeron 430 1.80GHz, 2 GB, 1TB, ZOTAC GeForce GT240, yaVDR 0.5, Hauppauge Nova hd-s2, 2x TT 3200, Toshiba 42X3030D

  • bis vor etwa 2 Wochen war meine VDR Welt in Ordnung. Alles funktionierte prima.
    Nun aber habe ich Probleme: Der VDR reagiert nach einiger Betriebszeit (oder von Bootzeitpunkt an) nicht mehr auf die FB.


    (Irgend)welche Updates in letzter Zeit?


    Regards
    fnu

    HowTo: APT pinning

  • Keine Updates ... zumindest nix selbst angestossen.
    Keine neuen Plugins
    Nix am System gebastelt .... habe den VDR einfach nur benutzt ....

    Asus P5GC, Celeron 430 1.80GHz, 2 GB, 1TB, ZOTAC GeForce GT240, yaVDR 0.5, Hauppauge Nova hd-s2, 2x TT 3200, Toshiba 42X3030D

  • mir ist das in Verbindung mit nem Atric auch auf der 0.5pre 2x aufgefallen, kam hier allerdings nach reboot zurück.


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5

  • Ich weiss zwar nicht so genau, wass ich da tue bzw. welche Erkenntnisse man daraus ziehen kann, aber angeregt durch andere Beiträge habe ich probiert:


    # irw /var/run/lirc/lircd


    Wenn man dann eine Taste auf der FB drückt, sollte eine entsprechende Ausgabe erfolgen, bei mir z.B.
    160 KEY_OK devinput
    ... zumindest dann, wenn auch der VDR auf die FB reagiert.


    Wenn man o.g. Kommando ausführt, wenn der VDR nicht auf die FB reagiert, dann erfolgt bei mir KEINE Ausgabe.


    Ich interpretiere das so, dass keine Signale zum VDR durchkommen und er daher natürlich nicht reagieren kann.


    Wo kann man als nächstes ansetzen, irgendwie muss es doch möglich sein herauszufinden, wo die Signale versacken...

    Asus P5GC, Celeron 430 1.80GHz, 2 GB, 1TB, ZOTAC GeForce GT240, yaVDR 0.5, Hauppauge Nova hd-s2, 2x TT 3200, Toshiba 42X3030D

  • Wo kann man als nächstes ansetzen, irgendwie muss es doch möglich sein herauszufinden, wo die Signale versacken...


    Du hast schon sehr viel an Fehlerquellen ausgeschlossen.


    - Softwarefehler unwahrscheinlich, dennoch Reapetfilter vielleicht testweise deaktivieren.
    - Board (UART defekt, bzw., thermische Probleme damit)?
    - Handteil defekt?


    Albert

  • Kalte Lötstelle am selbst gebrauten Empfänger?


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Kalte Lötstelle am selbst gebrauten Empfänger?


    Gerald, auch das hat er schon ausgeschlossen.


    Einen anderen, baugleichen Empfänger angeschlossen: kein Erfolg


    Albert

  • Gerald, auch das hat er schon ausgeschlossen.


    Sorry, überlesen. Dann sieht es nicht gut aus, Auf USB-Empfänger wechseln.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • War nicht ganz untätig.


    Habe versucht genauer zu analysieren, wann LIRC bzw. die FB nicht mehr funktionieren.
    Es sieht im Moment danach aus, dass die FB NICHT - wie bisher gedacht - während des laufenden Betriebs irgendwann "ausfällt".
    Vielmehr scheint es so, dass es sich beim / während des Bootens entscheidet, obs klappt oder nicht.
    Ich habe übersehen, dass der VDR sich immer mal wieder abschaltet und zum nächsten Timer wieder hochfährt (und dann das Problem auftritt).


    Habe weiterhin mit dem Webfrontend rumgepielt und auf ander FB/Empfänger umgestellt und dann wieder zurück auf Home-Brew.
    Das Ergebnis war, dass irgendwann LIRC nicht mehr startete: /etc/lirc/lircd.conf war nicht mehr vorhanden.
    Habe daraufhin folgendes getan:

    • Im Webfrontend: Einstellungen -> Einstellung der Fernbedienung:
      [x] LIRC Support
      Home-brew (16x50 UART compatible serial port)
      /dev/ttyS0 (COM1)
    • # stop eventlircd
    • /etc/lirc/lircd.conf aus Backup zurückgespielt (ja, mache Backups, auch wenn diese von anderen oft überbewertet werden :-) )
    • # process-template /var/lib/vdr/remote.conf
    • # start eventlircd (keine Fehler, LIRC startet auch wieder)
    • # stop eventlircd
    • # ls /dev/lirc*
      /dev/lirc0 /dev/lirc1
    • # mode2 -d /dev/lirc0 bzw
      # mode2 -d /dev/lirc1 und FB Tasten gedrückt.
      Eine Ausgabe gab es nur bei lirc1
    • /etc/lirc/hardware.conf:
      War: REMOTE_DEVICE ="/dev/lirc0"
      Geändert nach: REMOTE_DEVICE ="/dev/lirc1"
    • # start eventlircd

    Danach funktionierte die FB immerhin wieder. Obs nachhaltig ist bleibt abzuwarten.


    (siehe auch gelöst-0-4-lirc-mit-atric-und-hauppage-will-nicht)


    Ich werde beim nächsten Rumgezicke mal in die /etc/lirc/hardware.conf:schauen, ob da eventuell wieder lirc0 drin steht ....


    Anyway, vielleicht lohnt sich ja doch der Umstieg auf USB ....
    1) welche Geräte sind empfehlenswert und problemlos
    2) möchte gerne meine FB und die Tastenprogrammierung behalten. Gibt es ein How-To um die existierende FB an einen neuen USB-IR-Empfänger anzubinden (oder muss man da nichts machen?)

    Asus P5GC, Celeron 430 1.80GHz, 2 GB, 1TB, ZOTAC GeForce GT240, yaVDR 0.5, Hauppauge Nova hd-s2, 2x TT 3200, Toshiba 42X3030D

  • Hallo, wenn es tatsächlich nur um das Problem der wechselnden Initialisierungsreihenfolge der Lirc-Empfänger geht, haben wir für die 0.5 bereits eine Lösung eingebaut, diie du vermutlich einfach übernehmen kannst: Weise dem Seriellen Empfänger einen eindeutigen Link zu:

    Code
    1. DRIVERS=="lirc_serial", ACTION=="add", SYMLINK+="lirc_serial.%n"


    und in die hardware.conf muss dann noch der passende Pfad:

    Code
    1. REMOTE_DEVICE ="/dev/lirc_serial.0"

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Heute funktionierte es nach nem reboot mal wieder nicht...


    # ls /dev/lirc* zeigte wieder zwei lirc devices: /dev/lirc0 /dev/lirc1,
    auch die hardware.conf war noch unverändert auf REMOTE_DEVICE ="/dev/lirc1"


    Nur war der seriele Hombrew Empfänger nun nicht mehr auf /dev/lirc1 sondern auf dev/lirc0 :-(


    Ich denke, ich werde also den Ansatz von seahawk1986 versuchen, habe aber als Nicht-Täglich-Linux-Konfigurierer
    ein kleines Problem:
    - Wo wird DRIVERS=="lirc_serial", ACTION=="add", SYMLINK+="lirc_serial.%n" eingetragen???
    - Muss ich neben der beschriebenen Änderung in der hardware.conf noch etwas anderes tun (z.b. templates verarbeiten)?

    Asus P5GC, Celeron 430 1.80GHz, 2 GB, 1TB, ZOTAC GeForce GT240, yaVDR 0.5, Hauppauge Nova hd-s2, 2x TT 3200, Toshiba 42X3030D

  • Wo wird DRIVERS=="lirc_serial", ACTION=="add", SYMLINK+="lirc_serial.%n" eingetragen???


    Die udev-Regel kannst du (wie ich es auch für die yaVDR 0.5 gemacht habe) als /lib/udev/rules.d/98-serial-lirc.rules ablegen.

    Muss ich neben der beschriebenen Änderung in der hardware.conf noch etwas anderes tun (z.b. templates verarbeiten)?


    Wenn du das ganze updatesicher machen willst ja - da musst du ein custom Template für die hardware.conf unter /etc/yavdr/templates_custom/etc/lirc/hardware.conf/10_main anlegen, das so aussehen sollte: https://raw.github.com/yavdr/y…irc/hardware.conf/10_main

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hmmmm, funktioniert noch nicht ....


    Neue Datei erstellt: /lib/udev/rules.d/98-serial-lirc.rules
    Inhalt: DRIVERS=="lirc_serial", ACTION=="add", SYMLINK+="lirc_serial.%n"


    /etc/lirc/hardware.conf geändert:
    REMOTE_DEVICE ="/dev/lirc_serial.0"


    #rebot


    Nach dem Hochfahren läuft der VDR, reagiert aber nicht auf die FB.
    Die LED am IR-Empfänger bleibt dunkel -> der Homebrew-Empfänger hat keine Spannung -> Serieller port ist nicht initialisiert.


    # ls /dev/lirc*
    zeigt nix


    [edit]
    # ls /dev/lirc*
    zeigt "/dev/lirc0"


    müsste unter /dev/ nicht auch ein device "lirc_serial.*" zu sehen sein ??? - ist bei mir jedenfalls nicht vorhanden

    Asus P5GC, Celeron 430 1.80GHz, 2 GB, 1TB, ZOTAC GeForce GT240, yaVDR 0.5, Hauppauge Nova hd-s2, 2x TT 3200, Toshiba 42X3030D

    The post was edited 1 time, last by GPu ().

  • Was sagt denn

    Code
    1. dmesg | grep lirc


    Bei meinem yaVDR 0.5 sieht das dann so aus:

    Code
    1. ~$ dmesg | grep lirc
    2. [ 32.772840] lirc_dev: IR Remote Control driver registered, major 250
    3. [ 32.936530] lirc_serial: module is from the staging directory, the quality is unknown, you have been warned.
    4. [ 33.836167] lirc_serial: auto-detected active low receiver
    5. [ 33.836459] lirc_serial lirc_serial.0: lirc_dev: driver lirc_serial registered at minor = 0


    Neue Datei erstellt: /lib/udev/rules.d/98-serial-lirc.rules
    Inhalt: DRIVERS=="lirc_serial", ACTION=="add", SYMLINK+="lirc_serial.%n"


    Alles schön mit Linux-Zeilenenden? Sicher, dass da nicht irgendwo ein Fehler in der Regel ist?

    müsste unter /dev/ nicht auch ein device "lirc_serial.*" zu sehen sein ??? - ist bei mir jedenfalls nicht vorhanden


    Doch, das sollte dann z.B. so aussehen:

    Code
    1. ~$ ls -l /dev/lirc*
    2. crw------- 1 root root 250, 0 Sep 21 15:24 /dev/lirc0
    3. lrwxrwxrwx 1 root root 5 Sep 21 15:24 /dev/lirc_serial.0 -> lirc0

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Auf USB-Empfänger wechseln.


    Er hat Recht.


    Albert

  • Quote



    Zitat von »GPu«


    Neue Datei erstellt: /lib/udev/rules.d/98-serial-lirc.rules


    Inhalt: DRIVERS=="lirc_serial", ACTION=="add", SYMLINK+="lirc_serial.%n"

    So wird das Problem aber doch nur verschoben?


    Wäre nicht praktischer:

    Code
    1. DRIVERS=="lirc_serial", ACTION=="add", SYMLINK+="lirc_serial.com1"


    oder so ähnlich, also ohne Variable %n?


    Sonst hat man abwechselnd
    /dev/lirc_serial.0 -> /dev/lirc0
    und
    /dev/lirc_serial.1 -> /dev/lirc1


    und kann immer noch keinen festen Eintrag in der /etc/lirc/hardware.conf vornehmen.


    Oder habe ich da jetzt einen gedanklichen Klemmer?


    Gruß, Bernd

    Prod1: yaVDR 0.4; hush mini-itx-Gehäuse mit POV/ION330-1,technisat skystar usb 2
    Prod2: yaVDR 0.3; Silverstone ML02B-MXR; ZOTAC ION-F;
    Prod3: ZenDEB SMT7020

  • Der Gedanke hinter der udev-Regel ist ja den Lirc-Empfänger herauszupicken, der über lirc_serial läuft. Nur für Lirc-Empfänger mit diesem Kriterium werden die Symlinks erstellt - leider gibt es arg wenig brauchbare udev-Kriterien für diese Empfänger, wenn man das allgemeingültig vorkonfigurieren will:


    Die Anzahl der in den Lirc-Datenbanken hinterlegten Empfänger mit diesem Treiber ist aber sehr überschaubar und wer meint zwei davon gleichzeitig an einem yaVDR betreiben zu müssen, muss sich halt etwas anderes überlegen...

    Code
    1. $ grep lirc_serial /usr/share/lirc/lirc.hwdb
    2. Home-brew (16x50 UART compatible serial port);serial;lirc_dev lirc_serial;hw_default;;
    3. Anir Multimedia Magic;animax;lirc_dev lirc_serial;hw_default;animax/lircd.conf.animax;
    4. IRdeo;irdeo;lirc_dev lirc_serial;hw_default;;
    5. IRdeo Remote;irdeo_remote;lirc_dev lirc_serial;hw_default;;
    6. Linksys NSLU2 (CTS2+GreenLED);nslu2;lirc_dev lirc_serial;hw_default;;
    7. Packard Bell receiver;packard_bell;lirc_dev lirc_serial;hw_default;packard_bell/lircd.conf.packard_bell;

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)