Mailing List archive

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

[linux-dvb] Re: Signal strength problem?



On Tue, 10 Jun 2003, Oscar Carlsson wrote:
> pvr dvbtune # ./dvbtune -f 362000000 -s 6875
...
> FE_STATUS: FE_HAS_SIGNAL FE_TIMEDOUT FE_HAS_CARRIER FE_HAS_VITERBI
> Not able to lock to the signal on the given frequency

You may have wrong QAM setting, or Inversion setting.  I would bet the
inversion.  You need to patch DVB-C portion of tune.c to set the inversion
ON, or you can use the patch below to give it on command line. Your
command line would be:

dvbtune -f 362000000 -s 6875 -qam 64 -I1

Or, you might try auto inversion setting, which is default after the
patch:

dvbtune -f 362000000 -s 6875 -qam 64 -I2
(same as: dvbtune -f 362000000 -s 6875 -qam 64)

Hope this helps,
Jaakko

Index: tune.c
===================================================================
RCS file: /cvsroot/dvbtools/dvbtune/tune.c,v
retrieving revision 1.15
diff -u -r1.15 tune.c
--- tune.c	16 Jan 2003 07:49:44 -0000	1.15
+++ tune.c	10 Jun 2003 04:38:54 -0000
@@ -188,14 +188,16 @@
   event.status=0;
   while (((event.status & FE_TIMEDOUT)==0) && ((event.status & FE_HAS_LOCK)==0)) {
     fprintf(stderr,"polling....\n");
-    if (poll(pfd,1,10000)){
+    if (poll(pfd,1,2000)){
       if (pfd[0].revents & POLLIN){
         fprintf(stderr,"Getting frontend event\n");
-        if (status = ioctl(fd_frontend, FE_GET_EVENT, &event) < 0){
-	  if (status != -EOVERFLOW) {
-	    perror("FE_GET_EVENT");
-	    return -1;
+        if ( ioctl(fd_frontend, FE_GET_EVENT, &event) < 0){
+	  if (EOVERFLOW == errno) {
+	    fprintf (stderr, "Some events were lost\n");
+	    continue;
 	  }
+          perror("FE_GET_EVENT");
+          return -1;
         }
       }
       print_status(stderr,event.status);
@@ -237,7 +239,7 @@
       festatus=0;
       ioctl(fd_frontend,FE_READ_STATUS,&festatus);
       print_status(stderr,festatus);
-    } else {
+  } else {
     fprintf(stderr,"Not able to lock to the signal on the given frequency\n");
     return -1;
   }
@@ -517,19 +519,19 @@
 #endif
       break;
     case FE_QAM:
-      fprintf(stderr,"tuning DVB-C to %d, srate=%d\n",freq,srate);
+      fprintf(stderr,"tuning DVB-C to %f MHz, srate=%f Msym/s\n",freq/1e6,srate/1e6);
 #ifdef NEWSTRUCT
       feparams.frequency=freq;
-      feparams.inversion=INVERSION_OFF;
+      feparams.inversion=specInv;
       feparams.u.qam.symbol_rate = srate;
-      feparams.u.qam.fec_inner = FEC_AUTO;
-      feparams.u.qam.modulation = QAM_64;
+      feparams.u.qam.fec_inner = FEC_NONE;
+      feparams.u.qam.modulation = modulation;
 #else
       feparams.Frequency=freq;
-      feparams.Inversion=INVERSION_OFF;
+      feparams.Inversion=specInv;
       feparams.u.qam.SymbolRate = srate;
       feparams.u.qam.FEC_inner = FEC_AUTO;
-      feparams.u.qam.QAM = QAM_64;
+      feparams.u.qam.QAM = modulation;
 #endif
       break;
     default:

-- 
Foreca Ltd                                           Jaakko.Hyvatti@foreca.com
Pursimiehenkatu 29-31 B, FIN-00150 Helsinki, Finland     http://www.foreca.com


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index