Re: scan does not work on latest multiproto drivers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Remy Bohmer schrieb:
Hello,

I hope anybody can tell me what I do wrong here.

I have a TT-3200 DVB-S2 board, and I am trying to get it up and
running while using the latest multiproto drivers.

I pulled the sources from "http://jusst.de/hg/multiproto";, They
compile properly against 2.6.24.4 (fedora 8), and seem to load
properly, because the board is properly recognized.

Then I pulled the dvb-apps tools from
"http://linuxtv.org/hg/dvb-apps";, and compiled towards the headers of
the multiproto drivers.
These compile properly but does not work when I start "./scan -v
dvb-s/Astra-19.2E > ./my-channels.conf", I get this error:
"stb0899_search: Unsupported delivery system" in dmesg

Then I tried the sources from: "http://jusst.de/manu/scan.tar.bz2";.
These sources do not compile against the latest multiproto, I get these errors:
scan.c: In function 'tune_to_transponder':
scan.c:1682: error: 'struct dvbfe_info' has no member named 'delivery'
scan.c:1684: error: 'struct dvbfe_info' has no member named 'delivery'
scan.c:1693: error: 'struct dvbfe_info' has no member named 'delivery'
scan.c:1704: error: 'struct dvbfe_info' has no member named 'delivery'

So, I must be doing something wrong, but I have no idea what is wrong.

Does anybody have some ideas/suggestions?


That's because of the new API (v3.3) in current hg-tree.

Download

http://jusst.de/manu/scan.tar.bz2

and apply the attached patch on it. Then it should work.
You must also patch the szap-utility with the patch of Jlac, postet a few days ago (I attached it to this mail, too).

Jens
diff -Naur 1/scan.c 2/scan.c
--- 1/scan.c	2008-04-03 02:00:19.000000000 +0200
+++ 2/scan.c	2008-04-03 12:29:32.000000000 +0200
@@ -1674,15 +1674,18 @@
 	}
 
         struct dvbfe_info fe_info1;
+	enum dvbfe_delsys delivery;
 
         // a temporary hack, need to clean
         memset(&fe_info1, 0, sizeof (struct dvbfe_info));
             
         if(t->modulation_system == 0)
-            fe_info1.delivery = DVBFE_DELSYS_DVBS;
+            delivery = DVBFE_DELSYS_DVBS;
         else if(t->modulation_system == 1)
-            fe_info1.delivery = DVBFE_DELSYS_DVBS2;
-            
+            delivery = DVBFE_DELSYS_DVBS2;
+
+        ioctl(frontend_fd, DVBFE_SET_DELSYS, &delivery); //switch system 
+
         int result = ioctl(frontend_fd, DVBFE_GET_INFO, &fe_info1);
         if (result < 0) {
             perror("ioctl DVBFE_GET_INFO failed");
@@ -1690,7 +1693,7 @@
             return -1;
         }
         
-        switch (fe_info1.delivery) {
+        switch (delivery) {
             case DVBFE_DELSYS_DVBS:
                 info("----------------------------------> Using '%s' DVB-S\n", fe_info.name);
                 break;
@@ -1701,7 +1704,7 @@
                 info("----------------------------------> Using '%s' DVB-S2\n", fe_info.name);
                 break;
             default:
-                info("Unsupported Delivery system (%d)!\n", fe_info1.delivery);
+                info("Unsupported Delivery system (%d)!\n", delivery);
                 t->last_tuning_failed = 1;
                 return -1;
         }
--- org/szap.c	2008-04-02 20:47:05.000000000 +0200
+++ new/szap.c	2008-04-02 20:46:30.000000000 +0200
@@ -351,6 +351,7 @@
 	uint32_t ifreq;
 	int hiband, result;
 	struct dvbfe_info fe_info;
+	enum dvbfe_delsys delivery;
 
 	// a temporary hack, need to clean
 	memset(&fe_info, 0, sizeof (&fe_info));
@@ -365,15 +366,15 @@
 	switch (delsys) {
 	case DVBS:
 		printf("Querying info .. Delivery system=DVB-S\n");
-		fe_info.delivery = DVBFE_DELSYS_DVBS;	
+		delivery = DVBFE_DELSYS_DVBS;
 		break;
 	case DSS:
 		printf("Querying info .. Delivery system=DSS\n");
-		fe_info.delivery = DVBFE_DELSYS_DSS;
+		delivery = DVBFE_DELSYS_DSS;
 		break;
 	case DVBS2:
 		printf("Querying info .. Delivery system=DVB-S2\n");
-		fe_info.delivery = DVBFE_DELSYS_DVBS2;
+		delivery = DVBFE_DELSYS_DVBS2;
 		break;
 	default:
 		printf("Unsupported delivery system\n");
@@ -391,6 +392,8 @@
 			return FALSE;
 		}
 
+		ioctl(fefd, DVBFE_SET_DELSYS, &delivery); //switch system
+
 		result = ioctl(fefd, DVBFE_GET_INFO, &fe_info);
 		if (result < 0) {
 			perror("ioctl DVBFE_GET_INFO failed");
@@ -398,7 +401,7 @@
 			return FALSE;
 		}
 		
-		switch (fe_info.delivery) {
+		switch (delivery) {
 		case DVBFE_DELSYS_DVBS:
 			printf("----------------------------------> Using '%s' DVB-S", fe_info.name);
 			break;
@@ -409,7 +412,7 @@
 			printf("----------------------------------> Using '%s' DVB-S2", fe_info.name);
 			break;
 		default:
-			printf("Unsupported Delivery system (%d)!\n", fe_info.delivery);
+			printf("Unsupported Delivery system (%d)!\n", delivery);
 			close(fefd);
 			return FALSE;
 		}
_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux