Search:  
Gentoo Wiki

3dfx_Voodoo3


Please improve it in any way that you see fit, and remove this notice {{Cleanup}} from the article. For tips on cleaning and formatting see Cleanup process



Please format this article according to the guidelines and Wikification suggestions, then remove this notice {{Wikify}} from the article


This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related

Introduction

First of all, I have to disappoint you: this won't work with Kernel-2.6 (yet)!

My configuration:

Let's Get Started

First, you need to remove all i2c support from your kernel:

cd /usr/src/linux
make menuconfig

Go to: Character devices/I2C support/ Disable everything! Then delete the i2c modules:

rm -fr /lib/modules/`uname -r`/kernel/drivers/i2c/*

Also unmerge all versions of i2c and lm-sensors:

emerge -C i2c lm-sensors

Then go to the correct directories in the portage and install the newest versions. It is very import to do it this way, just emerging i2c and lm-sensors will not install the newest versions though ebuilds for newer versions do exist: I don't know why!

First, emerge i2c:

cd /usr/portage/sys-apps/i2c
emerge i2c-2.8.4.ebuild

Then do:

update-modules

Then emerge lm-sensors:

cd /usr/portage/sys-apps/lm-sensors
emerge lm-sensors-2.8.6.ebuild

Then:

update-modules

Ok, it should have installed with no problems. Now go to the "Monitor" Section in your /etc/X11/XF86Config and add these Modelines:

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

then search for the "Display" Subsection, and add:

Modes       "800x600PAL"

Save the file as /etc/X11/XF86Config.TV

Now create a file you use to start your TV-Out:

File: /bin/startv
 #!/bin/bash
 # -Craig-'s TV enable script for Voodoo3 3000 AGP
 # 04-06-25
 
 removemods()
 {
 rmmod i2c-voodoo3 >/dev/null 2>/dev/null
 rmmod bt869 >/dev/null 2>/dev/null
 rmmod i2c-algo-biths >/dev/null 2>/dev/null
 rmmod i2c-algo-bit >/dev/null 2>/dev/null
 rmmod i2c-proc >/dev/null 2>/dev/null
 rmmod i2c-dev >/dev/null 2>/dev/null
 rmmod i2c-core >/dev/null 2>/dev/null
 }
 
 removemods
 
 if [ ! -e /lib/modules/`uname -r`/kernel/drivers/i2c ]
 then
 echo "[ ] /lib/modules/`uname -r`/kernel/drivers/i2c does not exist."
 exit -1
 else
 echo "[*] using /lib/modules/`uname -r`/kernel/drivers/i2c"
 fi
 
 cd /lib/modules/`uname -r`/kernel/drivers/i2c
 
 echo "    loading modules:"
 for i in i2c-core.o i2c-dev.o i2c-proc.o i2c-algo-bit.o i2c-algo-biths.o
 do
 if [ ! -e $i ]
 then
  echo "    $i missing."
  removemods
  exit -1
 else
  echo -n "    $i found, loading..."
 
  if insmod $i
  then
   echo ok
  else
   echo failed
   exit -2
  fi
 
 fi
 done
 
 if [ ! -e ./chips/bt869.o ]
 then
 echo "[ ] /lib/modules/`uname -r`/kernel/drivers/i2c/chips/bt869.o missing."
 removemods
 exit -1
 else
 echo -n "[*] bt869.o found, loading..."
 cd chips
 if insmod bt869.o
 then
  echo ok
 else
  echo failed
  removemods
  exit -2
 fi
 fi
 
 if [ ! -e ../busses/i2c-voodoo3.o ]
 then
 echo "[ ] /lib/modules/`uname -r`/kernel/drivers/i2c/busses/i2c-voodoo3.o missing."
 removemods
 exit -1
 else
 echo -n "[*] i2c-voodoo3.o found, loading..."
 cd ../busses
 
 if insmod i2c-voodoo3.o
 then
  echo ok
 else
  echo failed
  removemods
  exit -1
 fi
 
 fi
 
 echo -n "    using proc interface..."
 
 if [ -e /proc/sys/dev/sensors/bt869-i2c-0-44/ntsc ] && [ -e /proc/sys/dev/sensors/bt869-i2c-0-44/res ]
 then
 echo 0 > /proc/sys/dev/sensors/bt869-i2c-0-44/ntsc
 echo "800 600" > /proc/sys/dev/sensors/bt869-i2c-0-44/res
 echo ok
 else
 echo "failed: /proc/sys/dev/sensors/bt869-i2c-0-44 does not exist."
 removemods
 exit -1
 fi

 # X starten:
 cp /etc/X11/XF86Config /etc/X11/XF86Config.backup
 cp /etc/X11/XF86Config.TV /etc/X11/XF86Config
 
 echo
 echo "    ::: starting X server :::"
 
 startx
 cp -f /etc/X11/XF86Config.backup /etc/X11/XF86Config
 
 echo
 removemods

You can save the script as /bin/startv, then you just have to enter startx for normal work oder startv if you want to watch a film on TV. The scripts is quick'n'dirty, I know...I am working on it and will add more error checking in the future!

EDIT: Error checking added to the script! The output of the script looks like:

Code: startv output
 [*] using /lib/modules/2.4.26-gentoo-r2/kernel/drivers/i2c
    loading modules:
    i2c-core.o found, loading...ok
    i2c-dev.o found, loading...ok
    i2c-proc.o found, loading...ok
    i2c-algo-bit.o found, loading...ok
    i2c-algo-biths.o found, loading...ok
 [*] bt869.o found, loading...ok
 [*] i2c-voodoo3.o found, loading...ok
    using proc interface...ok
 
    ::: starting X server :::
 
 This is a pre-release version of XFree86, and is not supported in any
 way.  Bugs may be reported to XFree86@XFree86.Org and patches submitted
 to fixes@XFree86.Org.  Before reporting bugs in pre-release versions,
 please check the latest version in the XFree86 CVS repository
 (http://www.XFree86.Org/cvs).
 
 XFree86 Version 4.3.0.1
 Release Date: 15 August 2003
 X Protocol Version 11, Revision 0, Release 6.6
 Build Operating System: Linux 2.4.26-gentoo-r2 i686 [ELF]
 Build Date: 22 June 2004
        Before reporting problems, check http://www.XFree86.Org/
        to make sure that you have the latest version.
 Module Loader present
 Markers: (--) probed, (**) from config file, (==) default setting,
         (++) from command line, (!!) notice, (II) informational,
         (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
 (==) Log file: "/var/log/XFree86.0.log", Time: Fri Jun 25 14:09:35 2004
 (==) Using config file: "/etc/X11/XF86Config"
 Using vt 7
 BScreen::BScreen: managing screen 0 using visual 0x23, depth 24

Finding the /sys entry

This is taken from http://www.realh.co.uk/linux_tv_howto/ar01s07.html (works on both 2.4 and 2.6 kernels)

if `uname -r | grep -q 2.6` ; then
    DEVDIR=/sys/devices/
else
    DEVDIR=/proc/sys/dev/sensors/
fi
DEVDIR="$(dirname $(find $DEVDIR -name svideo))"
echo 800 600 > $DEVDIR/res
echo 24 > $DEVDIR/depth
echo 1 > $DEVDIR/svideo
Retrieved from "http://www.gentoo-wiki.info/3dfx_Voodoo3"

Last modified: Sat, 30 Aug 2008 22:09:00 +0000 Hits: 15,985