[pvrusb2] Trouble installing pvr-usb2 standalone driver for new hvr-1950
isely at isely.net
Sun Feb 7 15:24:32 CST 2010
On Sun, 7 Feb 2010, Jesse Rimshas wrote:
> 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
> 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...
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