[pvrusb2] Trouble installing pvr-usb2 standalone driver for new hvr-1950

Mike Isely isely at isely.net
Sun Feb 7 15:24:32 CST 2010

On Sun, 7 Feb 2010, Jesse Rimshas wrote:

> Hello,
> I wonder if you can point me in the right direction. I just recieved a brand
> new hauppage hvr-1950 (75111LF REV D1F5) a few days back and I'm about ready
> to return the dang thing. I'm unsure whether I have a version which requires
> 16kb firmware or not.
> I'm running Ubuntu 9.10 with generic kernel 2.6-31-19. Most of the time my
> Hauppage is not recognized and dmesg returns the following:
> [   14.356312] usb 1-6: firmware: requesting v4l-pvrusb2-73xxx-01.fw
> [   14.423103] pvrusb2: ***WARNING*** Device fx2 controller firmware seems to be missing.
> [   14.423156] pvrusb2: Did you install the pvrusb2 firmware files in their proper location?
> [   14.423162] pvrusb2: request_firmware unable to locate fx2 controller file v4l-pvrusb2-73xxx-01.fw
> [   14.423167] pvrusb2: Failure uploading firmware1
> [   14.423171] pvrusb2: Device initialization was not successful.
> [   14.423174] pvrusb2: Giving up since device microcontroller firmware appears to be missing.

If the driver is complaining that the firmware seems to be missing, then 
the file really isn't there or you've put it in the wrong place.  You 
need to obtain or extract the firmware file.  Please see here: 

It's possible that your distro vendor might have also packaged the 
firmware for you but I can't vouch for that nor can I give instructions 
about it, if it exists there.  The instructions on the web page I 
referenced above works generically, not distro-specific.

> Last night it somehow got recognized by the kernel (and stayed that way
> through multiple reboots until I unplugged and replugged it this morning),
> but w_scan yielded no frequencies. I checked and indeed, the firmware file
> in firmware/dvr/ was 8kb. Is it possible the system somehow randomly
> "grabbed" the wrong firmware, or partial firmware, but this was enough to
> allow me to w_scan without results? That's the only explanation I'm coming
> up with.

Have you tried the HVR-1950 under Windows?  Because if you did, and then 
moved to Linux without power cycling the device then that's probably why 
it worked for you for a little while.  The pvrusb2 driver attempts to 
determine if the FX2 firmware is already loaded; if so it skips that 
part of the boot process.  So if you ran it under Windows once, then the 
Windows driver would have loaded the firmware for you.  Obviously that 
isn't a solution, but it might explain what you observed.

The recent problem that has developed is that Hauppauge has started 
distributing a 16KB FX2 firmware image.  The pvrusb2 driver has (had) a 
sanity check built into it which would have prevented the 16KB firmware 
image from being loaded.  This is not a problem in the Linux kernel; 
just a bit of aggressive checking within the pvrusb2 driver.  If you 
were getting burned by that problem, the error you would have seen would 
have looked like what's on the forum you mentioned (that poster is 
definitely having this problem):

Feb  4 14:56:24 barada kernel: [519626.734736] pvrusb2: wrong fx2 firmware size

I fixed this several months ago and the current standalone driver 
handles this just fine.  In addition, the changes for this have been 
pushed into v4l-dvb and from there it's been pulled into the upcoming 
2.6.33 kernel.  Unfortunately this change didn't make it into 2.6.32 
because the problem was only discovered just before the kernel was 
released.  It also isn't in 2.6.31 because that kernel predates the fix.  
There's a process to get further stabilization fixes into already 
released kernels, but I tried to do that for 2.6.31.x and failed.  The 
v4l-dvb maintainer complained at the time that my trivial change for 
fixing this would not compile for him so he refused to take it.  I tried 
to figure what stupid thing was going wrong there but ran out of 
patience, unfortunately.  So to deal with 16KB FX2 images, you're left 
with one of these choices:

1. Wait for 2.6.33 to be released.

2. Build and use the standalone pvrusb2 driver.

3. Build a v4l-dvb Mercurial snapshot and use that (which has the fix).

4. Find an FX2 firmware image that is 8KB.

That last choice is probably going to be the easiest.  Again I refer you 
to http://www.isely.net/pvrusb2/setup.html#Firmware, where you'll find a 
reference to a usable FX2 firmware image at this location: 

> So if I need the 16kb driver, which it appears I will, I'm afraid I'm going
> to need help installing it. There's not a lot out there on the forum for
> newbies since this is a fairly recent issue, and I've only been using Linux
> for a couple of months. Is there any chance you could point me in the right
> direction of how to compile standalone driver, and how to install the
> firmware provided on this site, in a GUI like Ubuntu? (For example, I've
> read the setup instructions several times but I'm really sure what it means
> to compile the driver reasonably close to a suitable source tree.) Another
> gentleman is having the same issue. You can see our thread over at
> http://ubuntuforums.org/showthread.php?t=1398842
> Sorry for being distribution specific, I'm really very new to Linux.

I can't really help you with Ubuntu, but based on everything you've said 
I think your problem is that the firmware file is simply not there - or 
it's just in the wrong place for the kernel to access it.  If it's not 
there, then see the isely.net URL above for information on getting a 
copy.  If it is there but in the "wrong" place, then I can't help you.  
The correct location tends to be distro-specific.  I can tell you that 
in Debian that location would be /usr/lib/hotplug/firmware but that's no 
guarantee for how Ubuntu is configured.

As for building the standalone driver, it looks like you don't need to 
do that.  But if you did, then yes it can be a bit tricky.  There's 
really nothing I can do to further simplify the process: It all really 
comes down to installing the kernel source tree which corresponds to the 
kernel you are running (unfortunately that is VERY distro-specific), 
then running "make" within the standalone driver in such a way that it 
points to the source tree.  It's all here:


I'm sorry if the instructions seem cryptic, but you have to realize that 
it's basically impossible to write distro-agnostic instructions without 
leaving something out for someone's specific case.  I think that what is 
there is pretty simple (basically "install kernel sources", "run make"), 
but as the author I have a rather jaded viewpoint.  Plus these 
instructions are somewhat tilted towards someone who has built kernel 
modules before.  Unfortunately that doesn't help a Linux newbie very 
much - which is why the in-kernel driver is probably best to use...



Mike Isely
isely @ isely (dot) net
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8

More information about the pvrusb2 mailing list