Posts by Gsus

    Also für mich funktioniert das jetzt. Habe da noch ein bisschen weiter gebastelt und ein paar der Keys der Fenbedienung via udev umgemapped (https://yulistic.gitlab.io/201…eymapping-with-udev-hwdb/). Dazu habe ich die Datei /etc/udev/hwdb.d/90-hama-mce.hwdb angelegt:

    Dadurch kann man auch einige Einträge unter /etc/eventlircd/hama-mce.evmap weglassen. Da geht bestimmt auch noch mehr, aber für meine Zwecke DOSBox, ZSNES (higan ist leider irgendwie defekt), Firefox für Streaming Dienste klappt das perfekt.



    Habe hier noch die Scripte angehängt mit denen ich den Wechsel zu einer Applikation bzw. wie beim alten yaVDR 0.6 einfach nur eine Applikation parallel zum VDR starte (ich nutze gern dvbcut oder handbrake während der VDR läuft).


    Im Archiv sind:

    • vdr-start-app@.service (nach /home/vdr/.config/systemd/user)
    • vdr-switch-app@.service(nach /home/vdr/.config/systemd/user)
    • vdr-app (nach /usr/bin)


    Dabei ist vdr-app ein Bash-Script mit folgenden Modi (sorry, mit Python werde ich nicht warm):

    • start
      Started eine Applikation parallel zum vdr
    • switch
      Detached das VDR Frontend, stoppt eventlircd, irexec und wechselt zur Applikation.
      Sobald die Applikation beendet wird (egal welcher Fehlercode) wird eventlircd und irexec wieder gestartet und das VDR Frontend wieder attached.


    Beispiel Aufruf:

    vdr-app switch dosbox -conf .config/game.conf



    Ah fast vergessen, damit das journal nicht ständig mit Meldungen darüber dass der eventlircd gestorben ist und er jetzt alle drei Sekunden versuchen wird sich wieder zu verbinden zugespammt wird empfiehlt es sich das Log Level des VDRs runterzudrehen (siehe RE: [gelöst] [yavdr-ansible] vdr log deaktivieren)



    Damit das funktioniert müssen die Änderungen aus Punkt 1. und 4. von RE: [yavdr-ansible] Fernbedienung in Anwendungen nutzen (Firefox, Higan etc. pp.) übernommen werden.



    Vielleicht hilft es ja jemandem. Ich bin auf jeden Fall mit der Funktionalität zufrieden.

    Also, nachdem ich endlich verstanden habe was sich konkret zwischen yaVDR 0.6 und 0.7 (ansible) geändert habe, habe ich es nun auch hinbekommen das System so umzubauen dass es das tut was ich eigentlich will. In der 0.6er Installation wurde beim Applikationswechseln der eventlircd ausgeschaltet. Das ist auch notwendig, da sonst - wie oben beschrieben - der vdr bei dem Tastendruck auf der Fernbedienung meint er müsste das Frontend wieder attachen. Das will ich aber nicht, ich will ja die Keycodes die die Ferbedienung abfackelt direkt abgreifen.


    Daher habe ich folgendes geändert:


    1. Dem vdr user die Rechte gegeben den eventlircd Dienst zu starten und zu stoppen via /etc/sudoers.d/yavdr-eventlircd

    Code
    vdr ALL=(ALL) NOPASSWD: /bin/systemctl start eventlircd.service
    vdr ALL=(ALL) NOPASSWD: /bin/systemctl stop eventlircd.service


    2. Ein Shellscript vdr-switch-app nach /usr/bin gepackt:


    3. Den vdr user-lokalen Dienst vdr-switch-app@.service in /home/vdr/.config/system/user/ hinzugefügt:


    4. Die xorg-ignore-eventlircd.conf löschen damit die Key-Events der Fernbedienung auch bei X Applikationen ankommt.


    Dann kann ich nun im menuorg.xml hinschreiben:

    Code
    <command name="Net" execute="vdr-switch-app firefox --allow-downgrade -P Netflix" />

    und meine Fernbedienung funktioniert dann im Netflix Firefox Profil so wie früher. Die Hama schickt ja (für mich) "sinnige" Kommandos.



    Kann sein dass ich noch die Fehlerbehandlung überarbeiten muss. Habe noch nicht konkret getestet was im Fehlerfall passiert.

    Was meint ihr? Overkill? Quatsch? Geht das doch irgendwie besser mit frontend-dbus-send?

    Ahoi,

    ich würde gerne das Logging des VDRs ein wenig reduzieren, da ja doch eine Menge Nachrichten im journalctl auflaufen.

    Der Aufruf vdr --help verrät es ja schon wie man das Log Level einstellen kann:

    Code
      -l LEVEL, --log=LEVEL    set log level (default: 3)
                               0 = no logging, 1 = errors only,
                               2 = errors and info, 3 = errors, info and debug
                               if logging should be done to LOG_LOCALn instead of
                               LOG_USER, add '.n' to LEVEL, as in 3.7 (n=0..7)


    Aber wenn ich in /lib/systemd/system/vdr.service ExecStart ändere zu ExecStart=/usr/bin/vdr -l 0 und den Dienst neu starte, so steht im journalctl:


    Code
    Jan 07 09:23:26 satis systemd[1]: Starting Video Disk Recorder...
    Jan 07 09:23:26 satis vdr[2990]: vdr: no primary device found - using first device!
    Jan 07 09:23:26 satis systemd[1]: Started Video Disk Recorder.


    Wenn ich den Parameter wieder lösche klappt das einwandfrei.

    Woran kann das liegen?

    Ich bastel da jetzt gerade an einer Lösung die mittels eines user-lokalen systemd Dienstes den Applikationsswitch vornimmt und dann irxevent vor dem Applikationsstart startet. Dazu habe ich folgenden Dienst irxevent.service:

    Code
    [Unit]
    Description=LIRC X event command handler
    Conflicts=irexec.service
    
    [Service]
    Type=simple
    ExecStart=/usr/bin/irxevent %h/.xlircrc


    Der Dienst vdr-switch-app.service um den Wechsel in die Applikation zu triggern um das Frontend zu deaktivieren hat folgenden Code:

    Code
    [Unit]
    Description=Helper to switch from VDR to application
    Requires=irxevent.service
    
    [Service]
    Type=oneshot
    ExecStartPre=-frontend-dbus-send stop
    ExecStart=vdr-switch-app
    ExecStartPost=-frontend-dbus-send start


    Dabei ist vdr-switch-app ein Script das zwei Modi hat:

    1. vdr-switch-app <commandline>
      Schreibt die auszuführende Kommandozeile in eine temporäre Datei und starten den vdr-switch-app Dienst
    2. vdr-switch-app
      Liest die auszuführende Kommandozeile aus der temporären Datei und führt sie aus


    Was jetzt noch fehlt ist irexec.service nach Beenden des Dienstes wieder zu starten.


    Das ist jedoch nicht mein Hauptproblem.

    Womit ich jetzt noch kämpfe ist, dass das frontend ja eigentlich nur detached ist.

    D.h. jeder Event auf der Fernbedienung führt zu:

    Code
    DEBUG:yaVDRFrontend:we have user activity: attach frontend!


    Im Prinzip will ich hier ja dasselbe was frontend-dbus-send switchto macht, nur dass ich eben eine beliebige Kommandozeile übergeben will ohne dass ich da jetzt noch .desktop Dateien irgendwo hinkippen muss.


    Wie kann ich hier verhindern dass die Fernbedienung das re-attachen des Frontends auslöst?

    Ich habe jetzt mal ein wenig herum experimentiert.

    Händisch mache ich folgendes nach frontend-dbus-send switch-to xterm:

    1. ssh vdr@<host>
    2. killall irexec
    3. export DISPLAY=:0
    4. irxevent .xlircrc

    In der .xlircrc steht folgendes drin:

    Und tatsächlich kommen diese Events dann auch an (z.B. in xev).

    Jetzt würde ich das nur gerne noch automatisieren, d.h. sobald der Wechsel in eine Applikation geschafft wurde, irexec killen und irxevent starten und sobald diese beendet wurde wieder irexec starten und irxevent killen.


    Wie kann ich das am Besten realisieren?


    Edit: Ich vermute mal das müsste ich irgendwie in /usr/lib/pyhton3/dist-packages/yavdr-frontend/yavdrfrontend.py einbauen, oder? Ich verstehe einfach nicht was genau irexec /home/vdr/.lircrc aufruft...

    Mh, ich hab nochmal geschaut wie das bei dem yaVDR 0.6 gelöst war.

    Dort habe ich für den Higan (Emulator) das über folgendes init script gelöst das von dem menuorg-appswitcher aufgerufen wurde:

    Dadurch war die Fernbedienung exklusiv für den aufgerufenen Prozess und hat nicht noch Befehle im Hintergrund an den VDR geschickt.


    Hier würde ich gerne über das frontend-dbus-send switch-to das so ähnlich realisieren. Kann ich da denn den irexec stoppen und den irxexec starten und umgekehrt?

    Ahoi,

    ich habe vor kurzem meinen acht Jahre alten yaVDR von 0.6 auf 0.7 (ansible, focal) geupgraded und bin dank eurer Hilfe auch eigentlich schon relativ weit gekommen.

    Es gibt nur eine Sache die ich nicht verstehen will, da stehe ich echt auf dem Schlauch.


    Wie in dem "alten" yaVDR würde ich z.B. gerne KEY_CLOSE auf meiner hama Fernbedienung (00052451, siehe Anhang) nutzen um Anwendungen wie z.B. Firefox zu schließen.

    Das klappt irgendwie (noch) nicht...


    Mit irw sehe ich zumindest mal das was ankommt:

    Code
    vdr@satis:~$ irw
    ce 0 KEY_CLOSE devinput


    Bei xev scheint jedoch nichts anzukommen außer die Maus-Emulation und die linke Maustaste auf der Fernbedienung.


    Wie schaffe ich es dass die Knöpfe bei xev (und somit bei anderen Anwendungen) ankommen.

    Ich weiß einfach nicht mehr wie ich da "echte" Keyboard Events genieren kann...


    Was übersehe ich hier?

    In yavdr-ansible mit WinTV-NOVA -HD-S2 gab es da mal einen Ansatz. Leider hat der TE die funktionierende Lösung nicht zusammengefasst..

    Klasse, das funktioniert! Vielen lieben Dank!


    Die Lösung hierzu ist /etc/systemd/system/multi-user.target.wants/wait-for-dvb@0.service ändern zu:


    Code
    [Service]
    Type=oneshot
    ExecStartPre=/usr/bin/logger -t wait-for-dvb got device %i
    ExecStart=-/usr/bin/szap -x -n 002 -c /etc/vdr/channels.conf


    Danke nochmal!


    Jetzt muss ich nur noch lernen wie ich in dem neuen VDR eigene Menu-Einträge erstelle und in andere Applikationen switchen kann (DosBox, Firefox) und alles ist neu und hat die alten Features :).


    Das ist jetzt außerhalb dieses Threads: Gibts da Anleitungen dazu? Kann man sich das von dem "Kodi Switcher" abgucken?

    Hier das Syslog ab dem Booten (log.reboot.txt) und zusätzlich noch nach Restart des VDR Dienstes (log.restart.txt).

    Hier scheint die Firmware während des Starts des VDR Dienstes geladen zu werden:


    Das sieht mir auf den ersten Blick nicht so ganz schlecht aus... Mh.

    Hallo Leute,


    ich nutze yaVDR schon ganz lange und habe seit über 8 Jahren ein yaVDR 0.6er System am Laufen. Aber leider leider wird es langsam Zeit mal upzugraden weil DRM + firefox + Streaming Dienste nicht mehr auf dem "alten" yaVDR miteinander harmonieren wollen.


    Daher habe ich nun auf einer neuen SSD das yaVDR ansible nach https://www.yavdr.org/document…aVDR07_documentation.html aufgesetzt. Das klappte auch alles soweit ganz gut (auch wenn ich mit dem ansible Zeugs noch nicht so recht durchsteigen will *g*) nur passiert hier eine Besonderheit. Nachdem ich die channels.conf vom alten yaVDR übetragen habe zeigt das System nach dem Reboot nur einen schwarzen Bildschirm (das Thema gab es hier ja schon öfters). Das OSD funktioniert aber und ich kann zwischen den Kanälen "umschalten" - es wird nur eben kein Bild gezeigt.


    Wenn ich den VDR über das OSD Menu (System -> Befehle -> VDR neu starten) manuell neu starte klappt das auf einmal mit dem Fernsehbild. Ich verstehe absolut nicht warum und werde aus den journal log des VDR users nicht schlau.


    Angehängt die Ausgaben von sudo journalctl -u vdr nach dem Reboot des Systems (vdr.log.reboot.txt) und nach dem manuellen Restart des vdr Dienstes (vdr.log.restart.txt).


    Ich habe auch wie in https://www.yavdr.org/document….html#vdr-common-problems beschrieben den vdr Dienst auf die DVB S2 Karten via sudo systemctl enable wait-for-dvb@0.service warten lassen, das führte aber leider nicht zum Erfolg.


    Was übersehe ich hier?


    Das Ausgabeplugin habe ich temporär auf vdr-plugin-softhddevice-openglosd-ffmpeg-2.8 umgestellt um dem yaVDR 0.6er System "näher zu kommen". Das scheint auch nix damit zu tun zu haben (daher auch die ERROR: unknown config parameter Meldungen in den Logs).


    Bin da jetzt echt ratlos.


    Vielen Dank im Voraus für eure Hilfe!