Yavdr ansible und igorPlug-USB

  • Hallo,


    ich musste yaVDR05 nach Jahren problemlosen betriebes updaten, vieles funktioniert auch schon, aber z.B. funktioniert die Fernbedienung noch nicht und ich komme da nicht weiter. Der Igor-USB wird erkannt, die lirc.conf der Fernbedienung vom alten VDR ist unter /etc/lirc/lircd.conf.d gespeichert. Leider funktioniert es nicht....


    dmesg | grep igor:

    ?!?

    Server: Hardware: Intel DH77KC, Celeron G1610, 8GB RAM, 2x 5TB HDD, 2x WD 1,9TB HDD; 1x 64 GB SSD (root), System Ubuntu 18.4 / YaVDR ansible headless
    Client: Hardware: Lenovo Q150 (nur Netzwerk, 1GB RAM, ohne DVB-Karte, Igor-USB-Empfänger) System: Ubuntu 18.4 / YaVDR ansible

  • Kannst du mal bitte die Ausgabe von sudo ir-keytable zeigen? Soweit ich weiß wird das Teil bei neueren Kernelversionen als rc-core Empfänger angebunden, lircd braucht es dann nicht.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo seahawk1986, danke für deine Antwort. Folgendes Resultat:


    Code
    /sys/class/rc/rc0/ gefunden (/dev/input/event3) mit:
            Name: IgorPlug-USB IR Receiver
            Treiber: igorplugusb, Tabelle: rc-hauppauge
            Lirc Gerät: /dev/lirc0
            unterstützte Protokolle: lirc rc-5 rc-5-sz jvc sony mce_kbd rc-6 sharp xmp
            Aktivierte Protokolle: lirc
            bus: 3, Anbieter/Produkt: 03eb:0002, Version: 0x0001
            Wiederholungsverzögerung = 500 ms, Wiederholungsperiode = 125 ms


    Scheint also irgendwie erkannt zu werden?

    Server: Hardware: Intel DH77KC, Celeron G1610, 8GB RAM, 2x 5TB HDD, 2x WD 1,9TB HDD; 1x 64 GB SSD (root), System Ubuntu 18.4 / YaVDR ansible headless
    Client: Hardware: Lenovo Q150 (nur Netzwerk, 1GB RAM, ohne DVB-Karte, Igor-USB-Empfänger) System: Ubuntu 18.4 / YaVDR ansible

    Einmal editiert, zuletzt von Negge ()

  • Siehe hier: Etwas hoch scrollen Beitrag IGOR USB

    https://www.yavdr.org/document…/de/ch02s03.html#usb_irmp

    Laut Beitrag darf Lirc nicht aktiviert werden..


    Gruß emma53

    Test_VDR: Lintec Senior - MSI G41M P25 MS7592 Board - Intel P4 E8500 / 775 CPU - MSI GT710 PCI-e passiv - DVBSky S2 952 Dual SAT - 120GB Intenso SSD + Big HDD - 2x2GB DDR3 RAM - LG GH24NSD1 S-ATA DVD - SMK RC6 MCE 50GB FB. an STM32 USB-Arduino - EasyVDR 5 - Softhddevice mit Pulseaudio - Kodi 20.2 m. Confluence Skin
    Clients:Raspberry PI B+ mit OpenElec 5.08 Kodi Helix 14.2 und Tsop31238 Lirc mit Conrad Promo8 FB on Code VCR 0104 - Raspi3 m.OpenElec 6.03 und Kodi 15.2 Isengard

  • Ok, also ist es der einzige rc-core Empfänger im System. Dann kannst du lircd eigentlich wieder deaktiveren (bei yavdr-ansible ist das ja standardmäßig maskiert systemctl mask --now lircd.service) und eine Keymap für den Empfänger anlegen.


    Dazu als erstes Eventlircd vorübergehend deaktivieren, damit es den Empfänger freigibt: sudo systemctl mask --runtime --now eventlircd.{socket,service}

    Jetzt solltest du mit ir-keytable die Scancodes für Tastendrücke sehen können, wenn du folgendes machst: sudo ir-keytable -c -p rc5 -t


    Dann erstellst du eine Keymap (z.B. eine /etc/rc_keymaps/igorplugusb ) mit dieser Kopfzeile:

    Code
    # table rc-hauppauge, type: rc5

    Und in der Datei ordnest du einem Scancode den jeweiligen Tastennamen zu, also z.B. 0xb49 KEY_MENU

    Um die Keymap probeweise zu laden, kannst du folgendes machen: sudo ir-keytable -w /etc/rc_keymaps/igorplugusb -t, dann solltest du die den Scancodes zugeordneten Tastennamen sehen.


    Damit die Keymap vom Kernel beim Start des Systems geladen wird, trägst du in der /etc/rc_maps.cfg noch folgende Zeile ein:

    Code
    igorplugusb    rc-hauppauge    /etc/rc_keymaps/igorplugusb

    Nach einem Reboot sollte dann alles funktionieren.


    Wenn du unbedingt lircd nutzen willst, hast du zwei Möglichkeiten:

    • eventlircd komplett deaktivieren: sudo systemctl mask --now eventlircd.{socket,service}, damit lircd ungestört arbeiten kann
    • in der /etc/lirc/lirc_options.conf einen anderen Sockel als /var/run/lirc/lircd für den output wählen, weil der schon von eventlircd belegt wird - lircd2uinput bindet wegen der /etc/systemd/system/lircd.service.d/lircd2uinput.conf den Socket /var/run/lirc/lircd0 nach dem Start der lircd.service ein - also z.B.:
    Code
    output          = /var/run/lirc/lircd0
    pidfile         = /var/run/lirc/lircd0.pid

    Es kann außerdem sein, dass du verhindern musst, dass ich eventlircd das Kernel Input Device des Empfängers schnappt - das passiert für rc-core Empfänger wegen diesen beiden Zeilen: https://github.com/yavdr/yavdr…v/98-eventlircd.rules#L65 f.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Einmal editiert, zuletzt von seahawk1986 ()

  • Hallo Seahawk,


    nochmal danke für die Hilfe. Also ich habe die entsprechende rc-Keymap nach deiner Anleitung erzeugt:

    cat /etc/rc_keymaps/igorplugusb


    und in /lib/udev/rules.d/98-lircd.rules habe ich auch die 2 Zeilen

    Code
    #SUBSYSTEMS=="rc", \ 
    #ENV{eventlircd_enable}="true"

    auskommentiert, damit udev den nicht zuordnet.


    Nach dem Reboot hat der VDR auf die FB-Signale dennoch nicht reagiert.


    Ich hab dann nochmal getestet:

    sudo su

    systemctl mask --runtime --now eventlircd.{socket,service}

    ir-keytable -w /etc/rc_keymaps/igorplugusb -t


    An der ssh-Konsole kann ich erkennen, dass er die Tastendrücke zuordnet , am TV kann ich allerdings erkennen, dass der VDR nur auf einige Tastendrücke reagiert (Zahlen 1-9, hoch, runter, rechts, links, VolUp/Down, ).Allerdings nicht: OK, Back, Menu, ChanUp/Down an der Fernbedienung nicht funktioniert (nur Tastatur).

    ir-keytable -w /etc/rc_keymaps/igorplugusb -t



    Code
    cat /etc/rc_maps.cfg | grep igor
    
    igorplugusb    rc-hauppauge    /etc/rc_keymaps/igorplugusb

    Server: Hardware: Intel DH77KC, Celeron G1610, 8GB RAM, 2x 5TB HDD, 2x WD 1,9TB HDD; 1x 64 GB SSD (root), System Ubuntu 18.4 / YaVDR ansible headless
    Client: Hardware: Lenovo Q150 (nur Netzwerk, 1GB RAM, ohne DVB-Karte, Igor-USB-Empfänger) System: Ubuntu 18.4 / YaVDR ansible

  • und in /lib/udev/rules.d/98-lircd.rules habe ich auch die 2 Zeilen Code

    Code
    #SUBSYSTEMS=="rc", \ 																								#ENV{eventlircd_enable}="true"																				

    auskommentiert, damit udev den nicht zuordnet.

    Das darfst du nur machen, wenn du lircd nutzen willst (und in dem Fall macht es keinen Sinn eine evmap anzulegen).


    Vermutlich kommen die Tasten aktuell über den X-Server an den VDR und dabei werden Keycodes > 255 nicht unterstützt. Der yaVDR-Tastennamespace ist darauf ausgelegt über einen Lirc-kompatiblen Sockel (wie dem von eventlircd) an den VDR weitergereicht zu werden.


    Ich würde also die beiden Zeilen wieder einkommentieren, dafür sorgen, dass eventlircd.socket und eventlircd.service gestartet werden systemctl unmask eventlircd.{socket,service} und lircd.service maskiert ist systemctl mask --now lircd.{socket,service} und dann einen Neustart machen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo Seahawk,


    noch mal danke für die Hilfe, ich habe das so gemacht wie von Dir vorgeschlagen. Bin erst jetzt dazu gekommen weiter zu testen, und funktioniert leider nicht?!?


    Wenn ich mittels systemctl mask --runtime --now eventlircd.{socket,service} eventlirc maskiere, dann geht's wie oben beschrieben (nicht alle Tasten werden erkannt) . systemctl mask --now lircd.{socket,service} hatte ich vor einem Reboot ebenfalls ausgeführt, also müsste lircd ja auch maskiert sein? Bring auch nichts wenn ich ein systemctl mask --runtime --now lircd.{socket,service} mache, es werden immer noch Signale von der Fernbedienung erkannt.


    Es gibt übrigens eine Datei "/var/run/lirc/lircd-lirc0" . Hat die damit was zu tun?


    Ich hab ansonsten noch einsystemctl mask --now eventlircd.{socket,service} probiert und rebootet, nach dem Reboot geht die Fernbedienung nicht, auch nicht mehr nach einem ?systemctl mask --runtime --now eventlircd.{socket,service} wie zuvor?!? Jetzt braucht es erst wieder ein ir-keytable -w /etc/rc_keymaps/igorplugusb -t, dann geht die FB am VDR wieder???

    Server: Hardware: Intel DH77KC, Celeron G1610, 8GB RAM, 2x 5TB HDD, 2x WD 1,9TB HDD; 1x 64 GB SSD (root), System Ubuntu 18.4 / YaVDR ansible headless
    Client: Hardware: Lenovo Q150 (nur Netzwerk, 1GB RAM, ohne DVB-Karte, Igor-USB-Empfänger) System: Ubuntu 18.4 / YaVDR ansible

  • Probier mal die /lib/udev/rules.d/98-lircd.rules in /lib/udev/rules.d/98-lircd.disabled umzubenennen und schau, ob das Problem nach einem Neustart immer noch da ist.


    Was sagt lsusb zu dem Empfänger?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hi,


    die Ausgabe von "lsusb -v" liefert für das Device:

    Nach umbennen von

    /lib/udev/rules.d/98-lircd.rules in /lib/udev/rules.d/98-lircd.disabled

    wird die Fernbedieung initialisiert und funktioniert: Teilweise, so wie oben beschrieben. Es werden nicht alle Tasten an den VDR uebermittelt.



    Mit ir-keytable -t hab dann nochmal die erkannten Codes der Fernbedienung getestst:


    Bsp.: an VDR übermittelte Taste "vol+"

    Code
    root@q150:~# ir-keytable -t
    Ereignisse werden getestet. Bitte drücken Sie STRG-C, um abzubrechen.
    840.245755: Ereignistyp EV_MSC(0x04): Scancode = 0x1e10
    840.245755: Ereignistyp EV_KEY(0x01) key_runter: KEY_VOLUMEUP(0x0073)
    840.245755: Ereignistyp EV_SYN(0x00).
    840.512029: Ereignistyp EV_KEY(0x01) key_hoch: KEY_VOLUMEUP(0x0073)
    840.512029: Ereignistyp EV_SYN(0x00).
    ^C

    Bsp.: an VDR NICHT übermittelte Taste "Ch+"

    Code
    ir-keytable -t
    Ereignisse werden getestet. Bitte drücken Sie STRG-C, um abzubrechen.
    947.899349: Ereignistyp EV_MSC(0x04): Scancode = 0x1e20
    947.899349: Ereignistyp EV_KEY(0x01) key_runter: KEY_CHANNELUP(0x0192)
    947.899349: Ereignistyp EV_SYN(0x00).
    948.156031: Ereignistyp EV_KEY(0x01) key_hoch: KEY_CHANNELUP(0x0192)
    948.156031: Ereignistyp EV_SYN(0x00).
    ^C


    Weitere beobachtungen:


    Bei Taste Play hält der VDR das Live-Signal an ? (als ob Taste Pause gedrückt wurde):

    Code
    1123.188103: Ereignistyp EV_KEY(0x01) key_runter: KEY_PLAY(0x00cf)
    1123.188103: Ereignistyp EV_SYN(0x00).
    1123.314113: Ereignistyp EV_MSC(0x04): Scancode = 0x1e35
    1123.314113: Ereignistyp EV_SYN(0x00).
    1123.580038: Ereignistyp EV_KEY(0x01) key_hoch: KEY_PLAY(0x00cf)
    1123.580038: Ereignistyp EV_SYN(0x00).

    Auf die Taste Pause reagiert der VDR nicht:

    Code
    1209.688127: Ereignistyp EV_MSC(0x04): Scancode = 0x1e30
    1209.688127: Ereignistyp EV_KEY(0x01) key_runter: KEY_PAUSE(0x0077)
    1209.688127: Ereignistyp EV_SYN(0x00).
    1209.779066: Ereignistyp EV_MSC(0x04): Scancode = 0x1e30
    1209.779066: Ereignistyp EV_SYN(0x00).
    1210.044036: Ereignistyp EV_KEY(0x01) key_hoch: KEY_PAUSE(0x0077)
    1210.044036: Ereignistyp EV_SYN(0x00).

    Und die Taste Exit/back auf der Fernbedienung beendet das vdr-sxfe-frontend wie auf die "ESC"-Taste auf der Tastatur (Ich hab den Client im Testbetrieb inzwischen wierder so eingerichtet, dass der Client greift per VDR-SXFE auf den den VDR auf dem VDR-Server zugreift).

    Code
    root@q150:~# ir-keytable -t
    Ereignisse werden getestet. Bitte drücken Sie STRG-C, um abzubrechen.
    1248.368002: Ereignistyp EV_MSC(0x04): Scancode = 0x1e1f
    1248.368002: Ereignistyp EV_KEY(0x01) key_runter: KEY_ESC(0x0001)
    1248.368002: Ereignistyp EV_SYN(0x00).
    1248.636047: Ereignistyp EV_KEY(0x01) key_hoch: KEY_ESC(0x0001)
    1248.636047: Ereignistyp EV_SYN(0x00). 

    Server: Hardware: Intel DH77KC, Celeron G1610, 8GB RAM, 2x 5TB HDD, 2x WD 1,9TB HDD; 1x 64 GB SSD (root), System Ubuntu 18.4 / YaVDR ansible headless
    Client: Hardware: Lenovo Q150 (nur Netzwerk, 1GB RAM, ohne DVB-Karte, Igor-USB-Empfänger) System: Ubuntu 18.4 / YaVDR ansible

  • Es werden nicht alle Tasten an den VDR uebermittelt.

    Siehst du mit irw die Tastendrücke auf dem Sockel von eventlircd?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hi,

    danke nochmal für deine Hilfe.


    Code
    irw /var/run/lirc/lircd-lirc0
    Cannot connect to socket /var/run/lirc/lircd-lirc0: Connection refused


    root@q150:~# irw /var/run/lirc/lircd --> läuft, aber kann ich Tasten drücken wie ich will, passiert nichts. Mit Strg-C abbrechen.


    Zudem habe ich im Aufruf von vdr-sxfe bisher immer den Parameter --lirc=/var/run/lirc/lircd-lirc0 mitgegeben. Jetzt habe ich das gerade mal ohne den Parameter probiert, aber die Fernbedienung funktioniert dennoch so fehlerhaft wie oben beschrieben --> Also offenbar nicht über diesen Lirc-Socket?



    --------


    Zudem ist mir nach dem Reboot aufgefallen, dass die Fernbedienung direkt nach dem Reboot doch nicht direkt funktioniert. Die Keytable wird zwar geladen, aber wohl nicht richtig?!?. Erst nach einem ir-keytable -w /etc/rc_keymaps/igorplugusb geht sie (hatte ich vermutlich beim rumtesten dann immer mal gemacht). In der /etc/rc_maps.cfg steht igorplugusb rc-hauppauge /etc/rc_keymaps/igorplugusb drin. Und nach dem booten gibt

    nach dem ir-keytable -w /etc/rc_keymaps/igorplugusb wird offenbar das Protokoll RC-5 aktiviert?



    Naja, weitere/andere Baustelle mit dem automatischen laden des RC-5-Protokolls, erstmal müssetn die Tastendrücke auch richtig an den VDR weitergeben werden...

    Server: Hardware: Intel DH77KC, Celeron G1610, 8GB RAM, 2x 5TB HDD, 2x WD 1,9TB HDD; 1x 64 GB SSD (root), System Ubuntu 18.4 / YaVDR ansible headless
    Client: Hardware: Lenovo Q150 (nur Netzwerk, 1GB RAM, ohne DVB-Karte, Igor-USB-Empfänger) System: Ubuntu 18.4 / YaVDR ansible

  • Aus irgendeinem Grund scheint die udev-Regel, die den igorplugusb an eventlircd bindet nicht richtig zu funktionieren - du erlaubst schon, dass das rc-core Empfänger passiert (https://github.com/yavdr/yavdr…v/98-eventlircd.rules#L65), oder?


    Wenn du willst, kann ich mal per SSH auf den Rechner schauen, eventuell springt mir da was ins Auge...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hi, ich hab aufgegeben und es jetzt anders gelöst. Das Image von YaVDR0.5 läuft jetzt wieder auf dem Client. Geht und ist weniger gefrickel. Nur der Server ist jetzt neu (vor allem wegen dem EPG-Daemon). Trotzdem danke für die Hilfe.

    Server: Hardware: Intel DH77KC, Celeron G1610, 8GB RAM, 2x 5TB HDD, 2x WD 1,9TB HDD; 1x 64 GB SSD (root), System Ubuntu 18.4 / YaVDR ansible headless
    Client: Hardware: Lenovo Q150 (nur Netzwerk, 1GB RAM, ohne DVB-Karte, Igor-USB-Empfänger) System: Ubuntu 18.4 / YaVDR ansible

  • In yavdr-remote war noch eine störende udev-Regel 98-lircd.rules, die da hinein gespielt haben könnte - falls du noch die Möglichkeit hast, könntest du mal schauen ob es mit dem aktuellen Stand funktioniert.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hi,


    danke das du da nochmal nach geschaut hast. Werde ich beizeiten testen.


    Beste Grüße

    Server: Hardware: Intel DH77KC, Celeron G1610, 8GB RAM, 2x 5TB HDD, 2x WD 1,9TB HDD; 1x 64 GB SSD (root), System Ubuntu 18.4 / YaVDR ansible headless
    Client: Hardware: Lenovo Q150 (nur Netzwerk, 1GB RAM, ohne DVB-Karte, Igor-USB-Empfänger) System: Ubuntu 18.4 / YaVDR ansible

  • Ich hab das gleiche Problem, scheitere aber schon daran, den zweiten (eigentlich nicht vorhandenen) 2. IR-Empfänger zu entfernen:


    Sicher ist das ziemlich einfach, ich finde jedoch nur Tipps zum Hinzufügen eines Empfängers, nicht, wie man einen deaktiviert.... :rolleyes:


    sudo ir-keytable -c -p rc6 -t (und rc5) zeigt keine Ergebnisse.





    Oh, und ich hab genau wie Negge die alten Konfigurationsdateien vom yavdr 6.0 (der läuft noch per multiboot), falls es hilft.

    Mein VDR: yaVDR Ansible, Ubuntu 18.04.3 LTS, Asus H110M-A, Intel Core i5 6400T, Gigabyte GeForce GT 1030, 1 x 8 GB DDR4-2133, 40GB Intel 320 Series 2.5" SATA 3Gb/ MLC asynchro, L4M-Twin S2 ver 6.5, 300 Watt be quiet! Pure Power L8 Non-Modular in: Silverstone ML03B Desktop

    5 Mal editiert, zuletzt von Jinx138 ()

  • Sicher ist das ziemlich einfach, ich finde jedoch nur Tipps zum Hinzufügen eines Empfängers, nicht, wie man einen deaktiviert....

    Wenn du die Datei /etc/modules-load.d/serial_ir.conf löschst, sollte das Kernelmodul serial_ir beim Start nicht mehr automatisch geladen werden.

    sudo ir-keytable -c -p rc6 -t (und rc5) zeigt keine Ergebnisse.

    Der igorplugusb ist das Gerät rc1, das müsstest du ir-keytable noch mitgeben (und eventlircd.socket und eventlircd.service müssen gestoppt sein, damit das Gerät von ir-keytable ausgelesen werden kann): sudo ir-keytable -s rc1 -c -p rc6 -t

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Yes! Es funktioniert. Nach Entfernen der serial_ir.conf war der igorplugusb rc0, mit Protokoll rc5. Danach hab ich das Python-script angepasst und laufen lassen. Nach Neustart ging alles.


    Ich hab hier noch ein kleines lircrc und kodi zu toggeln:


    Code
    begin
        prog = irexec
        button = KEY_PROG2
        config = stop vdr-frontend ; start kodi
        config = stop kodi ; start vdr-frontend
    end

    Leider genügte es nicht, die Datei in /etc/lirc zu speichern oder an /etc/lirc/irexec.lircrc anzuhängen. Ist die Syntax eine andere?


    Tausend Dank seahawk, auch für Deine gesamte Arbeit!

    Mein VDR: yaVDR Ansible, Ubuntu 18.04.3 LTS, Asus H110M-A, Intel Core i5 6400T, Gigabyte GeForce GT 1030, 1 x 8 GB DDR4-2133, 40GB Intel 320 Series 2.5" SATA 3Gb/ MLC asynchro, L4M-Twin S2 ver 6.5, 300 Watt be quiet! Pure Power L8 Non-Modular in: Silverstone ML03B Desktop

  • Leider genügte es nicht, die Datei in /etc/lirc zu speichern oder an /etc/lirc/irexec.lircrc anzuhängen. Ist die Syntax eine andere?

    irexec läuft standardmäßig im Rahmen der für den VDR gestarteten Systemd-User Session und Upstart gibt es nicht mehr - daher musst du die /var/lib/vdr/.lircrc anpassen - ein Beispiel für das Hin- und Herwechseln zwischen VDR und KODI sähe so aus: https://github.com/yavdr/yavdr…ktop/templates/.lircrc.j2


    Die irexec.service in der User Session kannst du danach so neu starten:

    sudo -u vdr DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/666/bus systemctl --user restart irexec.service

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

Jetzt mitmachen!

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