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
- 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
- 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
- I2C needs to be compiled in the kernel. There is a
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.
- 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.
- If you use a kernel from the 2.2.x series, compile and install
the i2c drivers as modules as instructed in their documentation.
- 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.
- Also put 'Option "SWCursor"' in the Device section. This will prevent
the picture from turning pink when the mouse moves.
- 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
- Now, you are ready to compile, install and load the drivers.
Use the Makefile.
- You should see a successful load. Running "/sbin/lsmod" should
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
- Start your favourite TV program and enjoy.
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
- 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
/sbin/insmod /lib/modules/2.2.16/misc/v3tv.o ddc=0
- 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.
Compile and install the lm_sensors2 drivers drivers from
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.
- Switch to the resolution of choice.
- Do a -> 'modprobe bt869'
- Do a -> 'modprobe i2c-voodoo3'
- Do a -> 'echo "800 600" > /proc/sys/dev/sensors/bt869-*/res'
(or "640 480", but that's default)
- 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:
- run xvidtune
- click on auto (turn it on)
- 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 :)