· News
   · About
   · Install
   · Download
   · F.A.Q.
   · Status
   · Docs/specs
   · Links

Hosted by SourceForge Logo


At some point I got distracted and failed to commit my changes to cvs. What you find there is not going to work on a modern kernel, and you may not be able to find the prerequiste kraxel patches to use cvs with the 2.4 kernel.

Parts of what you find below ( patching and compiling ) should be disregarded, while the later parts about configuration and watching TV are still somewhat relevant.

Further details, and a HOWTO on installation are here.


  • CVS. You need this to get the v3tv drivers or you can go to the download page and download a cvs snapshot. This might not be as updated as the the cvs version.
  • Linux kernel version 2.4.x, or 2.6.x, with the appropriate module utilities.
  • Alternatively, you can also use kernels from the 2.2.x series, but it's not recommended to use older kernels than 2.2.18. You will need to specify a date when you check out from cvs. Try "December 1, 2003" to start, and work back.
  • If you use a 2.2.x kernel, you also need to install i2c drivers version 2.5.2 or later. The i2c drivers included with some current distributions won't do it, because their i2c drivers are lacking some necessary functions.
  • I2C needs to be compiled in the kernel. There is a unified patch for I2C 2.8.3 for the latest 2.4.x kernels along with instructions.
  • X-windows (as recent as XFree86 4.3.0) with a TV program. In theory you should also be able to use the framebuffer for displaying TV.

TV-IN Instructions

  1. Get the kernel from, say, ftp.kernel.org and unpack into /usr/src/linux. Enable Video for Linux support (CONFIG_VIDEO_DEV=[m/y]). With patches, the in kernel drivers for msp3400, tuner, tvmixer, and bt869 will attach to the i2c-voodoo3 kernel module. If you have other Radio Adaptors or Video Adaptors installed, configure them now. If your kernel is from the 2.4.x series, enable i2c support, preferably as modules.
    Do not enable "Set version information on all module symbols" (#CONFIG_MODVERSIONS is not set) as this could cause general heartache related to unresolved symbols, etc.
    Compile as usual, install and reboot your new kernel.

  2. If you use a kernel from the 2.2.x series, compile and install the i2c drivers as modules as instructed in their documentation.

  3. Tell your your X-server to leave some video memory free for the video overlay. Put "VideoRam 15084" in the Device section of your XF86Config file. If you intend to capture video, you should leave even more video memory free. Then use "VideoRam 11484" instead.

  4. Also put 'Option "SWCursor"' in the Device section. This will prevent the picture from turning pink when the mouse moves.

  5. Configure the Makefile according to your needs. If you do not intend to use TV out, then uncomment the line that says: "# EXCLUDE_TV_OUT=yes

  6. Now, you are ready to compile, install and load the drivers. Use the Makefile.
              make install
              make load

  7. You should see a successful load. Running "/sbin/lsmod" should display
              Module                  Size  Used by
              tvmixer                 4032   0 (unused)
              msp3400                14208   1
              tuner                   3648   1
              v3tv                   23296   1
              vpx322x                 8272   0 [v3tv]
              i2c-algo-bit            7296   1 [v3tv]
              videodev                4640   3 [v3tv]
              i2c-voodoo3             2936   2
              i2c-core               12496   0 [tvmixer msp3400
                                                tuner v3tv vpx322x 
  8. Start your favourite TV program and enjoy.

  9. These statements in module.conf will load the drivers when the mixer is first touched. The 'below' statement makes it all happen. Loading can be tied to the video device by using a 'below' and 'above' statement. I'll update with that method later.
    alias char-major-89 i2c-dev
    alias sound-slot-0 es1370
    post-install sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2>&1
    pre-remove sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1
    alias sound-slot-1 voodoo-mixer
    below sound-slot-1 videodev v3tv vpx322x voodoo-tuner voodoo-msp3400
  10. Here is one way to set the whole thing up in /etc/rc.d/rc.local. In your /etc/rc.d/rc.local file add the following lines:
              /sbin/insmod /lib/modules/2.2.16/misc/i2c-core.o
              /sbin/insmod /lib/modules/2.2.16/misc/i2c-algo-bit.o
              /sbin/insmod /lib/modules/2.2.16/misc/videodev.o
              /sbin/insmod /lib/modules/2.2.16/misc/vpx322x.o
              /sbin/insmod /lib/modules/2.2.16/misc/v3tv.o ddc=0
              /sbin/insmod /lib/modules/2.2.16/misc/voodoo-tuner.o
              /sbin/insmod /lib/modules/2.2.16/misc/voodoo-msp3400.o
              /sbin/insmod /lib/modules/2.2.16/misc/voodoo-mixer.o
  11. To let xawtv know about the tvmixer, add to ~/.xawtv :
            mixer = /dev/mixer1:vol
    Assuming the tvmixer is /dev/mixer1, 'a' should mute, and keypad '+' and '-' should adjust volume.

TV-OUT Instructions

Compile and install the lm_sensors2 drivers drivers from http://www.lm-sensors.nu/~lm78/

Add these modlines to your XF86config:

     ModeLine "640x480NTSC"  28.195793   640  656  658  784  480  520  525  600
     ModeLine "800x600NTSC"  38.769241   800  812  814  880  600  646  649  735


     ModeLine "640x480PAL"   29.50       640  675  678  944  480  530  535  625
     ModeLine "800x600PAL"   36.00       800  818  820  960  600  653  655  750

Add those resolutions to your Screen section and Restart X.
  1. Switch to the resolution of choice.
  2. Do a -> 'modprobe bt869'
  3. Do a -> 'modprobe i2c-voodoo3'
  4. Do a -> 'echo "800 600" > /proc/sys/dev/sensors/bt869-*/res' (or "640 480", but that's default)
  5. If TV output looks funny then do a -> 'rmmod i2c-voodoo3' and got to step 3

This has been testing on PAL and NTSC.

"BTW- My monitor doesn't like these entries very much, and as I've read: don't run your monitor out of spec or else it will burst into fire. So, having the monitor turned on while in any of these modes is at your own risk. (I've never heard of a monitor breaking from this, but it seems to be fashionable to warn about it.)"

I found both resolutions (640x480 and 800x600) to cause a lot of discolorization and bad horiztonal and vertical sync. The sync you'll have to adjust with your monitor settings. The discoloration I was able to fix only in 640x480 doing the following:

  1. run xvidtune
  2. click on auto (turn it on)
  3. click on test

It will jump to a test scan rate then jump back; when it jumps back the discoloration should be gone and the TV output unaffected.

This doesn't seem to help for 800x600 -- I should probably just turn off the monitor :)