[ansible] .. Grundsätzliches, X-Server, Lirc, etc

  • Die grundlegende Idee ist irexec mit einer für den jeweiligen Dienst angepassten Keymap zu starten.


    Sprich wenn die netflix.service gestartet wird, wünscht sie sich über den Wants=irnetflix.service Anweisung einen laufenden Dienst irnetflix.service, der seinerseits irexec mit der Keymap /var/lib/vdr/.lircrc.netflix startet.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich blicke da mit den lirc-Dingen leider nicht so durch. Einfach Horchi's "netflix" Dateien in "amazon" umzubennen, bringt natürlich nichts - die haben ja auch entsprechende Inhalte. Ich versuche, den Inhalt mal heute abend anzupassen. Wie diese Dateien (.lircrc.netflix, irnetflix.service - oder entsprechend dann auf "amazon" abgeändert) genau zusammenspielen, entgeht meinem Verständnis.


    Ich denke, wenn ich in "amazon.service"


    Wants=iramazon.service

    Before=iramazon.service


    "entkommentiere", wird die unit (?) iramazon.service mittels amazon.service gestartet. iramazon.service "BindsTo=amazon.service" und nutzt dann

    %h/.lircrc.amazon (also .lircrc.netflix umbenannt in amazon), in dem die Tasten definiert sind. Das müßte doch funktionieren?


    Bitte nicht schlagen, wenn hier Kraut und Rüben durch mich verwürfelt werden .. :monster1


    Eigentlich will ich ja den Browser nicht mit der FB bedienen, sondern einfach nur Firefox beenden können und zurück zum vdr gelangen. Bonus wäre natürlich, wenn man den Stream pausieren und fortsetzen könnte .. mehr aber auch nicht. Firefox wird ja in der amazon.service unit mit ExecStart=/usr/bin/firefox -no-remote --new-window gestartet, also "no remote" - kann natürlich wieder etwas anderes bedeuten ...


    Grusz!

  • --no-remote dient dazu, dass der Firefox immer eine neue Instanz startet, die nicht von anderen gestört werden kann (vgl. Ausgabe von firefox -h). Das ist wichtig, weil der Firefox normalerweise versucht ggf. schon laufende Instanzen wiederzuverwenden, was verhindert, dass man ihn sinnvoll mit einer Systemd-Unit sinnvoll kontrollieren kann.


    Ich muss mal schauen, ob man das nicht auch mit einer einzelnen Systemd-Unit und einem wiederverwenbaren Shell-Skript erledigen kann - das sollte ja eigentlich genügen, wenn systemd beim Stoppen alle Prozesse aus der control-group abräumt...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • .. nochmal


    Ich hab nun die relevanten Dateien angepasst - also ".lircrc.amazon in /var/lib/vdr, amazon.service & iramazon.service dann unter .config/systemd/user/".


    Es brauchte auch noch das Paket lirc-x wg. fehlendem binary /usr/bin/irxevent (gab im syslog ".. not found .." aus). Trotzdem keine Änderung bzgl. RC im "amazone-prime-Betrieb". Es gibt nur einen Eintrag im syslog, wenn man die RC mit "OK" drückt: -- Dec 17 18:35:29 vdr irexec[975]: KEY_OK --

    Alle anderen Tasten geben nichts ..


    Da gibt es auch noch unter /var/lib/vdr "lircrc.sh" .. das brauch ich hier nicht, stimmt's?


    Ein Befehl per RC in der Art "ALT-F4" an das Browserfenster wäre es ..


    Grusz!

  • Super, die Fernbedienung funktioniert nun auch nach dem Reboot - Danke für die Hinweise! :thumbup: (ich hätte den Eintrag für serial_ir wieder irgendwo hingeschrieben und nicht als 1. Zeile nach den ganzen Kommentaren).


    [..]

    .. hab nun auf dem "Testsystem" mal auf focal hochgezogen. Funktioniert gut (.. bis auf manchmal Bildfehler/Artefakte, die am alten System nich auftreten) aber leider geht die FB nur wenn:


    Code
    1. sudo systemctl stop eventlircd.{socket,service}


    und


    Code
    1. sudo ir-keytable -s rc0 -c -w /etc/rc_keymaps/harmony-one


    ausgeführt wird (nach reboot ist natürlich alles weg. Die "harmony-one" ist von meinem alten System (yavdr-0.6 bzw. von bionic vorher)). Es funktionieren auch nicht mehr alle Tasten - Menu, OK, 'Pfeiltasten' gehen, Zahlen/Nummern zB nicht .. hmm.


    Grusz!

  • Wie sieht denn deine /etc/rc_maps.cfg jetzt aus?


    Mich wundert, dass der X-Server die Events überhaupt akzeptiert - eigentlich sollte der vom Playbook angelegte Konfigurationsschnipsel in /etc/X11/xorg.conf.d/40-ignore-eventlircd.conf dafür sorgen, dass der X-Server alle Geräte ignoriert, die das udev-Attribut ENV{ID_INPUT.tags}="eventlircd" tragen, was alle rc-core Empfänger über die /lib/udev/rules.d/98-eventlircd.rules bekommen sollten.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Code
    1. serial_ir rc-rc6-mce /etc/rc_keymaps/harmony-one

    ist der erste Eintag in /etc/rc_maps.cfg - den Rest unterhalb muss man doch nicht auskommentieren.


    Danke für's feedback - da muss ich aber doch noch tiefer graben :)


  • ist der erste Eintag in /etc/rc_maps.cfg - den Rest unterhalb muss man doch nicht auskommentieren.

    Nein, eigentlich sollte er den ersten passenden Eintrag aus der Datei nehmen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • da muss ich aber doch noch tiefer graben

    Schau mal, welche Udev-Attribute das Kernel Input Device für den seriellen Empfänger hat -also z.B. mit cat /proc/bus/input/devices den Gerätenamen in /dev/input ermitteln und dann mit udevadm info --query=all --name /dev/input/eventX schauen, ob das Device die nötigen Attribute hat.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Schau mal, welche Udev-Attribute das Kernel Input Device für den seriellen Empfänger hat -also z.B. mit cat /proc/bus/input/devices den Gerätenamen in /dev/input ermitteln und dann mit udevadm info --query=all --name /dev/input/eventX schauen, ob das Device die nötigen Attribute hat.

    Folgendes gibt < udevadm info --query=all --name /dev/input/event10 > aus:



    Hmm ..


    in /proc/bus/input/devices steht:



    --> sudo systemctl stop eventlircd.{socket,service}


    lt. journalctl


    --> sudo ir-keytable -s rc0 -c -w /etc/rc_keymaps/harmony-one

    Log:

    Quote

    Sep 29 19:43:52 vdr sudo[4440]: ciax : TTY=pts/2 ; PWD=/home/ciax ; USER=root ; COMMAND=/usr/bin/ir-keytable -s rc0 -c -w /etc/rc_keymaps/harmony-one

    Sep 29 19:43:52 vdr sudo[4440]: pam_unix(sudo:session): session opened for user root by ciax(uid=0)

    Sep 29 19:43:53 vdr sudo[4440]: pam_unix(sudo:session): session closed for user root




    --> Key OK



    --> remote.conf sieht so aus:



    Die Tasten anlernen, würde vllt. helfen? .. und das ganze dauerhaft ? :o|


    Grusz!

  • PS: .. und das kommt auch ins Log, wenn ich auf Taste/Key "Menu" (die funktioniert!) drücke:


    :tup

  • /usr/lib/vdr/plugins/skindesigner/scripts/vdrstats scheint irgendein Script sein, das mit skindesigner die Last durch den User "vdr" anzeigt oder wasimmer

    auch noch reingeschrieben werden kann. Vermutlich fehlen dem Script die Ausführungsrechte, und "specified sensors" wurden wohl auch mal in dem Script konfiguriert ...

    --
    vdr User #2022 - hdvdr2: Lenovo SFF M83, Intel(R) Core(TM) i5-4670S, 12 GB Ram, ubuntu-focal, softhddevice-cuvid
    ddbridge-6.5 mit 2xDVB-S2 und (Flex) 2xDVB-C/T Tunern, nvidia-GF720 SFF passiv (nvidia-450.80, --no-unified-memory), System SSD btrfs,

    snapper, 8TB HDD XFS/cow /srv/vdr, yavdr-ansible-2.4.3-patches, vdr-epg-daemon mit Frodo-plugins, Kernel 5.9.2-lowlatency-xfs_scrub

    vdradmin-am, live+webstreaming, vdrmanager (Smartphone als FB), ffmpeg-4.3.1-libfdk_aac, vdr-plugin-hbbtv. Folding@home läuft auf CPU.

  • Ok, also werden die udev-Attribute wie erwartet gesetzt.


    Was sagt denn apt policy ir-keytable und was liefern

    Code
    1. sudo ir-keytable
    2. sudo ir-keytable -r
    3. ps aux | grep lirc
    4. sudo lsof /run/lirc/lircd

    nach einem Neustart?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Moin, Danke für die Gedanken!


    apt policy ir-keytable



    sudo ir-keytable



    sudo ir-keytable -r



    ps aux | grep lirc

    Quote

    root 699 0.0 0.0 3016 2288 ? Ss 10:36 0:00 /usr/sbin/eventlircd -f --socket=/var/run/lirc/lircd

    nobody 704 0.0 0.0 2824 2296 ? Ss 10:36 0:00 /usr/sbin/inputlircd -f /dev/input/event*

    root 705 0.0 0.0 6116 1880 ? Ss 10:36 0:00 /usr/bin/irexec /etc/lirc/irexec.lircrc

    vdr 1274 0.0 0.0 6116 1880 ? Ss 10:36 0:00 /usr/bin/irexec /var/lib/vdr/.lircrc


    sudo lsof /run/lirc/lircd


    Direkt nach einem Reboot - also so, daß die FB gar nicht funktioniert (ohne die 2 Kommandos von mir weiter oben).


    Grusz!

  • Warum hast du denn inputlirc installiert? Das kloppt sich doch nur mit eventlircd um den Sockel und ignoriert Tastendrücke mit einem Event-Code von > 255...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

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

  • Warum hast du denn inputlirc installiert?

    :versteck


    .. Asche auf mein Haupt! Ich weiß nicht, wie das Paket auf's System kam (vllt hab ich sinnlos etwas unwissend ausprobiert - kann mich aber daran nicht erinnern). Ich machte von bionic auf die erste point-release von focal ein upgrade. So wie's in ein paar Posts beschrieben war. :whatever


    Nunja - Paket deinstalliert, rebootet und jetzt geht die FB! :tup :]


    Vielen Dank!! :arme


    PS: .. hoffentlich darf ich - mit solchen Fehlern - trotzdem noch in diesem Fred weiter "fragen" :monster2

  • PS: .. hoffentlich darf ich - mit solchen Fehlern - trotzdem noch in diesem Fred weiter "fragen"

    Klar, du bist auch nicht der erste, der reflexhaft inputlirc installiert hat.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • [..]Funktioniert gut (.. bis auf manchmal Bildfehler/Artefakte, die am alten System nich auftreten)

    .. installiert ist hier als Ausgabe-plugin

    Code
    1. ii vdr-plugin-softhddevice 1.0.5+git20200915-1-e9d4771-0yavdr0~focal amd64

    , GPU ist nvidia 1030/pascal.


    Die Bildfehler sind nun anscheinend (seit 30 min) nicht mehr aufgetreten - weg! :O)


    Es lag nur an den falschen softhd Plugin-Einstellungen (via OSD dann angepasst) - statt "Deinterlace" => Bob, auf => TemporalSpacial.


    Grusz!