[gelöst] PS3 Remote und /dev/input

  • Hi,


    ich habe meinen VDR mit der PS3 erfolgreich verbunden.


    Nun habe ich ein Problem. In der Konfig für vdr-remote habe ich das input Device /dev/input/event6 für die Remote eingetragen. Aber dieses Device erscheint erst, wenn ich eine Taste drücke. Das ist ein wenig blöd, wenn die Kiste hochfährt und ich schlafe :)


    Ohne das Device schlägt der VDR Alarm und verabschiedet sich wieder, fährt hoch, Alarm, ....


    Wie kann man der Kiste mitteilen, dass das Device zwar verwendet werden soll, wenn es da ist, aber das Fehlen eben kein Grund zur Sorge ist?


    Ich verwende kein Lirc und wenn die Remote da ist, funktioniert alles wunderbar.


    Bis dann


    Anton

  • Nachtrag:


    Auch ein mknod /dev/input/event6 im Vorfeld des Starts vom VDR hilft nicht. Da findet wohl eine Prüfung auf etwas statt, von dem ich nicht weiß, was aber nicht auf das Device Node beschränkt ist.


    Bis dann


    Anton

  • Für Geräte, die nicht immer verfügbar sind, gibt es das inputdev-Plugin (http://projects.vdr-developer.…plugin-inputdev.git/tree/ - wobei ich nicht ausprobiert habe, ob der Bug im aktuellen Git-Stand schon behoben ist: http://projects.vdr-developer.org/issues/1327).
    Ansonsten muss man sich etwas basteln, das ein uinput-Gerät anlegt und das andere dann über udev nachträglich an sich bindet und die Tastenevents weiterreicht - im Prinzip wie https://github.com/seahawk1986…mon/blob/master/ps3remote nur mit pyudev um die PS3 Remote im laufenden Betrieb zu erkennen und dann dynamisch einzubinden, statt mit einem festgelegten Pfad zu starten.


    Oder man nimmt eventlircd, das kann auch Geräte nachträglich einbinden.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    3 Mal editiert, zuletzt von seahawk1986 ()

  • im Prinzip wie https://github.com/seahawk1986/PS3-remot…aster/ps3remote nur mit pyudev um die PS3 Remote im laufenden Betrieb zu erkennen und dann dynamisch einzubinden, statt mit einem festgelegten Pfad zu starten.


    Mal ein Ansatz in Python (läuft hier mit Python 2.7, python-gobject, python-uinput >= 0.8, python-pyudev 0.1.16 - beide für Ubuntu in https://launchpad.net/~yavdr/+archive/main für zu finden, ansonsten über pip oder die Paketquellen des Systems installieren).
    udev-Regel, damit das virtuelle Gerät immer unter dem gleichen Pfad (/dev/input/ps3) erreichbar ist:

    Code
    ACTION=="add",SUBSYSTEM=="input",ATTRS{name}=="ps3-uinput",SYMLINK+="input/ps3",MODE:="660",GROUP="vdr"


    Aufruf für das Plugin:

    Code
    -P "remote -i /dev/input/ps3"


    Und ein Python-Skript, das vor dem VDR mit root-Rechten gestartet werden muss (für 32-Bit Systeme bitte die entsprechenden Zeilen einkommentieren):

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Einmal editiert, zuletzt von seahawk1986 ()

  • Hi,


    das Plugin inputdev scheint sehr vielversprechend, allerdings verstehe ich es noch nicht.


    Wenn ich das installiere und die beiliegende rule - Datei verwende, werden wieder nur die Devices angelegt, für die es auch aktuell Geräte gibt (logisch eigentlich).
    Was ich nicht verstanden habe ist, wie bringe ich ihm bei, dass er auch ein Device für noch nicht verbundene Geräte anlegt, oder aber, falls das gar nicht sein Zweck ist, welches Device verwende ich als FB.


    Der Bug aus dem GIT ist behoben, es lässt sich problemlos mit dem aktuellen VDR compilieren.


    Aber hinsichtlich der Konfiguration stehe ich vollkommen auf dem Schlauch.


    Bis dann und schon jetzt vielen Dank für deine Tipps


    Anton


    @deinen Eintrag von 13:19
    Den hatte ich zum Zeitpunkt meines Eintrages noch nicht gesehen, den habe ich nämlich vor dem Mittag geschrieben und nach Mittag versandt, also schonmal sorry für die Verwirrung. Ich lese nun deinen zweiten Eintrag :)

  • Was ich nicht verstanden habe ist, wie bringe ich ihm bei, dass er auch ein Device für noch nicht verbundene Geräte anlegt, oder aber, falls das gar nicht sein Zweck ist, welches Device verwende ich als FB.


    Das Plugin bindet alle Eingabegeräte über udev-Regeln an sich (die Tastenbelegung muss man über keymaps festlegen: http://projects.vdr-developer.…v.git/tree/README.txt#n47)


    Mein Ansatz zerstört den Anlernmechanismus des VDR bzw. des Remote-Plugins nicht, er leitet nur die Tastendrücke auf ein virtuelles Gerät, das man bereits vor dem Start des VDR anlegen lassen kann weiter...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Dein Script funktioniert wunderbar (glaube ich) allerdings bleibt er bei manuellen Aufruf bei der folgenden Meldung stehen und wartet:


    Code
    ./ps3_startup.py
    started udev monitoring of input devices


    Ich kann das natürlich in den Hintergrund schicken, es stört mich also nicht, ich wollte nur nachfragen, ob das so gewünscht bzw. gewollt ist? Ich nehme an, das mit der tatsächlichen Anmeldung der PS3-Remote diese Meldung verschwindet, kann dies aber derzeit nicht ausprobieren, da ich nicht zu hause bin.


    Der VDR startet aber problemlos mit dem neuen Device /dev/input/ps3 und auch das Plugin remote meldet, dass es die Keys kennt (nach Umbenennung der Einträge in der remote.conf)


    Daher meinen herzlichsten Dank für diese schicke Lösung.


    Wenn dann heute Abend dann auch noch die Remote geht, bin ich quasi wunschlos glücklich :)


    Bis dann


    Anton

  • Ich kann das natürlich in den Hintergrund schicken, es stört mich also nicht, ich wollte nur nachfragen, ob das so gewünscht bzw. gewollt ist?


    Die Meldung kannst du noch loswerden, wenn du die Zeile 53 des Skripts auskommentierst. Es ist ein nacktes Python-Skript, das nicht als Daemon in den Hintergrund forkt - aber es sollte sich mit den gängigen Start-Mechanismen (sysvinit, Upstart, systemd oder auch in einer runvdr, wenn man es in den Hintergrund schickt) vor dem Start des VDR als Dienst starten lassen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • So, abschließend zu diesem Thema:


    Es läuft nun produktiv und funktioniert zuverlässig.


    Unter diesen Bedingungen ist die PS3 Remote die beste Fernbedienung, die ich bisher am VDR hatte. Ich bin begeistert.


    Vielen Dank an Seahawk für die kompetente Unterstützung.



    Bis dann


    Anton

  • [quote='seahawk1986','index.php?page=Thread&postID=1143918#post1143918']im Prinzip wie https://github.com/seahawk1986/PS3-remot…aster/ps3remote nur mit pyudev um die PS3 Remote im laufenden Betrieb zu erkennen und dann dynamisch einzubinden, statt mit einem festgelegten Pfad zu starten.


    Hi,


    vielen Dank für das python-script. Damit habe ich die PS3 Remote auch unter XBMC auf meinem Raspberry am laufen, ohne das ich diese nach jedem Start neu erkennen lassen muss :tup


    MfG


    Quacks

    "Backups are for whimps. Real men upload their stuff on the Internet
    and let the world mirror it".


    --Linus Torvalds

Jetzt mitmachen!

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