[Gelöst] VDR startet, bevor die DVB-Karten initialisiert wurden

  • Also, die beiden Xorg0.log sehen für mich unauffällig aus.
    Das einzige, was ich zum Thema X gesehen habe ist das folgende aus dem syslog:

    Code
    Nov 21 20:59:05 user bash[1452]: ERROR: openbox-xdg-autostart requires PyXDG to be installed
    Nov 21 20:59:05 user openbox[1534]: Openbox-Message: Keine gültige Menü-Datei "/var/lib/openbox/debian-menu.xml" vorhanden

    Ob das ein Problem darstellt kann ich aber nicht sagen, dazu kenne ich YaVDR nicht gut genug.

    Merkwürdig ist auch, dass diese Meldung erst nach dem Start des VDR kommt.
    Der VDR muss also starten, bevor die Benutzeroberflüche vollständig verfügbar ist. Keine Ahnung ob das so beabsichtigt ist.


    Momentan gibt es 3 DVB-Karten im System:

    Code
    Nov 21 20:58:53 user kernel: dvbdev: DVB: registering new adapter (PCTV HDTV USB)
    Nov 21 20:58:54 user kernel: dvbdev: DVB: registering new adapter (cx88[0])
    Nov 21 20:58:54 user kernel: dvbdev: DVB: registering new adapter (cx88[1])

    Die cx88 sind 2 unterschiedliche Typen von denen nur eine eine Firmware benötigt.

    Auch hier lädt die Firmware wieder sehr spät, nach dem ersten Zugriff des VDR auf diese Karte(2):

    Das Laden der Firmware (Karte2 cx24116) dauert immerhin 6 Sekunden.
    Auch scheint das initialisieren der Karten nacheinander zu passieren. Mit Karte 3 wird eindeutig erst begonnen, nachdem Karte 2 fertig ist.
    So wie es aussieht würden sich die Ladezeiten der Firmware auf summieren. Bei 3 Tunern könnte das mit den 30Sekunden Timeout also schon knapp werden, falls es mal irgendwo hakt.

    An der S952 selber liegt es also eher nicht, denke ich. Eher an der Anzahl der Tuner, die eine Firmware benötigen.
    Um das zu beweisen, bräuchte man aber einen Syslog mit S952 in dem Fall, wenn sie nicht funktioniert. Dann müsste die obrige Sequenz eigentlich mit einer Fehlermeldung enden. Wenn man die hat, könnte man was machen.


    Die pctv452e scheint aber eine Macke zu haben:

    Code
    ...
    Nov 21 22:29:11 user kernel: pctv452e: I2C error -121; AA 56  CC 00 01 -> 55 56 31 03 cc 00 00
    Nov 21 22:29:12 user kernel: pctv452e: I2C error -121; AA BA  CC 00 01 -> 55 ba 31 03 cc 00 00
    Nov 21 22:29:14 user kernel: pctv452e: I2C error -121; AA 1E  CC 00 01 -> 55 1e 31 03 cc 00 00
    Nov 21 22:29:16 user kernel: pctv452e: I2C error -121; AA 82  CC 00 01 -> 55 82 31 03 cc 00 00
    Nov 21 22:29:17 user kernel: pctv452e: I2C error -121; AA E6  CC 00 01 -> 55 e6 31 03 cc 00 00
    Nov 21 22:29:19 user kernel: pctv452e: I2C error -121; AA 70  CC 00 01 -> 55 70 31 03 cc 00 00
    ...

    Bei der Masse am I2C-Fehlern die im Log erscheinen, würde ich nicht erwarten dass die Karte vernünftig funktioniert.


    Dann liefert der cx88xx Treiber noch eine ziemlich heftig aussehende Fehlermeldung, die aber wohl harmlos ist:

    Code
    Nov 21 20:58:54 user kernel: cx88xx: subsystem: 0070:9200, board: Hauppauge Nova-SE2 DVB-S [card=38,autodetected], frontend(s): 1
    Nov 21 20:58:54 user kernel: ================================================================================
    Nov 21 20:58:54 user kernel: UBSAN: shift-out-of-bounds in /build/linux-nbVeRu/linux-5.15.0/drivers/media/pci/cx88/cx88-input.c:549:11
    Nov 21 20:58:54 user kernel: shift exponent 32 is too large for 32-bit type 'unsigned int'
    Nov 21 20:58:54 user kernel: CPU: 0 PID: 101 Comm: kworker/u16:1 Not tainted 5.15.0-161-generic #171-Ubuntu
    Nov 21 20:58:54 user kernel: Hardware name: Gigabyte Technology Co., Ltd. GA-MA790X-DS4/GA-MA790X-DS4, BIOS F10d 07/22/2010
    Nov 21 20:58:54 user kernel: Workqueue: loop3 loop_workfn
    Nov 21 20:58:54 user kernel: Call Trace:
    ...

    Die Meldung scheint auch üblich zu sein und es betrifft ohnehin nur die IR-Empfänger der Karte.

    Die Meldung hat zwar irgendwie recht (ein =<<32 macht bei einem uint32 nicht wirklich Sinn), da hier in dem Fall aber immer abgebrochen wird, ist das eigentlich o.k. wie es ist.
    Die Fehlermeldung ist hier IMHO falscher Alarm. Falls also jemand spontan eine Idee, wie man die einfach unterdrücken kann, wäre ich dankbar.
    Die betreffende Stelle ist hier: https://git.kernel.org/pub/scm/linux/…88-input.c#n548

    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

  • Nachtrag:
    Ursache für das späte laden der Firmware könnte sein, dass die auf der initrd fehlt und nicht schon beim laden des Treibers geladen werden konnte.

    Es sieht so aus, als ob die Firmware schon bei cDvbDevice::Probe() geladen wird und das wird wirklich für alle DVB_device nacheinander ausgeführt.
    Das da schon irgendwas getunt wird konnte ich nicht sehen, nur diverse fopen() und ReadLine.Read() auf /sys/class/dvb/%s...
    So wie es für mich momentan aussieht müsste es be einem der fopen() und ReadLine.Read() hängen. Strange.

    Evtl. ist das aber von Vorteil und man kann das Laden auch durch ein cat /sys/class/dvb/problematisches_device >/dev/null erzwingen.

    Eigentlich müsste es eines der folgenden Devices sein:
    cat/sys/class/dvb/*frontend*/device/subsystem_vendor >/dev/null
    cat/sys/class/dvb/*frontend*/device/subsystem_device >/dev/null
    oder: (bei mir gibt es nur die ersten beiden)
    cat/sys/class/dvb/*frontend*/device/idVendor >/dev/null
    cat/sys/class/dvb/*frontend*/device/idProduct >/dev/null

    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

  • Post by hnes (December 2, 2025 at 11:19 PM).

    This post was deleted by the author themselves (December 3, 2025 at 10:10 PM).

Participate now!

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