[linux-dvb] m920x device: Genius TVGo DVB-T02Q

Román roman.pena.perez at gmail.com
Mon Nov 19 21:36:23 CET 2007


Hello

I'm new to the list. I've got a T02Q working (or that's what it seems,
although I can't tune anything yet, but I think is a matter of signal
strength). Some weeks ago my brother gave me a capturer of this model,
so I started to look for linux support. I read this conversation:

[linux-dvb] m920x device: Genius TVGo DVB-T02Q
http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019856.html


There is a problem in the perl script used to parse the snoopy logs
(I've got it from the wiki). You need to add a plus sign to the regexp
at the function write_bytes (lines passed to it had extra spaces which
caused empty values within array @bytes, thus giving extra zeros to
the resultant firmware). Here's the tuned script I used:

m920x_snoopypro_parser.pl
-------------------
#!/usr/bin/perl

$linenum = 0;
open(out,">fw") || die "Can't open fw";

sub get_tf_data {
       $full = "";

       $line = <STDIN>; $linenum++;
       while($line =~ m/^\S\S\S\S: ([0-9a-f ]+)/) {
               $full .= $1;
               $line = <STDIN>; $linenum++;
       }
       return $full;
}

sub write_bytes {
       my($str) = @_;

       @bytes = split(/ +/, $str); ################## look at this line
       foreach(@bytes){
               print out pack("C", hex($_));
       }
}

while($line = <STDIN>) { $linenum++;
       if($line =~ m/SetupPacket:/) {
               $setup_linenum = $linenum;
               $setup = get_tf_data();

               while($line = <STDIN>) { $linenum++;
                       if($line =~ m/TransferBuffer: 0x00000040/) {
                               #print "setup: " . $setup . "\n";

                               @bytes = split(/ /, $setup);
                               print out pack("v", hex($bytes[3] . $bytes[2]));
                               print out pack("v", hex($bytes[5] . $bytes[4]));
                               print out pack("v", hex("0x40"));

                               $lid = get_tf_data();
                               print "lid  : " . $lid . "\n";
                               write_bytes($lid);
                               last;
                       }elsif($line =~ m/No TransferBuffer/) {
                               last;
                       }elsif($line =~ m/TransferBuffer:/) {
                               last;
                       }
               }
       }
}
------------------

I've attached the firmware I've got with it. If you're interested in
the two usblogs I got with snoopypro thru a kvm-virtualized windows,
let me know (my last message was bounced for being too long). They're
two because the first is where the driver uploads the firmware to the
device, and the second is the conversation after the device reattaches
itself to the usb bus.

As for the patch to m920x.c, I won't waste my time trying to get the
last files on the repository again and making a diff again and getting
my mail message bounced again. The job done by Pere Blay was
marvelous, use that. The only important difference with mine is
structure "tvgot02q_zl10353_config": .demod_address should be 0x0f,
not 0x1e.

That's all for now.

--

Román.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dvb-usb-t02q-02.fw
Type: application/octet-stream
Size: 3430 bytes
Desc: not available
Url : http://www.linuxtv.org/pipermail/linux-dvb/attachments/20071119/2249484e/attachment.obj 


More information about the linux-dvb mailing list