Hallo,
ich schlage mich schon seit einiger Zeit mit Problemen bei der Initialisierung meines CAM's während der Boot-Phase herum. Dies führt dazu, dass Aufnahmen fehlschlagen - weshalb das Ganze irgendwie schon behindert. Geholfen habe ich mir bisher damit, in solchen Situationen den vdr-Prozess neu zu starten - danach lief es dann i.d.R. ohne Probleme.
Umgebung:
yavdr-ansible undter 18.04 Ubuntu mit HWE-Kernel 5.3.0, vdr 2.4.1, ddci-Plugin, eine DD-DVB/C Karte mit angeschlossenem Doppeltuner- und CA-Modul
Beim Boot werden die Karten sauber gefunden und eingebunden:
Jan 25 08:55:46 yavdr kernel: mc: Linux media interface: v0.10
Jan 25 08:55:46 yavdr kernel: ddbridge: Digital Devices PCIE bridge driver 0.9.33-integrated, Copyright (C) 2010-17 Digital Devices GmbH
Jan 25 08:55:46 yavdr kernel: ddbridge 0000:02:00.0: enabling device (0000 -> 0002)
Jan 25 08:55:46 yavdr kernel: ddbridge 0000:02:00.0: detected Digital Devices DVBCT V6.1 DVB adapter
Jan 25 08:55:46 yavdr kernel: ddbridge 0000:02:00.0: HW 0001000d REGMAP 00010004
Jan 25 08:55:46 yavdr kernel: ddbridge 0000:02:00.0: Port 0: Link 0, Link Port 0 (TAB 1): DUAL DVB-C/T
Jan 25 08:55:46 yavdr kernel: ddbridge 0000:02:00.0: Port 1: Link 0, Link Port 1 (TAB 2): CI
Jan 25 08:55:46 yavdr kernel: ddbridge 0000:02:00.0: Port 2: Link 0, Link Port 2 (TAB 3): DUAL DVB-C/C2/T/T2
Jan 25 08:55:46 yavdr kernel: dvbdev: DVB: registering new adapter (DDBridge)
Jan 25 08:55:46 yavdr kernel: dvbdev: DVB: registering new adapter (DDBridge)
Jan 25 08:55:46 yavdr kernel: dvbdev: DVB: registering new adapter (DDBridge)
Jan 25 08:55:46 yavdr kernel: dvbdev: DVB: registering new adapter (DDBridge)
Jan 25 08:55:46 yavdr kernel: dvbdev: DVB: registering new adapter (DDBridge)
Jan 25 08:55:46 yavdr systemd-udevd[556]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Jan 25 08:55:46 yavdr kernel: i2c i2c-0: Found ST STV0367 DDB DVB-C/T with ChipID 60 at adr 1F
...
Jan 25 08:55:47 yavdr kernel: ddbridge 0000:02:00.0: DVB: registering adapter 0 frontend 0 (ST STV0367 DDB DVB-C/T)...
Jan 25 08:55:47 yavdr kernel: i2c i2c-0: Found ST STV0367 DDB DVB-C/T with ChipID 60 at adr 1E
Jan 25 08:55:47 yavdr kernel: ddbridge 0000:02:00.0: DVB: registering adapter 1 frontend 0 (ST STV0367 DDB DVB-C/T)...
Jan 25 08:55:47 yavdr kernel: cxd2099 1-0040: Attached CXD2099AR at 0x40
Jan 25 08:55:47 yavdr kernel: i2c i2c-2: cxd2841er_attach(): I2C adapter 000000001578ea81 SLVX addr 6e SLVT addr 6c
Jan 25 08:55:47 yavdr kernel: i2c i2c-2: cxd2841er_attach(): attaching CXD2843ER DVB-C/C2/T/T2 frontend
Jan 25 08:55:47 yavdr kernel: i2c i2c-2: cxd2841er_attach(): chip ID 0xa4 OK.
Jan 25 08:55:47 yavdr kernel: tda18212 2-0060: NXP TDA18212HN/M successfully identified
Jan 25 08:55:47 yavdr kernel: ddbridge 0000:02:00.0: DVB: registering adapter 3 frontend 0 (Sony CXD2843ER DVB-T/T2/C/C2 demodulator)...
Jan 25 08:55:47 yavdr kernel: i2c i2c-2: cxd2841er_attach(): I2C adapter 000000001578ea81 SLVX addr 6f SLVT addr 6d
Jan 25 08:55:47 yavdr kernel: i2c i2c-2: cxd2841er_attach(): attaching CXD2843ER DVB-C/C2/T/T2 frontend
Jan 25 08:55:47 yavdr kernel: i2c i2c-2: cxd2841er_attach(): chip ID 0xa4 OK.
Jan 25 08:55:47 yavdr kernel: tda18212 2-0063: NXP TDA18212HN/S successfully identified
Jan 25 08:55:47 yavdr kernel: ddbridge 0000:02:00.0: DVB: registering adapter 4 frontend 0 (Sony CXD2843ER DVB-T/T2/C/C2 demodulator)...
Jan 25 08:55:47 yavdr systemd[1]: Found device /dev/dvb/adapter2/ca0.
...
Jan 25 08:55:53 yavdr kernel: dvb_ca_en50221: dvb_ca adapter 2: DVB CAM detected and initialised successfully
Alles anzeigen
Beim vdr-Start sieht auch noch alles gut aus:
Jan 25 08:56:25 yavdr vdr[1951]: [1951] detected /dev/dvb/adapter4/frontend0
Jan 25 08:56:25 yavdr vdr[1951]: [1951] detected /dev/dvb/adapter3/frontend0
Jan 25 08:56:25 yavdr vdr[1951]: [1951] detected /dev/dvb/adapter1/frontend0
Jan 25 08:56:25 yavdr vdr[1951]: [1951] detected /dev/dvb/adapter0/frontend0
Jan 25 08:56:25 yavdr vdr[1951]: [1951] probing /dev/dvb/adapter0/frontend0
Jan 25 08:56:25 yavdr vdr[1951]: [1951] creating cDvbDevice
Jan 25 08:56:25 yavdr vdr[1951]: [1951] new device number 1 (card index 1)
...
Jan 25 08:56:25 yavdr vdr[1951]: [1951] DVB API version is 0x050B (VDR was built with 0x050A)
Jan 25 08:56:25 yavdr vdr[1951]: [1951] frontend 0/0 provides DVB-C,DVB-T with QPSK,QAM16,QAM32,QAM64,QAM128,QAM256 ("ST STV0367 DDB DVB-C/T")
Jan 25 08:56:25 yavdr vdr[1951]: [1988] frontend 0/0 tuner thread started (pid=1951, tid=1988, prio=high)
Jan 25 08:56:25 yavdr vdr[1951]: [1988] cTimeMs: using monotonic clock (resolution is 1 ns)
Jan 25 08:56:25 yavdr vdr[1951]: [1951] cTimeMs: using monotonic clock (resolution is 1 ns)
Jan 25 08:56:25 yavdr vdr[1951]: [1989] device 1 section handler thread started (pid=1951, tid=1989, prio=low)
Jan 25 08:56:25 yavdr vdr[1951]: [1951] probing /dev/dvb/adapter1/frontend0
Jan 25 08:56:25 yavdr vdr[1951]: [1951] creating cDvbDevice
Jan 25 08:56:25 yavdr vdr[1951]: [1951] new device number 2 (card index 2)
Jan 25 08:56:25 yavdr vdr[1951]: [1951] frontend 1/0 provides DVB-C,DVB-T with QPSK,QAM16,QAM32,QAM64,QAM128,QAM256 ("ST STV0367 DDB DVB-C/T")
Jan 25 08:56:25 yavdr vdr[1951]: [1951] probing /dev/dvb/adapter3/frontend0
Jan 25 08:56:25 yavdr vdr[1951]: [1951] creating cDvbDevice
Jan 25 08:56:25 yavdr vdr[1951]: [1951] new device number 3 (card index 3)
Jan 25 08:56:25 yavdr vdr[1951]: [1992] device 2 section handler thread started (pid=1951, tid=1992, prio=low)
Jan 25 08:56:25 yavdr vdr[1951]: [1991] frontend 1/0 tuner thread started (pid=1951, tid=1991, prio=high)
Jan 25 08:56:25 yavdr vdr[1951]: [1951] frontend 3/0 provides DVB-T,DVB-T2,DVB-C with QPSK,QAM16,QAM32,QAM64,QAM128,QAM256 ("Sony CXD2843ER DVB-T/T2/C/C2 demodulator")
Jan 25 08:56:25 yavdr vdr[1951]: [1951] probing /dev/dvb/adapter4/frontend0
Jan 25 08:56:25 yavdr vdr[1951]: [1951] creating cDvbDevice
Jan 25 08:56:25 yavdr vdr[1951]: [1951] new device number 4 (card index 4)
Jan 25 08:56:25 yavdr vdr[1951]: [2005] device 3 section handler thread started (pid=1951, tid=2005, prio=low)
Jan 25 08:56:25 yavdr vdr[1951]: [2004] frontend 3/0 tuner thread started (pid=1951, tid=2004, prio=high)
Jan 25 08:56:25 yavdr vdr[1951]: [1951] frontend 4/0 provides DVB-T,DVB-T2,DVB-C with QPSK,QAM16,QAM32,QAM64,QAM128,QAM256 ("Sony CXD2843ER DVB-T/T2/C/C2 demodulator")
Jan 25 08:56:25 yavdr vdr[1951]: [1951] found 4 DVB devices
Jan 25 08:56:25 yavdr vdr[1951]: [1951] initializing plugin: dbus2vdr (31): Steuerung des VDR über D-Bus
Jan 25 08:56:25 yavdr vdr[1951]: [1951] initializing plugin: ddci2 (1.0.5): External Digital Devices CI-Adapter
...
Jan 25 08:56:25 yavdr vdr[1951]: [1951] DDCI-Inf: plugin version 1.0.5 initializing (compiled for VDR version 2.4.1)
Jan 25 08:56:25 yavdr vdr[1951]: [1951] DDCI-Inf: found 1 DD CI adapter
Jan 25 08:56:25 yavdr vdr[1951]: [1951] DDCI-Inf: Creating DdCiAdapter 0 (/dev/dvb/adapter2/ca0)
...
Jan 25 08:56:26 yavdr vdr[1951]: [1951] DDCI-Inf: plugin started
...
Jan 25 08:56:26 yavdr vdr[1951]: [2090] DDCI adapter /dev/dvb/adapter2/ca0 thread started (pid=1951, tid=2090, prio=high)
Jan 25 08:56:26 yavdr vdr[1951]: [2091] DDCI Send (/dev/dvb/adapter2/sec0) thread started (pid=1951, tid=2091, prio=high)
Jan 25 08:56:26 yavdr vdr[1951]: [2092] DDCI Recv (/dev/dvb/adapter2/sec0) thread started (pid=1951, tid=2092, prio=high)
Jan 25 08:56:26 yavdr vdr[1951]: [2093] DDCI Recv Deliver (/dev/dvb/adapter2/sec0) thread started (pid=1951, tid=2093, prio=high)
...
Jan 25 08:56:26 yavdr vdr[1951]: [2090] CAM 1: module present
...
Jan 25 08:56:27 yavdr kernel: dvb_ca_en50221: dvb_ca adapter 2: DVB CAM detected and initialised successfully
Jan 25 08:56:27 yavdr vdr[1951]: [2090] CAM 1: module ready
Alles anzeigen
Aber dann kommt dann das:
Jan 25 08:56:28 yavdr vdr[1951]: [2090] DDCI-Err: can't write to CI adapter (/dev/dvb/adapter2/ca0): Eingabe-/Ausgabefehler
...
Jan 25 08:56:56 yavdr vdr[1951]: [1951] CAM 1: not ready, master (empty)
Jan 25 08:56:56 yavdr vdr[1951]: [1951] not all CAM slots ready after 30 seconds
Ab dann ist dann nichts weiter zu sehen - vdr schaltet auf einen Sender, wo er das CAM nicht benötigt und alle verschlüsselten Senden sind ab dann "nicht verfügbar".
Lösung in dieser Situation: vdr-Prozess neu starten - danach klappt alles wie gewünscht.
Witzigerweise funktioniert es in gefühlt 50% der Fälle auch ohne Probleme, was es leider schwer vermittelbar macht. Ich versuche mir irgendwie mit einem nach Möglichkeit anhand des Verhaltens indizierten Neustart des vdr-Prozesses im Boot-Verlauf zu helfen, aber eine Lösung ist das eher nicht.
Hat hier noch jemand so ein Problem und wie könnte die Lösung aussehen? Sollte das ddci-Plugin hier vielleicht anders initialisieren oder wo kann ich ggf. noch "dran drehen"...?
...Hagen