Installing ivtv driver for PVR-350 card

Ubuntu Hoary Preview Release
Hauppauge PVR-350

if you don’t already have it, get the basic stuff for building a kernel module.
Get basics for building a kernel module

Following the instructions at Ubuntu Linux FAQ

$ sudo apt-get install build-essential linux-headers-`uname -r`

If you get an error like this,

make: *** /lib/modules/2.6.10-2-386/build: No such file or directory. Stop.
make: *** [all] Error 2

this is the bit you need to revisit.

Get ivtv module source

Get the latest stable tarball from Chris Kennedy’s site: (as of Feb 24th 2005)

Unpack it.

Build and install the module.

$ cd driver
$ make
$ sudo mv /lib/modules/`uname -r`/kernel/drivers/media/video/msp3400.ko ~/msp3400.ko.orig # (or any other place; or just delete it)
$ sudo make install

Create /etc/modutils/ivtv
Create this file as follows:

alias char-major-81 videodev
alias char-major-81-0 ivtv
options ivtv ivtv_debug=1 ivtv_std=2

Now, I think you ought to able to have this at the top of the ivtv file, and for it to automatically pick up this directory.


But that doesn’t work, so you’ll need to copy over the /lib/modules/2.6.10/extra directory into /lib/modules/`uname -r`/kernel/drivers.

Extract the firmware and put that in /lib/modules

Create /etc/init.d/ivtv
Create this file as follows:

modprobe ivtv
modprobe ivtv-fb # if using PVR-350 and framebuffer

Make it executable

$ sudo chmod +x /etc/init.d/ivtv

Set ivtv to load at boot

$ sudo update-rc.d ivtv defaults 12 # need to run this before gdm if using card for X output


  1. If you’re using the default kernel, then you’ll find the ivtv modules end up in /lib/modules/2.6.10, rather than /lib/modules/2.6.10-5-386. (for example). Which means that modprobe will fail, because it won’t be able to find the modules. Fix this by copying the directory across, and re-running depmod

    # cp -r /lib/modules/2.6.10/ivtv /lib/modules/2.6.10-5-386/kernel/drivers/video
    # depmod

13 thoughts on “Installing ivtv driver for PVR-350 card”

  1. I have almost the exact same setup as you. The only diffrence is no AMD64 just a Semptron processor. After going through your notes I still have not got TV out working. All I see on the tv screen is weird dianogal lines in multi colors. Also I never did have a /lib/modules/2.6.10/extra directory just a /lib/modules/2.6.10/ivtv but that is addressed in the gotcha’s. Do you have any more troubleshooting to add to help others and myself get things working?

  2. Hi, thanks a lot for this blog entry. I am new to Ubuntu (tho not Linux or MythTV), and these instructions were exactly what I was looking for. One note, however, I grabbed a newer version of the ivtv driver (ivtv-0.2.0-rc3i), and I didn’t end up with a ‘/lib/modules/2.6.10/extra’ directory.


  3. What does you xorg.conf file look like? How did you actaully get the output to the TV?

    I have expanded some on your instrustions some at my website but I am waiting to publish them until I get the x output going.

  4. I’ve added some instructions for getting X working on the TV-out from the PVR-350 card, and the full example xorg.conf file.

    I’ll add a couple of thoughts about troubleshooting too.

  5. I’m unable to do ‘make’ on the ivtv drivers in ubuntu. I do have the kernel source installed, but i get a huge output of thousands of errors on make:

    make[1]: Entering directory `/usr/src/linux-source-2.6.10′
    CC [M] /usr/src/ivtv-0.3.6i/driver/msp3400.o
    In file included from include/linux/module.h:10,
    from /usr/src/ivtv-0.3.6i/driver/msp3400.c:38:
    include/linux/sched.h:4:37: asm/param.h: No such file or directory

    asm/param.h is located in /usr/include, so I dont get whats going on, or how I can fix this compilation. Any help would be appreciated.

  6. “Firmware
    Extract the firmware and put that in /lib/modules”

    What do you mean with this? A little more info would be nice.

  7. Thanks for setting up this page. Just did this for my pvr350 using Ubuntu Breezy (5.10), with linux kernel 2.6.12-10-386 and ivtv 0.4.2. It still works (usuing slightly adjust directories), with the following differences (for me at least).

    1) There was no ‘extra’ directory in /lib/modules/[kernel version], so I didn’t need to move those modules anywhere.

    2) There was an ‘ivtv’ directory created under /lib/modules/[kernel version], and I had to copy this directory to /lib/modules/[correct kernel version]/kernel/drivers/. ( & do depmod)

    3) After rebooting, I was getting errors in dmesg saying

    ivtv0: unable to open firmware v4l-cx2341x-enc.fw
    ivtv0: did you put the firmware in the hotplug firmware directory?

    I had to copy the ivtv firmware from the /lib/modules directory to /usr/lib/hotplug/firmware; also there was a file called v4l-cx2341x-init.mpg in the ivtv-0.4.2 (source) directory that I also had to copy to /usr/lib/hotplug/firmware; I had to link the ivtv-fw-dec.bin and ivtv-fw-enc.bin firmware files to v4l-cx2341x-dec.fw and v4l-cx2341x-enc.fw, and make sure they were all executable. Then the errors stopped and the card worked.

    There is some further info here that might be useful:

  8. i am running ubuntu 6.06 with kernel 2.6.15-26-386 and using ivtv-0.4.6. I can capture video off the tuner and transfer the file to my laptop and play it just fine. When I execute dd if=/dev/video0 of=/dev/video16 bs=64k I get audio but no video. I also followed Rachel’s howto to get x working with my pvr-350 but I get these errors when executing startx

    Couldn’t open RGB_DB ‘/usr/X11R6/lib/X11/rgb’

    (EE) IVTVDEV_TST(0)Framebuffer id from dev /dev/fb1is 1
    (EE) IVTVDEV_TST(0)open /dev/video48 returned 7
    (EE) IVTVDEV_TST(0)get_fb returned 0 fbid 1
    bitsPerPixel=32, depth=24, defaultVisual=TrueColor
    mask: ff0000,ff00,ff, offset: 16,8,0
    Required symbol shadowAdd from module /usr/lib/xorg/modules/drivers/ivtvdev_drv.o is unresolved!
    Required symbol shadowSetup from module /usr/lib/xorg/modules/drivers/ivtvdev_drv.o is unresolved!
    Required symbol fbPictureInit from module /usr/lib/xorg/modules/drivers/ivtvdev_drv.o is unresolved!
    Required symbol fbScreenInit from module /usr/lib/xorg/modules/drivers/ivtvdev_drv.o is unresolved!
    Required symbol shadowAlloc from module /usr/lib/xorg/modules/drivers/ivtvdev_drv.o is unresolved!

    please help !?!?

Leave a Reply

Your email address will not be published. Required fields are marked *