Plugin Remote: Wechselnde /dev/input/eventXX /Programmieraufgabe

  • Hallo,
    trotz aller Suchen habe keine Lösung gefunden: in dem Wiki zu zum Plugin remote steht definitiv, dass das event in /dev/input dynamisch vergeben wird.
    http://www.vdr-wiki.de/wiki/index.php/Remote-plugin
    Daran kann man wohl nichts ändern.


    Meine Idee wäre ein kleines Script:
    1. mit dem Script aus obigem Link in /etc/udev/rules.d ein aktuelles Device /dev/input/ir anlegen


    Code
    SUBSYSTEM!="input", GOTO="remote_event_grp_end"
      ATTRS{name}=="*dvb*|*DVB*|* IR *", ENV{ID_CLASS}="ir" GROUP="vdr" SYMLINK+="input/ir"
      LABEL="remote_event_grp_end"


    2. mit ls -l /dev/input/ir den symbolischen Link auf das aktuelle Event auslesen.


    3. das ermittelte Event in die /etc/vdr/plugin.remote.conf eintragen. "-i /dev/input/ir" reicht leider nicht, es wird stattdessen die Nummer des events genommen und die FB wieder neu angelernt.


    4. eine ggf. vorher angelegte /var/lib/vdr/remote.conf.irXX symbolisch verlinken auf /var/lib/vdr/remote.conf.


    So mache ich es bisher von Hand. Wenn man das 100 Mal gemacht hat, kommt einem doch die Idee einer Automatisierung.


    Das Ganze müsste von der /etc/rc.local vor dem Start von VDR aufgerufen werden.


    Leider kann ich keine Scripte schreiben, sorry. ;( Vielleicht gibt es aber den einen oder anderen Freak, der das kann. Ich würde mich freuen, vielleicht auch manch ein anderer. Oder gibt es schon eine Lösung?


    Grüße


    GBruno

    Hardware:
    Desktop: Intel Core i5, 4x3,2 GHz, ASUS-Mainboard HL 97 plus, Festplatte Hybrid-S-ATA 2TB, 16 GB RAM, DVB-Sky-USB-Stick (DVB-T2), LG-4120B Brenner, VDR 2.4.8 (selbst kompiiiert, Ubuntu 20.04.2),
    Wohnzimmer: ASUS-Mainboard F2A85-V Pro, AMD A10 (?), 1TB-HD, 8 GB Speicher, Technotrend 4100 Budget (DVB-S), Prozessor-Grafik HD7660D, VDR 2.4.1 von XUbuntu 20.04.2).

  • Danke. Ich konnte es noch nicht testen, aber das scheint mir auch wieder nur den "dynamischen" Event auszulesen und mit /dev/input/ir zu verlinken. Das hatte ich schon, funktioniert aber nicht (s. o.). Außerdem werden bei mir Events von 5 -16 vergeben, d. h. ...[0-9] reicht nicht aus.

    Hardware:
    Desktop: Intel Core i5, 4x3,2 GHz, ASUS-Mainboard HL 97 plus, Festplatte Hybrid-S-ATA 2TB, 16 GB RAM, DVB-Sky-USB-Stick (DVB-T2), LG-4120B Brenner, VDR 2.4.8 (selbst kompiiiert, Ubuntu 20.04.2),
    Wohnzimmer: ASUS-Mainboard F2A85-V Pro, AMD A10 (?), 1TB-HD, 8 GB Speicher, Technotrend 4100 Budget (DVB-S), Prozessor-Grafik HD7660D, VDR 2.4.1 von XUbuntu 20.04.2).

    Einmal editiert, zuletzt von GBruno ()

  • Außerdem werden bei mir Events von 5 -16 vergeben, d. h. ...[0-9] reicht nicht aus.

    Deswegen steht da ja auch KERNEL=="event[0-9]*" und nicht KERNEL=="event[0-9]" ;)
    Kannst du nicht einfach den eindeutigen Hardware-Pfad in /dev/input/by-path/ statt den Device-Pfad /dev/input/event[0-9]* nutzen? Das ist im Wiki-Artikel auch noch beschrieben.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • einfach bei jedem start mithilfe der rc.local neu verlinken; was wie wechselt spielt dann rolle mehr denn unter lcdln ist das Display immer erreichbar ( sollte mit jedem eventx funktionieren, ... | grep lcd | cut -d ..... sollte dabei angepasst werden.



    Code
    # LCD switching event workaround
    sudo rm /dev/lcdln &
    sudo ln -s /dev/$(ls -l /dev/ | grep lcd | cut -d ":" -f 2 | cut -c 4-7) /dev/lcdln
    sudo service LCDd restart


    Server : Debian 10 + VDR 2.4.0 on | HP Gen8 Microserver X1265L | 16 GB EEC DDR 1600 | 1 x EVO 860 Pro 500 GB, 2x6TB HGST, 1x10 TB HGST | TBS 6981
    Client : Debian 11 + Kodi 19 (deb.multimedia Quellen) on | Intel DH77EB | i3 2100T | 16 GB 1600 DDR3 | GF GT 520 | 1 x 850 EVO 500 GB | BQ 300W L7 | X10 Remote | in Zalman HD 160 | Sedu Ambilight |
    Client : Debian 10 + Kodi 19 (deb.multimedia Quellen) on | Asus Z87 Pro | I5 4660 | 16 GB 1600 DDR3 | GF GTX770 | 1 x 850 EVO 500 GB | BQ 450 W L8 | in Chieftech CS 601 |
    Client : Debian 10 + Kodi 19 (deb.multimedia Quellen) on | Lenovo T430 |


    Websites | speefak.spdns.de | www.itoss.org | cc-trade.info | www.bike2change.de | www.x-woodart.de |

  • @seahawk: "eindeutigen Hardware-Pfad in /dev/input/by-path/ ... nutzen?" Das geht leider nicht gut, denn im Wiki steht auch:

    Zitat

    "-P"remote -i /dev/input/by-path/pci-0000:02:06.0--event-ir"
    Hinweis:
    Da dies device dynamisch vergeben wird, kann eine genaue Beobachtung
    von /dev/input/by-path/ nach verschiedenen Neustarts helfen, wenn es zu
    Problemen kommt."

    Das kan nicht Sinn der Sache sein. Außerdem habe ich das schon probiert, das Event ändert sich trotzdem immer wieder. Mein Ziel ist es, dass mein PC nach dem Hochfahren ein Fernsehbild zeigt mit funktionierender Fernbedienung, ohne viel probieren zu müssen. Das habe ich jetzt auch schon.
    Mit früheren Versionen von Ubuntu und VDR (1.7.22) und xine ging das auch. Allerdings habe ich auch das Mainboard getauscht. Und dummerweise ändert sich beim "Anlern-OSD" anscheinend die Auflösung. Jedenfalls zeigt mein softhddevice nur einen grauen Bildschirm, so dass ich nichts machen kann außer den VDR neu zu starten. :(


    speefak: Das werde ich probieren, wenn es meinem Rücken wieder besser geht. Den Code verstehe ich als Laie aber leider nicht ;( , wird aber schon stimmen. Aber: warum müssen Befehle in der rc.local mit "sudo" ausgeführt werden? Ich dachte, rc.local läuft sowieso als root. Oder soll man diese Sequenz in eine eigene Datei schreiben, die von rc.local aufgerufen wird?
    Ich bin aber sehr dankbar für Eure Tipps.

    Hardware:
    Desktop: Intel Core i5, 4x3,2 GHz, ASUS-Mainboard HL 97 plus, Festplatte Hybrid-S-ATA 2TB, 16 GB RAM, DVB-Sky-USB-Stick (DVB-T2), LG-4120B Brenner, VDR 2.4.8 (selbst kompiiiert, Ubuntu 20.04.2),
    Wohnzimmer: ASUS-Mainboard F2A85-V Pro, AMD A10 (?), 1TB-HD, 8 GB Speicher, Technotrend 4100 Budget (DVB-S), Prozessor-Grafik HD7660D, VDR 2.4.1 von XUbuntu 20.04.2).

  • Ich habe es gerade mal an meinem Desktop-PC probiert: ein /dev/lcdln gibt es nicht, auch keinen Service LCDd. Liegt das daran, dass ich Ubuntu und nicht Debian habe? Und mein VDR benutzt nicht lirc (serielle Schnittstelle??), sondern die ir-Schnittstelle auf der SAT-Karte von Technotrend. Die greift nur auf die Events in /dev/input zu (eventX), nicht /dev/lcdln. Auf meinem TV-PC im Wohnzimmer wird es wohl nicht anders sein.

    Hardware:
    Desktop: Intel Core i5, 4x3,2 GHz, ASUS-Mainboard HL 97 plus, Festplatte Hybrid-S-ATA 2TB, 16 GB RAM, DVB-Sky-USB-Stick (DVB-T2), LG-4120B Brenner, VDR 2.4.8 (selbst kompiiiert, Ubuntu 20.04.2),
    Wohnzimmer: ASUS-Mainboard F2A85-V Pro, AMD A10 (?), 1TB-HD, 8 GB Speicher, Technotrend 4100 Budget (DVB-S), Prozessor-Grafik HD7660D, VDR 2.4.1 von XUbuntu 20.04.2).

  • Hallo,
    ich hab's geschafft :] mit Hilfe von https://wiki.ubuntuusers.de/Shell/Bash-Skripting-Guide_für_Anfänger/


    1. Mit der genannten
    /etc/udev/rules.d/70-remote-device.rules


    Code
    SUBSYSTEM!="input", GOTO="remote_event_grp_end"
      ATTRS{name}=="*dvb*|*DVB*|* IR *", ENV{ID_CLASS}="ir" GROUP="vdr" SYMLINK+="input/ir"
      LABEL="remote_event_grp_end"


    ein /dev/input/ir - Device erstellen


    2. Mit dem Plugin softhddevice den VDR nicht automatisch starten (Eintrag in der /etc/rc2.d oder rc3.d (je nach runlevel) von @S20vdr in @K20vdr ändern), sonst gibt es kein Bild und eine Fehlermeldung im syslog, weil der X-Server noch nicht läuft. Sonst den VDR wie gewohnt automatisch starten.??


    3. Deshalb den VDR vom Desktop aus mit folgendem Script starten, geht bei xfce mit dem Eintrag "Einstellungen - ... - Startverhalten ...":



    Das Script z. B. als /usr/sbin/vdr-start abspeichern und mit chmod a+x ausführbar machen.
    Es müssen natürlich die verschiedenen remote.conf.irX mit den passenden event-Einträgen vorhanden sein. Ich habe sie mir erstellt (als das noch ging, jetzt geht es wegen dem Softhddevice nicht mehr), indem ich über Suchen-Ersetzen z. B. "nt5." durch "nt7." ersetzt habe. Die einmal angelernten Codes bleiben dabei erhalten.
    Wenn man kein softhddevice hat, kann man vielleicht das Script (ohne den Start-Befehl) von der /etc/rc.local aufrufen, habe ich noch nicht probiert. Natürlich müssen alle betroffenen Dateien und Verzeichnisse (/etc/vdr, /var/lib/vdr und andere) für den VDR-User zum Schreiben freigegeben sein, standardmäßig bei mir nur für Root .Ich habe mit chmod ug+rw die Rechte geändert und mit chown vdr als Besitzer und Gruppe eingetragen, außerdem den vdr-user mit adduser der Gruppe vdr zugefügt und den user vdr der Gruppe des aktuellen users.
    Viel Glück!


    GBruno

    Hardware:
    Desktop: Intel Core i5, 4x3,2 GHz, ASUS-Mainboard HL 97 plus, Festplatte Hybrid-S-ATA 2TB, 16 GB RAM, DVB-Sky-USB-Stick (DVB-T2), LG-4120B Brenner, VDR 2.4.8 (selbst kompiiiert, Ubuntu 20.04.2),
    Wohnzimmer: ASUS-Mainboard F2A85-V Pro, AMD A10 (?), 1TB-HD, 8 GB Speicher, Technotrend 4100 Budget (DVB-S), Prozessor-Grafik HD7660D, VDR 2.4.1 von XUbuntu 20.04.2).

    4 Mal editiert, zuletzt von GBruno () aus folgendem Grund: Änderungen nach erneutem Testen. Fehler im Befehl "ln -s ..." gefunden. Will es als gelöst markieren, weiß aber nicht, wie?

Jetzt mitmachen!

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