[softhddevice] VDR hängt nach jeder OSD-Anzeige

  • Passiert das auch mit z.B. xineliboutput oder dem neuen vaapivideo?
    Nur um sicher zu gehen, dass es wirklich an softhddevice liegt.
    Du hattest ja schon mal einen falschen Verdacht.

  • Hihi, ich schlage mich schon seit gestern mit Gemini rum ;)
    Leider trifft nix von dem zu, was er da oben gesagt hat - und auch die gefühlt tausend anderen Tips haben keine Besserung ergeben bisher - auch wenn ich spannende neue Kernelparameter kennenlernen durfte: i915.enable_guc=2 i915.enable_psr=0 i915.enable_dc=0 intel_idle.max_cstat=1 pcie_aspm=off
    Auch Umstellen auf Intel statt modesetting Driver für X11 hat nix gebracht, ebensowenig diverse Optionen in der xorg.conf für Intel oder modesetting.
    Gestern schien es mit dem Intel Driver und den o.a. Kernelsettings mal besser geworden zu sein, aber das war auch nur temporär.
    Auch der llvmpipe Entry will nicht verschwinden.

    Dazu behaupt Gemini, dass die intel_gpu_top Anzeige viel zu hohe Werte zeigen würde für das, was da ablaufen würde - aber das kann ich nun garnicht beurteilen.

    Danke dir in jedem Fall trotzdem für die Hinweise!

    Hi nobanzai,

    das hört sich nach meiner Leidensgeschichte an (also das mit dem Renderer llvmpipe; nicht unbedingt die Auswirkungen, die sahen bei mir anders aus)... es waren ungünstige Kombinationen der Versionen von Treibern und Bibliotheken:
    [softhddevice] kein video output seit dist-upgrade - error: video/egl: eglCreateImageKHR failed
    Mittlerweile habe ich auf kUbuntu 2510 aktualisiert, was ohne Eingriffe sofort korrekt funktionierte.

    Viele Grüße,
    Chriss

    Signatur

    Stand: 23 Sep. 2025

    Server: VDR 2.7.4, Kubuntu 24.04.03, 6.14.0-29-generic Kernel

    HW: Intel i5-6500, 16GB RAM, DD Cine S2 V6.5, MSI Z170-A Pro, SeaSonic S12II 330W, Samsung 860 QVO 1TB + WD 1,5TB Caviar Green, iMon-LCD, Plugins: softhddevice, epg2vdr, lcdproc, markad, skindesigner, statusleds, streamdev-server, svdrpservice, vnsiserver
    Dienste: Samba, DNS, Mail, LAMP, VDR-Server für
    Client: RPi 3b+, VDR 2.4.0, OSMC

  • VDR-Aufruf (alles aktuellste Versionen auf den jeweiligen git Repos):
    Code /usr/sbin/vdr -u vdr -c /etc/vdr -E /home/vdr/epg.data -L /usr/lib/vdr -r /etc/vdr/scripts/vdr.exec -t /dev/tty8 -v /var/spool/video/video0 -g /home/vdr/tmp/grabdir -w 0 --lirc=/run/lirc/lircd --dirnames=,,1 --shutdown=/etc/vdr/scripts/vdrshutdown -D0 -Pcontrol --port=4444 -Psofthddevice -v va-api-egl -d :0.0 -g 1920x1080+0+0 -a pipewire -p pipewire -l 3 -N -Pchannellists -Pdvbhddevice -Pepgsync -Psvdrpservice -Piptv -Pwebsocket --logodir=/etc/vdr/logos --port=44444 -Posdteletext --directory=/home/vdr/teletext -Pskinnopacity --logopath=/etc/vdr/logos --epgimages=/var/spool/video/epgimages --iconpath=/etc/vdr/plugins/skinnopacity/nopacity_iconpack/nopacity/ -Ptvscraper --dir /var/spool/video/tvscraper --readOnlyClient

    Ich würde mal testweise nicht unbedingt nötige Komponenten deaktivieren.

    Und kann man softhddevice und dvbhddevice gleichzeitig benutzen?

    mein VDR
    • Software: yaVDR0.7-Ansible Ubuntu 24.04 (noble) mit vdr-2.8.1
    • DVB-T2: Hauppauge WinTV-dualHD
    • Fernseher: LG OLED42C48LA
  • Ich würde mal testweise nicht unbedingt nötige Komponenten deaktivieren.

    Und kann man softhddevice und dvbhddevice gleichzeitig benutzen?

    Kann man.

    Aber ich habe auch schon Tests mit nur softhdddevice ohne weitere Plugins gemacht - ohne Verbesserung.

    VDR zwei drei
    • VDR 01 (Server): VDR 2.8.1 - 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): VDR 2.8.1 - 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - iptv - osdteletext - skinnopacity - softhddevice - svdrpservice - tvscraper]
  • Passiert das auch mit z.B. xineliboutput oder dem neuen vaapivideo?
    Nur um sicher zu gehen, dass es wirklich an softhddevice liegt.
    Du hattest ja schon mal einen falschen Verdacht.

    xineliboutput habe ich nicht mehr, aber mit vaapivideo passiert es nicht.

    VDR zwei drei
    • VDR 01 (Server): VDR 2.8.1 - 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): VDR 2.8.1 - 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - iptv - osdteletext - skinnopacity - softhddevice - svdrpservice - tvscraper]
  • Achso ja, und mit -v cpu-egl klappt auch mit softhddevice alles - es könnte also am Zusammenspiel von softhddevice und vaapi liegen.

    VDR zwei drei
    • VDR 01 (Server): VDR 2.8.1 - 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): VDR 2.8.1 - 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - iptv - osdteletext - skinnopacity - softhddevice - svdrpservice - tvscraper]
  • Da es länger hängt, könnte man es evtl. schaffen in der Zeit einen Coredump zu schreiben.

    Wenn man raus bekommt, wo es genau hängt, käme man vielleicht weiter.

    Gruss
    SHF

    Mein (neuer) VDR:

    Software:
    Debian Wheezy mit Kernel 3.14
    VDR 2.0.7 & div. Plugins aus YaVDR-Paketen
    noad 0.8.6

    Hardware:
    MSI C847MS-E33, onboard 2x1,1GHz Sandybridge Celeron 847, 4GiB RAM
    32GB SSD (System), 4TB 3,5" WD-Red HDD (Video)
    TT FF DVB-S 1.5 FullTS-Mod PWM-Vreg-Mod, DVB-Sky 852 Dual DVB-S2
    Das ganze im alten HP Vectra VLi8-Gehäuse versorgt von:
    PicoPSU-160-XT und Meanwell EPP-150 im ATX-NT-Gehäuse

  • Da es länger hängt, könnte man es evtl. schaffen in der Zeit einen Coredump zu schreiben.

    Wenn man raus bekommt, wo es genau hängt, käme man vielleicht weiter.

    Du meinst den laufenden VDR zum dumpen bringen?

    VDR zwei drei
    • VDR 01 (Server): VDR 2.8.1 - 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): VDR 2.8.1 - 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - iptv - osdteletext - skinnopacity - softhddevice - svdrpservice - tvscraper]
  • Das geht bei laufendem Prozess irgendwie mit GDB, wenn ich das noch recht erinnere.

    Alternativ kann man dem Programm einfach SIGABORT senden, das sollte das Programm hart beenden (KILL!) und einen Coredump schreiben.
    Probiert habe ich das aber am VDR noch nicht.
    Aber das bitte nur auf einem Testsystem machen, da können gerade geöffnete Dateien kaputt gehen!

    Gruss
    SHF

    Mein (neuer) VDR:

    Software:
    Debian Wheezy mit Kernel 3.14
    VDR 2.0.7 & div. Plugins aus YaVDR-Paketen
    noad 0.8.6

    Hardware:
    MSI C847MS-E33, onboard 2x1,1GHz Sandybridge Celeron 847, 4GiB RAM
    32GB SSD (System), 4TB 3,5" WD-Red HDD (Video)
    TT FF DVB-S 1.5 FullTS-Mod PWM-Vreg-Mod, DVB-Sky 852 Dual DVB-S2
    Das ganze im alten HP Vectra VLi8-Gehäuse versorgt von:
    PicoPSU-160-XT und Meanwell EPP-150 im ATX-NT-Gehäuse

  • Du kannst deinen VDR starten und parallel in einem anderen Terminal gdb starten.

    Sobald VDR hängt, kann man sich in der gdb Konsole mit "attach _pid_von_vdr_" in den Prozess hängen, woraufhin der angehalten wird.

    Mit "info threads" siehst du alle offenen threads und z.B. mit "thread 20" "where" kannst du schauen, wo der Thread im Code gerade ist. Das könnte schon weiterhelfen.

  • Das sieht dann so aus, wenn er gerade im Menü hängt - welchen der Threads müsste man denn da genauer ansehen? Die beiden von softhddevice, nehme ich an?

    VDR zwei drei
    • VDR 01 (Server): VDR 2.8.1 - 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): VDR 2.8.1 - 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - iptv - osdteletext - skinnopacity - softhddevice - svdrpservice - tvscraper]
  • Schwer zu sagen. Am besten, du kannst die Plugins eingrenzen. Dann alle anderen.

    Zueret "thread 1", dann "where", dann den nächsten Thread "thread 2".

    Vorausgesetzt, du hast die debug Symbole drin, musst du im Quellcode schauen, wo er gerade ist und drüber nachdenken, ob das Sinn macht und ob das damit zu tun haben kann.

    So würde ich es machen.

  • Schwer zu sagen. Am besten, du kannst die Plugins eingrenzen. Dann alle anderen.

    Zueret "thread 1", dann "where", dann den nächsten Thread "thread 2".

    Vorausgesetzt, du hast die debug Symbole drin, musst du im Quellcode schauen, wo er gerade ist und drüber nachdenken, ob das Sinn macht und ob das damit zu tun haben kann.

    So würde ich es machen.

    Voraussetzung wäre, man würde verstehen, was der Quellcode treibt - da habe ich bei mir doch ernste Bedenken.

    VDR zwei drei
    • VDR 01 (Server): VDR 2.8.1 - 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): VDR 2.8.1 - 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - iptv - osdteletext - skinnopacity - softhddevice - svdrpservice - tvscraper]
  • Hm, aber ohne in den Quellcode zu schauen wird man das Problem nicht finden bzw. lösen können...

  • Hm, aber ohne in den Quellcode zu schauen wird man das Problem nicht finden bzw. lösen können...

    Das glaube ich schon auch, nur werd *ich* das auch mit in den Quellcode kucken nicht finden können.

    VDR zwei drei
    • VDR 01 (Server): VDR 2.8.1 - 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): VDR 2.8.1 - 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - iptv - osdteletext - skinnopacity - softhddevice - svdrpservice - tvscraper]
  • Die beiden von softhddevice, nehme ich an?

    Den oglThread unbedingt auch.

    Und nur mit den absolut nötigen Plugins wäre das auch etwas übersichtlicher.

  • Falls es daran liegt, daß ein Lock zu lange gehalten wird, hilft:

    MarkusE
    February 18, 2026 at 3:13 PM


    1. Den Patch anwenden

    2. MAX_LOCK_TIME ändern, z.B. auf #define MAX_LOCK_TIME 1 (1 wie 1 Sekunde). Dann werden alle Treads gemeldet, die einen Lock länger als 1 s halten

    3. VDR neu übersetzen.

    4. Plugins neu übersetzen

    5. VDR restarten

    6. Den Fehler möglichst schnell reproduzieren

    7. Im Log nach "ERROR" suchen, zu dem Timestamp, an dem der Fehler auftrat.


    Anmerkungen:

    1. Das ist jetzt nur für die Fehlersuche. Für Produktivbetrieb ist #define MAX_LOCK_TIME 1 zu kurz. Da empfehle ich #define MAX_LOCK_TIME 60. Wenn nur der Wert von MAX_LOCK_TIME geändert wird, dann genügt es VDR neu zu übersetzen. Die Plugins brauchen dann nicht neu übersetzt werden.
    2. Es kann da auch andere Ursachen für die Verzögerung geben. S. z.B. [Patch] Mehr Informationen bei "ERROR: cTimer::Matches()" . Da dachte ich erst, daß es an einem zu lange gehaltenen Lock liegt. War aber nicht so. Es lag an einer Verzögerung im VDR Main Thread.
  • Also - nur mit softhddevice.

    Ich bin kein Programmierer, aber für mich sieht das so aus, als würde softhddevice hier einen mutex halten, auf dessen Freigabe der VDR wartet - oder so ähnlich. Kann das sein? Hilft das weiter?
    Wenn nein, was sollte ich noch machen?

    VDR zwei drei
    • VDR 01 (Server): VDR 2.8.1 - 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): VDR 2.8.1 - 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - iptv - osdteletext - skinnopacity - softhddevice - svdrpservice - tvscraper]
  • Falls es daran liegt, daß ein Lock zu lange gehalten wird, hilft:

    1. Den Patch anwenden

    2. MAX_LOCK_TIME ändern, z.B. auf #define MAX_LOCK_TIME 1 (1 wie 1 Sekunde). Dann werden alle Treads gemeldet, die einen Lock länger als 1 s halten

    3. VDR neu übersetzen.

    Wenn ich das übersetze und den vdr mit -V aufrufe, bekomme ich direkt einen Segfault:

    VDR zwei drei
    • VDR 01 (Server): VDR 2.8.1 - 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): VDR 2.8.1 - 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - iptv - osdteletext - skinnopacity - softhddevice - svdrpservice - tvscraper]

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!