You are not logged in.

Dear visitor, welcome to VDR Portal. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

mini73

Moderator

Posts: 5,151

Location: Flensburg

  • Send private message

21

Friday, September 27th 2013, 12:41pm

dass der VDR einen Bug hat und nicht erkennt, dass die Karte DVB-S kann

Oder der Treiber, weil der das nicht richtig (nach API-Spezifikation) signalisiert.

Lars.

meine Signatur

vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
vdr: yaVDR 0.2/pvr350 @ Sempron 64 LE-1200, MSI K9MM-V, 1x PVR350, 2x Satelco EasyWatch DVB-C
hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
Plugins: | avahi4vdr | dbus2vdr | dynamite | noepg | pvrinput | sundtek |
pre-alpha Plugins: | ddci CI-Support für DD/L4M (siehe Post 1048374) |

22

Friday, September 27th 2013, 12:58pm

Oder der Treiber, weil der das nicht richtig (nach API-Spezifikation) signalisiert.
An das habe ich auch schon gedacht. Kann man da nachschauen was der Treiber meldet? Vielleicht irgendwo im /sys filesystem?
Oder eben als Workaround den Teil vom VDR patchen der die "capabilities" des Treibers einliest.

Wenn jemand genauere Infos zu diesem Thema hat, immer her damit - wenn ich weiß an welcher stelle im Sourcecode da geschaut wird dann pusch ich das dort schon irgendwie rein :evil: !

Aber am wahrscheinlichsten kommt mir immer noch vor, dass das Problem irgendwas banales an meiner VDR Konfiguration ist...

hepi

Sage

Posts: 5,148

Location: Heidelberg

  • Send private message

23

Friday, September 27th 2013, 1:35pm

Da muss man mal die Methode bool cDvbDevice::QueryDeliverySystems(int fd_frontend) genau anschauen: http://projects.vdr-developer.org/projec…try/dvbdevice.c

Und schauen, was der Treiber an Capabilities angibt.

Gruß
hepi
Must-read: yaVDR-FAQ | Aktuelle Kanallisten findet Ihr in der Channelpedia | Meine momentan aktive Hardware: VDR1: yaVDR 0.5alpha1 auf Zotac ZBOX ID40 + 2x Technisat Skystar USB HD + Gyration GYR3101 FB & KB + LCD-Display Linux4Media 4243:ee08 | VDR2: yaVDR 0.5.alpha1 auf Acer Aspire Revo 3600 + 2x TechnoTrend S2-3600 DVB-S2 USB | VDR 3: Seagate Goflex Net mit Debian Squeeze + Kernel 3.1.10 + VDR 1.7.22 + HDHomeRun 2x DVB-C

mini73

Moderator

Posts: 5,151

Location: Flensburg

  • Send private message

24

Friday, September 27th 2013, 1:45pm

Wichtig ist, dass der Treiber DTV_ENUM_DELSYS unterstützt, das tun aber nicht alle.

Lars.

meine Signatur

vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
vdr: yaVDR 0.2/pvr350 @ Sempron 64 LE-1200, MSI K9MM-V, 1x PVR350, 2x Satelco EasyWatch DVB-C
hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
Plugins: | avahi4vdr | dbus2vdr | dynamite | noepg | pvrinput | sundtek |
pre-alpha Plugins: | ddci CI-Support für DD/L4M (siehe Post 1048374) |

25

Friday, September 27th 2013, 1:48pm

Hallo.

Jetzt hab ich mal ganz wild einfach den Block für das neue DVB-API in der dvbdevice.c auskommentiert um den Legacy mode hardcoded zu aktivieren (glaub ich zumindest) und neu kompiliert:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 	}
  // Determine the types of delivery systems this device provides:
  bool LegacyMode = true;
  /*if (DvbApiVersion >= 0x0505) {
 	memset(&Frontend, 0, sizeof(Frontend));
 	memset(&CmdSeq, 0, sizeof(CmdSeq));
 	CmdSeq.props = Frontend;
 	SETCMD(DTV_ENUM_DELSYS, 0);
 	int Result = ioctl(fd_frontend, FE_GET_PROPERTY, &CmdSeq);
 	if (Result == 0) {
    	for (uint i = 0; i < Frontend[0].u.buffer.len; i++) {
        	if (numDeliverySystems >= MAXDELIVERYSYSTEMS) {
           	esyslog("ERROR: too many delivery systems on frontend %d/%d", adapter, frontend);
           	break;
           	}
        	deliverySystems[numDeliverySystems++] = Frontend[0].u.buffer.data[i];
        	}
    	LegacyMode = false;
    	}
 	else {
    	esyslog("ERROR: can't query delivery systems on frontend %d/%d - falling back to legacy mode", adapter, frontend);
    	}
 	}*/
  if (LegacyMode) {


und siehe da - alle Sender laufen!!!

Das kann natürlich nicht die endgültige Lösung sein - aber wir kommen der Ursache des Problems immer näher. Auch die logausgabe könnte noch Aufschluß geben:

original:

Source code

1
Sep 27 10:22:26 vdr vdr: [3034] frontend 0/0 provides DVB-S2 with QPSK ("Conexant CX24120/CX24118")

mit meiner kleinen "Anpassung":

Source code

1
Sep 27 13:37:35 vdr vdr: [25332] frontend 0/0 provides DVB-S,DVB-S2 with QPSK ("Conexant CX24120/CX24118")


Da muss man mal die Methode bool cDvbDevice::QueryDeliverySystems(int fd_frontend) genau anschauen: http://projects.vdr-developer.org/projec…try/dvbdevice.cUnd schauen, was der Treiber an Capabilities angibt.Grußhepi
ja, das schau ich mir als nächstes an, danke.

26

Friday, September 27th 2013, 2:13pm

Ich glaube jetzt brauche ich wieder eure Hilfe.

Ich habe den Block wieder "einkommentiert" und ein paar debugausgaben eingefügt. Es stellt sich heraus, dass in zeile 11 von meinem letzten post
Frontend[0].u.buffer.len den Wert 1 hat. Also es wird nur genau ein DeliverySystem vom Treiber gemeldet - wenn ich das richtig verstanden hab!?
Aber Wie es jetzt weitergeht? An welcher Stelle (im Kerneltreiber) wird den diese Liste erzeugt? Wie ich überprüfe ob DTV_ENUM_DELSYS richtig unterstützt wird, weiß ich halt auch nicht.

Am liebsten wäre mir, wenn wir es irgendwie schaffen, dass der Kerneltreiber mehrere DeliverySystems meldet - so sollte es doch sein, oder macht der VDR da was falsch?

Das Endziel sollte ja sein, das in Zukunft die Karte "einfach so" mit Linux und VDR läuft - dann hat die VDR-Gemeinde insgesamt auch noch was von unserem Aufwand (Danke nochmal für die große Unterstützung)

mini73

Moderator

Posts: 5,151

Location: Flensburg

  • Send private message

27

Friday, September 27th 2013, 2:15pm

Moin!

So sieht dtv_property aus: http://linuxtv.org/downloads/v4l-dvb-api…T_PROPERTY.html
Ich würde mal prüfen, ob Frontend[0].u.buffer.len den richtigen Wert hat und außerdem würde ich Frontend[0].u.buffer.data[0] - Frontend[0].u.buffer.data[31] ausgeben. Vielleicht steht da ja schon das passende DELSYS drin, nur die zurückgegebene Anzahl stimmt nicht.
Hier sind die Werte dafür: http://linuxtv.org/downloads/v4l-dvb-api…DELIVERY-SYSTEM

Lars.

meine Signatur

vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
vdr: yaVDR 0.2/pvr350 @ Sempron 64 LE-1200, MSI K9MM-V, 1x PVR350, 2x Satelco EasyWatch DVB-C
hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
Plugins: | avahi4vdr | dbus2vdr | dynamite | noepg | pvrinput | sundtek |
pre-alpha Plugins: | ddci CI-Support für DD/L4M (siehe Post 1048374) |

28

Friday, September 27th 2013, 2:29pm

ch würde mal prüfen, ob Frontend[0].u.buffer.len den richtigen Wert hat und außerdem würde ich Frontend[0].u.buffer.data[0] - Frontend[0].u.buffer.data[31]

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Sep 27 14:27:08 vdr vdr: [26159] DVB API version is 0x050A (VDR was built with 0x050A)
Sep 27 14:27:08 vdr vdr: [26159] DEBUG: len is 1
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[0] = 6
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[1] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[2] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[3] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[4] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[5] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[6] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[7] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[8] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[9] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[10] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[11] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[12] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[13] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[14] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[15] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[16] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[17] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[18] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[19] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[20] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[21] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[22] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[23] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[24] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[25] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[26] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[27] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[28] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[29] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[30] = 0
Sep 27 14:27:08 vdr vdr: [26159] DEBUG:  Frontend[0].u.buffer.data[31] = 0
Sep 27 14:27:08 vdr vdr: [26159] frontend 0/0 provides DVB-S2 with QPSK ("Conexant CX24120/CX24118")
Sep 27 14:27:08 vdr vdr: [26159] found 1 DVB device

mini73

Moderator

Posts: 5,151

Location: Flensburg

  • Send private message

29

Friday, September 27th 2013, 2:40pm

DVB-S ist Nummer 5. Das scheint der Treiber nicht zurückzugeben.
Jetzt musst du im Treiberquellcode wühlen... Oder einfach len auf 2 setzen und data[1] auf 5. Aber dann profitiert kein anderer davon. :)

Lars.

meine Signatur

vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
vdr: yaVDR 0.2/pvr350 @ Sempron 64 LE-1200, MSI K9MM-V, 1x PVR350, 2x Satelco EasyWatch DVB-C
hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
Plugins: | avahi4vdr | dbus2vdr | dynamite | noepg | pvrinput | sundtek |
pre-alpha Plugins: | ddci CI-Support für DD/L4M (siehe Post 1048374) |

30

Friday, September 27th 2013, 2:48pm

Ich habs geschafft!!!

Ich habe den Treiber angepasst! Also das SYS_DVBS als zusätzliches system in die Datei cx24120.c eingefügt (Zeile 14 in dem Auszug) - jetzt funktioniert also alles mit original VDR!

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
static int cx24120_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks)    	// UNCORRECTED_BLOCKS
{
    	struct cx24120_state *state = fe->demodulator_priv;

    	*ucblocks = (cx24120_readreg(state, CX24120_REG_UCB_H) << 8) |
            	cx24120_readreg(state, CX24120_REG_UCB_L);
    	dbginfo("Blocks = %d\n", *ucblocks);
    	return 0;
}
EXPORT_SYMBOL(cx24120_read_ucblocks);
// ########################################################################################
static struct dvb_frontend_ops cx24120_ops = {

    	.delsys = { SYS_DVBS, SYS_DVBS2 },
    	.info = {
            	.name = "Conexant CX24120/CX24118",
            	.frequency_min = 950000,
            	.frequency_max = 2150000,
            	.frequency_stepsize = 1011, /* kHz for QPSK frontends */
            	.frequency_tolerance = 5000,
            	.symbol_rate_min = 1000000,
            	.symbol_rate_max = 45000000,
            	.caps =                                             	// 0x500006ff
                    	FE_CAN_INVERSION_AUTO |     	//0x00 000 001



Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Sep 27 14:40:08 vdr vdr: [2195] DVB API version is 0x050A (VDR was built with 0x050A)
Sep 27 14:40:08 vdr vdr: [2195] DEBUG: len of Frontend is 2
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[0] = 5
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[1] = 6
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[2] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[3] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[4] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[5] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[6] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[7] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[8] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[9] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[10] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[11] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[12] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[13] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[14] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[15] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[16] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[17] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[18] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[19] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[20] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[21] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[22] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[23] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[24] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[25] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[26] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[27] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[28] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[29] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[30] = 0
Sep 27 14:40:08 vdr vdr: [2195] DEBUG:  Frontend[0].u.buffer.data[31] = 0
Sep 27 14:40:08 vdr vdr: [2195] frontend 0/0 provides DVB-S,DVB-S2 with QPSK ("Conexant CX24120/CX24118")
Sep 27 14:40:08 vdr vdr: [2195] found 1 DVB device


Danke an hepi und mini73 :tup

hepi

Sage

Posts: 5,148

Location: Heidelberg

  • Send private message

31

Friday, September 27th 2013, 2:51pm

Glückwunsch! Diese Änderung darf aber nicht hier im Portal verloren gehen bzw. versanden! Am besten an möglichst viele Leute schicken, die diese Treiber-Patches anbieten, und auch im linuxtv.org wiki posten. Dort solltest Du auch Deine Erfahrungen festhalten, da ja die Wiki-Seite nicht aktuell zu sein scheint.

Gruß
hepi
Must-read: yaVDR-FAQ | Aktuelle Kanallisten findet Ihr in der Channelpedia | Meine momentan aktive Hardware: VDR1: yaVDR 0.5alpha1 auf Zotac ZBOX ID40 + 2x Technisat Skystar USB HD + Gyration GYR3101 FB & KB + LCD-Display Linux4Media 4243:ee08 | VDR2: yaVDR 0.5.alpha1 auf Acer Aspire Revo 3600 + 2x TechnoTrend S2-3600 DVB-S2 USB | VDR 3: Seagate Goflex Net mit Debian Squeeze + Kernel 3.1.10 + VDR 1.7.22 + HDHomeRun 2x DVB-C

32

Friday, September 27th 2013, 2:53pm

vollständiger patch gegen Linux 3.10.7

Im Anhang der gesamtpatch gegen Linux 3.10.7

mfg

ducky
ducky has attached the following file:

mini73

Moderator

Posts: 5,151

Location: Flensburg

  • Send private message

33

Friday, September 27th 2013, 2:54pm

Ok, das war die Kür, jetzt kommt die Pflicht - Das Melden an die linux-media-Mailingliste bzw. den Treiberentwickler. :)
Herzlichen Glückwunsch!

Lars.

meine Signatur

vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
vdr: yaVDR 0.2/pvr350 @ Sempron 64 LE-1200, MSI K9MM-V, 1x PVR350, 2x Satelco EasyWatch DVB-C
hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
Plugins: | avahi4vdr | dbus2vdr | dynamite | noepg | pvrinput | sundtek |
pre-alpha Plugins: | ddci CI-Support für DD/L4M (siehe Post 1048374) |

34

Tuesday, October 1st 2013, 11:07am

Danke!

ich habe den Patch in unserem SVN jetzt auch angepasst.

http://www.minidvblinux.de/svn/filedetai…2_CX24120.patch
------
Hardware: ASUS E35M1-I Deluxe, 4GB RAM, ATI on Board (fuer XBMC), TT S2-6400 FF, Samsung 500GB 2,5"
VDR: MLD3.0 Devel&Test

35

Monday, April 21st 2014, 1:24pm

Patch works OK for kernel 3.13.7
I'm sorry for the English postings but I can't write German, reading isn't a problem.

VDR server: P4 with vdr 2.1.1 / streamdev / SmartTVweb / vipclient Javascript
Clients : Motorola Vip1903/1963