[rpihddevice] Tastatur und X-Server

  • Hallo,


    ich bin nun auch Besitzer eines RPI 3B. Ich habe mir jetzt Raspbian mit X-Server und icewm installiert. Wenn ich nun vdr mit rpihddevice starte funktioniert die Tastatur nicht. Ich habe meine Standard remote.conf mit KBD. und XKeySym. Einträgen. Allerdings funktionieren diese nicht. Wenn ich ein Terminal aufhabe sehe ich nachdem ich vdr gestoppt habe auch das die Tastatureingaben in diesem Fenster gelandet sind. Wenn ich das richtig verstanden habe legt sich das rpihddevice auch nur über alles andere.

    Wie bekomme ich nun die Tastatur zum laufen?


    Grüße

    Martin

  • Das rpihddevice funktioniert unabhängig vom X-Server. Der VDR kann in dem Fall die Tastendrücke von stdin lesen (man könnte ihm mit Systemd z.B. Zugriff auf ein TTY geben, damit er die Tastatureingaben sehen kann).

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Guten Morgen,

    ja sowas dachte ich mir schon. Und ja ich starte VDR mittels kleinem selbstgeschriebenen systemd service file.

    Hat jemand noch einen Tipp wie ich das mit service file und stdin anstellen kann. Leider ist die readme zum rpihddevice sehr dürftig zu diesem Thema. Und habe auf die schnelle nichts gefunden.


    Grüße

    Martin

  • Leider ist die readme zum rpihddevice sehr dürftig zu diesem Thema.

    Das hat ja auch nichts mit der Weiterleitung der Tastendrücke zu tun.

    Hat jemand noch einen Tipp wie ich das mit service file und stdin anstellen kann.

    Für Details kannst du einen Blick in die Dokumentation zu Systemd werfen: https://www.freedesktop.org/so….exec.html#StandardInput= ff.

    Auf meinem Raspberry Pi 2 ist das dann z.B. so ein Drop-In für die vdr.service:

    Code
    1. [Unit]
    2. Conflicts=getty@tty7.service
    3. [Service]
    4. StandardInput=tty-force
    5. StandardOutput=syslog
    6. TTYPath=/dev/tty7
    7. TTYReset=no
    8. TTYVHangup=yes
    9. ExecStartPre=/usr/bin/chvt 7

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Danke seahawk für das Beispiel. Leider funktioniert dieses bei mir noch nicht.

    Ich habe mir auch die Doku zu systemd und die Parameter durchgelesen.

    Auf tty1 ist ja mein X-Server, dies sehe ich auch mit

    Code
    1. ps fax

    Wenn ich aber vdr mittels systemd starte steht bei ps fax nur ein "?". Ich weiß aber nicht ob das normal ist.

    Und mit chvt 7 wechsel ich ja zum tty7. Also müssten doch alle Eingaben von der lokalen Tastatur auf tty7 landen oder nicht?


    Wäre schön wenn mir hier jemand noch helfen könnte :)


    Grüße

    Martin

  • Hast du ps mit root-Rechten aufgerufen, damit es die Info anzeigen kann? Auf meinem Raspberry Pi sieht das unter Arch Linux ARM so aus:

    Code
    1. $ sudo ps ww $(pidof vdr)
    2. PID TTY STAT TIME COMMAND
    3. 376 tty7 Ssl+ 0:02 /usr/bin/vdr

    Der VDR braucht in der remote.conf dann keine XKeySym.* Einträge, sondern welche mit KBD.* - ggf. mal die remote.conf leeren und die Tastatur neu anlernen.

    Außerdem darf der VDR natürlich nicht mit der Option --no-kbd gestartet worden sein - das kannst du mit vdr --showargs prüfen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

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

  • Ja ich führe ps natürlich als root aus. Und dies ist meine Ausgabe:

    Code
    1. [19:08:12][root@vdr:~]$ ps ww $(pidof vdr)
    2. PID TTY STAT TIME COMMAND
    3. 767 ? Rsl 0:01 /usr/local/bin/vdr

    Aber dies ist ja schonmal ein Anhaltspunkt, das hier tty7 stehen muss und nicht ?


    Danke!

  • Was sagt denn Systemd zur vdr.service? systemctl cat vdr.service

    Hast du nach der Änderung an der Unit systemctl daemon-reload ausgeführt?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ok ich habe den Fehler wohl gefunden.

    Ich hatte im service-File den Type auf forking und vdr mit -d gestartet. Ich habe nun vdr ohne -d und service-Type auf simple gesetzt und nun läufts. Danke für die Hilfe!!!

    Hatte vdr nicht irgendwann mal dieses sd_notify implementiert und service-Type notify müsste funktionieren? Dies ging bei mir aber nicht.


    Beim umschalten sehe ich im Hintergrund nun den Curser von tty7, verräts du mir noch wie du den weg bekommen hast :)


    Grüße

    Martin

  • Hatte vdr nicht irgendwann mal dieses sd_notify implementiert und service-Type notify müsste funktionieren? Dies ging bei mir aber nicht.

    Das musst du extra einschalten - also den VDR mit SDNOTIFY = 1 in der Make.config bauen und dann noch in der Unit Type=notify setzen.


    Beim umschalten sehe ich im Hintergrund nun den Curser von tty7, verräts du mir noch wie du den weg bekommen hast

    Probiers mal über setterm:

    ExecStartPre=-/bin/bash -c '/usr/bin/setterm --blink off --clear all --cursor off > /dev/tty7'

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)