WinTV-CI / Cinergy-USB-CI und ddci2
-
-
-
Ja, dasselbe Modul mit derselben Karte. Die Optionen sind
Code# wintv-ci options options wintv_usb2ci use_dma_coherent=0 options wintv_usb2ci dummy_half_uframes=3 options wintv_usb2ci fx2_movx_stretch=6
Ich nutze zillerbaers softhddevice-drm (per streamdev-server fuunktioniert das einwandfrei).
Die Meldungen sehen so aus:
Code
Alles anzeigenApr 27 22:32:21 raspberrypi kernel: [ 1602.767520] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +928 Apr 27 22:32:22 raspberrypi kernel: [ 1602.775776] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +160 Apr 27 22:32:22 raspberrypi kernel: [ 1602.872785] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +1088 Apr 27 22:32:22 raspberrypi kernel: [ 1602.946676] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +256 Apr 27 22:32:22 raspberrypi kernel: [ 1602.975418] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +800 Apr 27 22:32:22 raspberrypi kernel: [ 1603.061430] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +704 Apr 27 22:32:22 raspberrypi kernel: [ 1603.076821] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +384 Apr 27 22:32:22 raspberrypi kernel: [ 1603.172455] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +1056 Apr 27 22:32:22 raspberrypi kernel: [ 1603.241469] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +64 Apr 27 22:32:22 raspberrypi kernel: [ 1603.276843] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +1024 Apr 27 22:32:22 raspberrypi kernel: [ 1603.354596] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +480 Apr 27 22:32:22 raspberrypi kernel: [ 1603.375988] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +576 Apr 27 22:32:22 raspberrypi kernel: [ 1603.468861] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +928 Apr 27 22:32:22 raspberrypi kernel: [ 1603.477118] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +160 Apr 27 22:32:22 raspberrypi kernel: [ 1603.573122] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +1056 Apr 27 22:32:22 raspberrypi kernel: [ 1603.648021] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +256 Apr 27 22:32:22 raspberrypi kernel: [ 1603.677520] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +832 Apr 27 22:32:22 raspberrypi kernel: [ 1603.761532] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +672 Apr 27 22:32:23 raspberrypi kernel: [ 1603.776897] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +384 Apr 27 22:32:23 raspberrypi kernel: [ 1603.870663] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +960 Apr 27 22:32:23 raspberrypi kernel: [ 1603.945555] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +160 Apr 27 22:32:23 raspberrypi kernel: [ 1603.978051] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +928 Apr 27 22:32:23 raspberrypi kernel: [ 1604.058945] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +576 Apr 27 22:32:23 raspberrypi kernel: [ 1604.078573] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +512 Apr 27 22:32:23 raspberrypi kernel: [ 1604.172209] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +992 Apr 27 22:32:23 raspberrypi kernel: [ 1604.177583] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +64 Apr 27 22:32:23 raspberrypi kernel: [ 1604.274597] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +1056 Apr 27 22:32:23 raspberrypi kernel: [ 1604.353612] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +384 Apr 27 22:32:23 raspberrypi kernel: [ 1604.378986] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +704 Apr 27 22:32:23 raspberrypi kernel: [ 1604.466865] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +800 Apr 27 22:32:23 raspberrypi kernel: [ 1604.479247] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +288
Und es kommt das:
CodeApr 27 22:53:04 raspberrypi kernel: [ 855.256544] wintv_usb2ci: * TS[0,15#14/3] not SYNC[42]: [94 cd 78 86 17 b0 db 0f ...]Apr 27 22:53:04 raspberrypi kernel: [ 855.256553] wintv_usb2ci: * TS[0,15#15/0] not SYNC[42]: [4f 13 c2 85 bb ba f7 99 ...]Apr 27 22:53:04 raspberrypi kernel: [ 855.256562] wintv_usb2ci: * TS[0,15#15/1] not SYNC[42]: [88 2d 7a e2 e7 68 71 43 ...]Apr 27 22:53:04 raspberrypi kernel: [ 855.256572] wintv_usb2ci: * TS[0,15#15/2] not SYNC[42]: [82 87 05 02 1e f2 b2 d1 ...]Apr 27 22:53:04 raspberrypi kernel: [ 855.256581] wintv_usb2ci: * TS[0,15#15/3] not SYNC[22]: [61 11 68 f2 90 b0 e7 91 ...]Apr 27 22:53:04 raspberrypi kernel: [ 855.256593] wintv_usb2ci: * TS[0,0#0/0] not SYNC[42]: [21 02 c3 52 33 b1 6a 02 ...]Apr 27 22:53:04 raspberrypi kernel: [ 855.256603] wintv_usb2ci: * TS[0,0#0/1] not SYNC[42]: [73 07 f8 09 1c 48 a8 81 ...]Apr 27 22:53:04 raspberrypi kernel: [ 855.256613] wintv_usb2ci: * TS[0,0#0/2] not SYNC[42]: [4e 60 e6 98 10 78 63 6d ...]Apr 27 22:53:04 raspberrypi kernel: [ 855.256622] wintv_usb2ci: * TS[0,0#0/3] not SYNC[42]: [14 f7 a2 0e 49 e7 06 59 ...]
Ich erhalte aber kein Bild.
LG,
beta
-
Ja, du bekommst überhaupt keine brauchbaren Daten, das Sync-Byte - oder zumindest ein Byte mit dem Wert 0x47 - ist bei den "not SYNC " Zeilen immer 42 Bytes entfernt.
Verwendest du die letzte Version 0.3.4pre3 von github ? Wenn ja, versuche zusätzlich noch diesen Modulparameter
options wintv_usb2ci sync_urb_to_uframe=1 (default = 0 (off))
und vielleicht auch nochoptions wintv_usb2ci urb_iso_asap=2 oder options wintv_usb2ci urb_iso_asap=0 (default = 1)
LG Helmut
-
Ja, ich verwende die letzte Version vom Github. Die Sync-Fehler verschwinden, wenn ich ein "Optimum" für die Parameter einstelle. Ich erhalte trotzdem kein Bild und das Syslog ist mit diesen Meldungen voll:
CodeApr 28 08:45:32 raspberrypi kernel: [34294.754618] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +20 Apr 28 08:45:32 raspberrypi kernel: [34294.761658] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +30 Apr 28 08:45:32 raspberrypi kernel: [34294.848631] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +24 Apr 28 08:45:32 raspberrypi kernel: [34294.857634] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +64 Apr 28 08:45:32 raspberrypi vdr: [softhddev] invalid PES audio packet Apr 28 08:45:32 raspberrypi kernel: [34294.962645] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +24 Apr 28 08:45:32 raspberrypi kernel: [34295.032655] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +26 Apr 28 08:45:32 raspberrypi kernel: [34295.039654] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +28 Apr 28 08:45:32 raspberrypi kernel: [34295.074768] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +466
Oder so etwas:
CodeApr 28 08:49:10 raspberrypi kernel: [34513.371831] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +20 Apr 28 08:49:11 raspberrypi kernel: [34513.383936] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +114 Apr 28 08:49:11 raspberrypi vdr: [4417] [softhddev]Clear: Apr 28 08:49:11 raspberrypi vdr: [4417] ERROR: 1 TS packet(s) not accepted in Transfer Mode Apr 28 08:49:11 raspberrypi vdr: [softhddev] invalid PES audio packet Apr 28 08:49:13 raspberrypi kernel: [34513.482976] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +208 Apr 28 08:49:13 raspberrypi kernel: [34515.660487] wintv_usb2ci: ts_urb_complete : TS CAM-IO: +32
Ab und an, ganz selten erhalte ich für Bruchteile einer Sekunde grünen Pixelmüll und "den Hauch von Audio", was dann aber sofort wieder verschwindet.
LG,
beta
-
Da gehen zu viele Pakete auf dem Weg zum/vom Modul verloren - ich vermute fast alle. Da muß ich etws nachdenken.
Du erhälts noch (viel) mehr Debugausgaben, wenn du in wintv-ci-ci.c in Zeile 57 und 58 die beiden defines auf 1 setzt,
Code/* a lot of TS in/out massages */ #define DEBUG_TS_IO 0 #define DEBUG_TS_IN 0 #define DEBUG_TS_SYN 1
und auch dei Moduloption options wintv_usb2ci show_ts_bitrate=1verwendest.
Vielleicht sieht man dann besser, wo auf dem Weg die Pakete verloren gehen.
Ändert die Auswahl des USB-Anschluß irgend etwas? (es wird aber vermutlich keinen Unterschied machen)
LG helmut
-
Der Wechsel des USB-Anschlusses ändert nichts. ich habe fast das Gefühl, dass es am USB2 des Raspi noch etwas schlimmer ist als am USB3.
Ich liefere ein Log mit dem o.g. Optionen so schnell wie möglich nach.
Danke, dass Du Dir das ansiehst.
LG,
beta
-
-
Ich habe mir jetzt das syslog angesehen und es sind mir doch einige Dinge aufgefallen:
Um 19:08:27 startet der Datentransfer zum CI, die Daten die zurückkommen sind noch verschlüsselt, und nach ca. 1 Sekunde wird für fast jeden zweiten Microframe (enthalt 4 TS-Pakete) die Länge 0 - also leer angegeben. Anhand der Continuity-Counters erkennt man, dass damit tatsächlich 50% der TS-Pakete fehlen.
Ab kurz vor 19:08:46 stimmt etwas mit den TS-Daten die an das CAM gesendet werden nicht mehr - die ersten 4 Bytes ergeben keinen regulärer TS-Header. Das kann aber nichts mit dem WintvCI zu tu haben, denn die vom Treiber selbst eingefügten TS-Null Pakete kommen korrekt wieder aus dem CI. Außerdem wird immer noch nichts entschlüsselt - möglicherweise stimmt etwas mit dem Plugin nicht.
---> die Daten sind immer noch verschlüsselt !
Apr 28 19:08:45 raspberrypi kernel: [32116.412163] wintv_usb2ci: * TS[0/0] 47 50 08 15 00 82 70 29
Apr 28 19:08:45 raspberrypi kernel: [32116.412179] wintv_usb2ci: * TS[0/1] 47 02 ff f0 01 20 dc f7
Apr 28 19:08:45 raspberrypi kernel: [32116.412187] wintv_usb2ci: * TS[0/2] 47 02 ff f1 01 20 59 7e
Apr 28 19:08:45 raspberrypi kernel: [32116.412198] wintv_usb2ci: * TS[0/3] 47 02 ff f2 01 20 be 1c
Apr 28 19:08:45 raspberrypi kernel: [32116.412213] wintv_usb2ci: ts_read_CAM_complete(1) : --- 4 x TS, 1 uframes - rb-avail(1332) CAM(-2)
Apr 28 19:08:45 raspberrypi kernel: [32116.412224] wintv_usb2ci: ts_urb_complete(IN ) : start frame: 280, running URBs: 0
Apr 28 19:08:45 raspberrypi kernel: [32116.418976] wintv_usb2ci: ts_write_CAM_prepare[4] : --- 1472 x TS, 368 uframes - rb-avail(0) CAM(+1470)
Apr 28 19:08:45 raspberrypi kernel: [32116.436083] wintv_usb2ci: * TS[0/0] 47 02 ff f3 01 20 b6 00
Apr 28 19:08:45 raspberrypi kernel: [32116.436167] wintv_usb2ci: * TS[0/1] 47 50 08 16 00 82 70 27
Apr 28 19:08:45 raspberrypi kernel: [32116.436181] wintv_usb2ci: * TS[0/2] 47 02 ff f4 01 20 fa e9
Apr 28 19:08:45 raspberrypi kernel: [32116.436192] wintv_usb2ci: * TS[0/3] 47 02 ff f5 01 20 a7 7d
---> ab hier keine korrekten TS-PaketeApr 28 19:08:45 raspberrypi kernel: [32116.436208] wintv_usb2ci: * TS[1/0] 47 09 17 51 f2 37 25 91
Apr 28 19:08:45 raspberrypi kernel: [32116.436219] wintv_usb2ci: * TS[1/1] 47 5b c8 6c 49 61 15 2d
Apr 28 19:08:45 raspberrypi kernel: [32116.436229] wintv_usb2ci: * TS[1/2] 47 19 6a 2d 55 39 0c 4c
Apr 28 19:08:45 raspberrypi kernel: [32116.436240] wintv_usb2ci: * TS[1/3] 47 9b c7 ab 37 ec b9 81
Apr 28 19:08:45 raspberrypi kernel: [32116.436261] wintv_usb2ci: * TS[2/0] 47 e9 83 fd 84 48 62 38
Apr 28 19:08:45 raspberrypi kernel: [32116.436272] wintv_usb2ci: * TS[2/1] 47 28 9a 19 a0 c2 4d d5
Apr 28 19:08:45 raspberrypi kernel: [32116.436284] wintv_usb2ci: * TS[2/2] 47 d7 61 d8 8e 9f 0c 10
Apr 28 19:08:45 raspberrypi kernel: [32116.436300] wintv_usb2ci: * TS[2/3] 47 f2 b6 97 51 29 64 62
---> aber die vom Treiber eingefügte TS-Null Pakete sind OK
Apr 28 19:08:45 raspberrypi kernel: [32116.436312] wintv_usb2ci: * TS[3/0] 47 c4 c4 c4 c4 c4 c4 c4
Apr 28 19:08:45 raspberrypi kernel: [32116.436322] wintv_usb2ci: ts_read_CAM_complete(10) : skip Dummy-TS [3/0]
Apr 28 19:08:45 raspberrypi kernel: [32116.436330] wintv_usb2ci: * TS[3/1] 47 c4 c4 c4 c4 c4 c4 c4
Apr 28 19:08:45 raspberrypi kernel: [32116.436341] wintv_usb2ci: ts_read_CAM_complete(10) : skip Dummy-TS [3/1]
Apr 28 19:08:45 raspberrypi kernel: [32116.436354] wintv_usb2ci: * TS[3/2] 47 c4 c4 c4 c4 c4 c4 c4
Apr 28 19:08:45 raspberrypi kernel: [32116.436363] wintv_usb2ci: ts_read_CAM_complete(10) : skip Dummy-TS [3/2]
Apr 28 19:08:45 raspberrypi kernel: [32116.436370] wintv_usb2ci: * TS[3/3] 47 c4 c4 c4 c4 c4 c4 c4
Apr 28 19:08:45 raspberrypi kernel: [32116.436378] wintv_usb2ci: ts_read_CAM_complete(10) : skip Dummy-TS [3/3]
Apr 28 19:08:45 raspberrypi kernel: [32116.436399] wintv_usb2ci: * TS[4/0] 47 f7 4b f9 71 40 38 49
Apr 28 19:08:45 raspberrypi kernel: [32116.436412] wintv_usb2ci: * TS[4/1] 47 5a 14 01 55 ee 15 25
Apr 28 19:08:45 raspberrypi kernel: [32116.436421] wintv_usb2ci: * TS[4/2] 47 8e 6f 19 60 f1 30 d1
Apr 28 19:08:45 raspberrypi kernel: [32116.436428] wintv_usb2ci: * TS[4/3] 47 eb 8b fb c0 11 03 32
Wie ist es mit FTA-Programmen - laufen die ohne Probleme, bzw. gibt das ci-Plugin keinen Fehler aus?
Im Anhang ein Patch der auch Microframes mit Länge 0 verarbeitet - möglicherweise sind die fehlenden TS-Pakete doch vorhanden. Kannst du damit noch einmal ein Log erstellen.
Und - du hast es vermutlich eh schon ausprobiert - einmal mit options wintv_usb2ci dummy_half_uframes=2 testen. So geht es bei meiner SMIT auch.
LG Helmut
-
Danke, Helmut. Ich komme erst morgen dazu, Deine Patches einzuspielen und ein neues Log zu erzeugen.
FTA-Programme laufen ohne Probleme. Allerdings habe ich auch da viele Ci-Meldungen, bevor die Sender loslaufen.
Welches Plugin meinst Du (mit dem etwas nicht stimmt)? softhddevice-drm?
LG,
beta
-
Ich meine ciplus - da nach 20 Sekunden noch immer nichts entschlüsselt wird.
LG Helmut
-
-
Nochmal vielen Dank, dass Du da dran bleibst. Das ist ausgesprochen nett von Dir.
Ich habe ein neues Log mit Deinen beiden patches hier hochgeladen (History HD).
ddci2 und ciminus habe ich von meinem Intel-System kopiert, um sicher zu sein, dass alle privaten libs dabei sind und funktionieren.
Auf Intel läuft das einwandfrei.
LG,
beta
-
Deine Plugins sollten schon passen, das war ein Gedankenfehler von mir.
Zum Log - in den Microframes mit Länge 0 sind keine brauchbaren Daten, es gehen tatsächlich so viele Pakete verloren.
Und nach ca. 10 Sekunden sind die Daten auch nicht mehr als TS-Pakete zu erkennen (obwohl im 1.Byte immer das Sync-Byte (0x47) zu sehen ist - das bedeutet nichts, das ist nur eine Eigenheit des SMIT-Moduls).
Was mir jetzt noch einfällt, wäre es mit options wintv_usb2ci use_dma_coherent=1 zu versuchen, da bin ich aber nicht sicher, ob das auf ARM-Platformen überhaupt verwendet werden soll oder kann.
Und mitoptions wintv_usb2ci dummy_half_uframes=2 , 1 oder 0.
Den cidebug-Patch kannst du wieder herausnehmen.
LG Helmut
-
Ich schon wieder
Ich habe unter meinen Odroid N2+ ein CE (19.3) laufen. Darunter läuft ein chroot mit Ubuntu 20.04 und VDR mit dem Plugin von jojo61.
Ich habe mir wintv-usb2ci-ko als Kernel Objekt im CoreElec build mitbauen lassen (cross-compiler). Beim insmod unter CoreElec geschieht folgendes:
Code
Alles anzeigenApr 05 18:56:11 CoreELEC kernel: dvbdev: DVB: registering new adapter (WinTV-CI) Apr 05 18:56:11 CoreELEC kernel: wintv_usb2ci: Attaching DVB CA Device Apr 05 18:56:11 CoreELEC kernel: wintv_usb2ci: ca_bulk_allocate : EP(01) init packet buffer: 64 bytes Apr 05 18:56:11 CoreELEC kernel: wintv_usb2ci: ca_intr_allocate : EP(81) init packet/message buffers: 64/256 bytes Apr 05 18:56:11 CoreELEC kernel: wintv_usb2ci: Attaching DVB CI Device Apr 05 18:56:11 CoreELEC kernel: wintv_usb2ci: ts_rb_alloc : EP(06) ringbuffer size 1540096 bytes (8 x 480 + 512 | 4352 TS-packets) Apr 05 18:56:11 CoreELEC kernel: wintv_usb2ci: ci_isoc_allocate : EP(06) init 10 urbs (120 uframes | 480 TS-packets each urb) Apr 05 18:56:11 CoreELEC kernel: wintv_usb2ci: ci_isoc_setup : EP(06) initialize 10 urbs (DIR_OUT) Apr 05 18:56:11 CoreELEC kernel: wintv_usb2ci: ts_rb_alloc : EP(82) ringbuffer size 1540096 bytes (8 x 480 + 512 | 4352 TS-packets) Apr 05 18:56:11 CoreELEC kernel: wintv_usb2ci: ci_isoc_allocate : EP(82) init 10 urbs (120 uframes | 480 TS-packets each urb) Apr 05 18:56:11 CoreELEC kernel: wintv_usb2ci: ci_isoc_setup : EP(82) initialize 10 urbs (DIR_IN) Apr 05 18:56:11 CoreELEC kernel: wintv_usb2ci: isoc_tsnull_init : Init 2 spare out-URBs with 128 TS-NULL packets (32 uframes) Apr 05 18:56:11 CoreELEC kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000000 Apr 05 18:56:11 CoreELEC kernel: pgd = ffffff800ae37000 Apr 05 18:56:11 CoreELEC kernel: [00000000] *pgd=00000000e17fe003, *pud=00000000e17fe003, *pmd=0000000000000000 Apr 05 18:56:11 CoreELEC kernel: Internal error: Oops: 96000045 [#1] PREEMPT SMP
Der Rechner startet dann neu.
Hast Du eine Idee, wo die null-Pointer Dereferenzierung herkommt?
LG,
Rudi
-
Hab ich im Augenblick leider nicht.
Welche Version verwendest du? Der Letztstand auf github wäre Version 0.3.4pre3 vom 4.3.2021.
Gibt es das Problem auch bei einer älteren Version - z.B. mit Ver. 0.3.3 ?
LG Helmut
-
Danke für die rasche Antwort. Ja, ich verwende die letzte Version aus Github und das Problem tritt leider auch mit der 0.3.3 auf.
LG
Rudi
-
Ich kann einen segfault nur provozieren, indem ich das usb-ci bei laufenden VDR abstecke. Dann greift ts_poll() ins Leere. Es erfolgt aber kein Neustart, und wenn ich es wieder anstecke ist es nach dem CAM-Reset wieder normal verwendbar. Es muß bei bei Dir also an etwas anderem liegen.
Ich kann jetzt nur raten. Vielleicht geschieht es beim Zugriff auf das ca-Device.
Wenn der Aufruf wintv_usb_ci_show_sw_info(wintvci) in wintv-ci-core.c auskommentiert wird, sollte vor einem segfault noch die Meldung "probe successfull" angezeigt werden.Kannst du das mit dem Patch im Anhang einmal ausprobieren.
LG Helmut
-
Vielen Dank, Helmut. Ich baue es am Laufe des Tages ein und kann es dann erst heute Abend testen. Ich melde mich dann.
-
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!