[linux-dvb] dvb-fe-nxt2004.fw not available any more?

CityK CityK at rogers.com
Mon Jan 21 15:57:24 CET 2008

kevin liu wrote:
> this is the result of my sudo perl get_dvb_firmware nxt2004:
> """""""""""""""""""""""""""
> kevin at kevin-ubuntu:~/Workdir/linux-source-2.6.22/Documentation/dvb$
> sudo perl get_dvb_firmware nxt2004
> --18:06:05--  http://www.aver.com/support/Drivers/AVerTVHD_MCE_A180_Drv_v1.2.2.16.zip
>            => `AVerTVHD_MCE_A180_Drv_v1.2.2.16.zip'
> Resolving www.aver.com...
> Connecting to www.aver.com||:80... connected.
> HTTP request sent, awaiting response... 200 No headers, assuming HTTP/0.9
> Length: unspecified
>     [ <=>
>                               ] 205           --.--K/s
> 18:06:10 (12.03 MB/s) - `AVerTVHD_MCE_A180_Drv_v1.2.2.16.zip' saved [205]
> unzip failed - unable to extract firmware at get_dvb_firmware line 381.
> """"""""""""""""""""""""""""""""

"No headers, assuming HTTP/0.9
Length: unspecified"

I have no idea why you are receiving that first part, but obviously it is in relation to the http protocol..other then that, I know nothing about it (nor hold any interest in http mumbo jumbo).

The "Length: unspecified" bit it pretty straightforward.  If you compare your output to mine, you will see that in my case the file length for the transfer was specified as 156,028 bytes and, indeed, that is what was saved to disk.  In your case, a whooping 205 bytes was saved to disk.

Lets have a look at two parts of the get_dvb_firmware script:

lines 278-294:

sub nxt2004 {
    my $sourcefile = "AVerTVHD_MCE_A180_Drv_v1.2.2.16.zip";
    my $url = "http://www.aver.com/support/Drivers/$sourcefile";
    my $hash = "111cb885b1e009188346d72acfed024c";
    my $outfile = "dvb-fe-nxt2004.fw";
    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);


    wgetfile($sourcefile, $url);
    unzip($sourcefile, $tmpdir);
    verify("$tmpdir/3xHybrid.sys", $hash);
    extract("$tmpdir/3xHybrid.sys", 465304, 9584, $outfile);


and lines 376-83:
sub unzip {
    my ($sourcefile, $todir) = @_;

    $status = system("unzip -q -o -d \"$todir\" \"$sourcefile\" 2>/dev/null" );
    if ((($status >> 8) > 2) || (($status & 0xff) != 0)) {
	die ("unzip failed - unable to extract firmware");

Evidently it is the unzip operation that fails in the chain --- (and even if unzip worked, the next two steps (verify the file hash  and the actual extraction of the firmware) would surely have failed anyway given your download resulted in a 205 byte sized AVerTVHD_MCE_A180_Drv_v1.2.2.16.zip file.

So why is unzip failing?  I don't know -- one of those 82 thousand errors that unzip outlines ... not that it matters anyway (i.e given the 205 byte file ... which is likely malformed and the reason that causes unzip to bork)

> I have a ATSC-110 at hand, without that firmware, I can not use it.
> Would you please send me a copy of that firmware?

As per my previous message outlining the reasons why LinuxTV doesn't 
host the various firmwares, you do realise that you are now asking me in 
a public mail list to distribute software for which I don't have such 
rights to do so .....

Great! Way to go Kevin -- Now I've got Interpol agents bugging my phone 
lines, intercepting my emails, and placing tails on my every movement.
 (In an effort to give these law-do-gooders the slip, the mailing list 
user formerly known as CityK will now be known as CityL .... that should 
do the trick).  :P

More information about the linux-dvb mailing list