Voodoo 3 Setup
Using the lm_sensors & i2c packages it is possible to run X on the tv-out to display freevo. Download and install from http://secure.netroedge.com/~lm78/ first. This was tested using Fedora.
Kernel Modules
In the 2.4 kernel the card uses the following modules located under Character devices in the kernel configuration.
i2c-core, i2c-algo-bit, i2c-voodoo3, i2c-proc, i2c-dev, bt869, eeprom.
These can be compiled into the kernel or as called as modules using modprobe.
XF86Config Configuration
The output from the card can be displayed in 640x480 or 800x600 both in only depth 16 colour. The correct settings must be added to '/etc/X11/XF86Config' as the card requires special modelines. They are -
**** I've managed to get the TV-Out work at 24 bit color depth with my Voodoo3 3000 ****
**** you can see the difference right away, just echo 24 > /proc/sys/dev/sensors/bt869-i2c-1-44/depth
**** and yes, I tried 32 and it didn't work
***** The modeline "720X576PAL" worked best for my TV - no black borders - unfortunately a little is overscanned.
[...] ModeLine "640x480PAL" 29.50 640 675 678 944 480 530 535 625 ModeLine "800x600PAL" 36.00 800 818 820 960 600 653 655 750 ModeLine "720x576PAL" 27.50 720 744 800 880 576 581 583 625 ModeLine "640x480NTSC" 28.195793 640 656 658 784 480 520 525 600 ModeLine "800x600NTSC" 38.769241 800 812 814 880 600 646 649 735 [...] Subsection "Display" Depth 16 Modes "1280x1024" "800x600PAL" "800x600" "720x576PAL" "640x480PAL" "640x480" # Or for NTSC: #Modes "1280x1024" "800x600NTSC" "800x600" "640x480NTSC" "640x480" [...] [...]
BT869 Chip Configuration
Then the card needs to be set to use a resolution and whether to use ntsc or not.
Manual Configuration
This can be done manually be running
echo 0 > /proc/sys/dev/sensors/bt869-i2c-1-44/ntsc echo "640 480" > /proc/sys/dev/sensors/bt869-i2c-1-44/res
or
echo 0 > /proc/sys/dev/sensors/bt869-i2c-0-44/ntsc echo "800 600" > /proc/sys/dev/sensors/bt869-i2c-0-44/res
Auto Configuration
This can be automated on startup using the '/etc/sysctl.conf' file. Just add to the file
[...] dev.sensors.bt869-i2c-0-44.ntsc = 0 dev.sensors.bt869-i2c-0-44.res = 800 600 [...]
This will update the bt869 chip just before X loads.
Kernel 2.6
The bt869 chip driver has not been ported to the 2.6 kernel yet. I2c and lm_sensors have however been fully built in barr this and some other external drivers.
Quick 2.6 hack: make sure i2c_voodoo3 and i2c_dev are built and loaded.
i2cset 1 0x44 0xC6 0x001 & i2cset 1 0x44 0x0ba 0x80 & i2cset 1 0x44 0xa0 0x80 & i2cset 1 0x44 0xba 0x20 & i2cset 1 0x44 0x0C6 0x001 & i2cset 1 0x44 0xC4 0x1 & i2cset 1 0x44 0xC8 0x0 & i2cset 1 0x44 0xa0 0x91 & i2cset 1 0x44 0xC4 1 & i2cset 1 0x44 0x6c 0x80 & i2cset 1 0x44 0xba 0x80 & i2cset 1 0x44 0xB8 2 & i2cset 1 0x44 0xa0 0x91 & i2cset 1 0x44 0xba 0x20 &
Changes Depth to 16Bpp and res to 800 x 600 NTSC
The &'s are required becuase of a 5 second delay built into i2cset. (All of them must be completed withen seconds of each other.)
The following made my 24Bpp 720x576PAL S-Video-out work (perhaps you have to call it twice):
i2cset 1 0x44 0xC6 0x001 & i2cset 1 0x44 0x0ba 0x80 & i2cset 1 0x44 0xa0 0x80 & i2cset 1 0x44 0xba 0x20 & i2cset 1 0x44 0x0C6 0x001 & i2cset 1 0x44 0xC4 0x1 & i2cset 1 0x44 0xC8 0x0 & i2cset 1 0x44 0xa0 0x91 & i2cset 1 0x44 0xC4 1 & i2cset 1 0x44 0x6c 0x80 & i2cset 1 0x44 0xba 0x80 & i2cset 1 0x44 0xB8 2 & i2cset 1 0x44 0xC8 0x0&i2cset 1 0x44 0x6e 0x00&i2cset 1 0x44 0x70 0x02&i2cset 1 0x44 0x72 0x00&i2cset 1 0x44 0x74 0x01&i2cset 1 0x44 0x76 0xe0&i2cset 1 0x44 0x78 0xd0&i2cset 1 0x44 0x7a 0x80&i2cset 1 0x44 0x7c 0x98&i2cset 1 0x44 0x7e 0x58&i2cset 1 0x44 0x80 0x20&i2cset 1 0x44 0x82 0x16&i2cset 1 0x44 0x84 0x22&i2cset 1 0x44 0x86 0xa6&i2cset 1 0x44 0x88 0x00&i2cset 1 0x44 0x8a 0x78&i2cset 1 0x44 0x8c 0x80&i2cset 1 0x44 0x8e 0x03&i2cset 1 0x44 0x90 0x71&i2cset 1 0x44 0x92 0x2a&i2cset 1 0x44 0x94 0x40&i2cset 1 0x44 0x96 0x0a&i2cset 1 0x44 0x98 0x00&i2cset 1 0x44 0x9a 0x50&i2cset 1 0x44 0x9c 0x30&i2cset 1 0x44 0x9e 0x0&i2cset 1 0x44 0xa0 0x8c&i2cset 1 0x44 0xa2 0x24&i2cset 1 0x44 0xa4 0xf0&i2cset 1 0x44 0xa6 0x57&i2cset 1 0x44 0xa8 0x82&i2cset 1 0x44 0xaa 0x49&i2cset 1 0x44 0xac 0x8c&i2cset 1 0x44 0xae 0xb4&i2cset 1 0x44 0xb0 0xe0&i2cset 1 0x44 0xb2 0x45&i2cset 1 0x44 0xb4 0x29&i2cset 1 0x44 0xb6 0x00&i2cset 1 0x44 0xc4 0x01&i2cset 1 0x44 0xc6 0x00&i2cset 1 0x44 0xc8 0x40&i2cset 1 0x44 0xca 0xc0&i2cset 1 0x44 0xcc 0xc0&i2cset 1 0x44 0xd6 0x00&i2cset 1 0x44 0x0C6 0x000&i2cset 1 0x44 0xC4 1 & i2cset 1 0x44 0xba 0x20