Building the DRI
Brian's Guide
Brain wrote up a set by step set of instructions
for what he did to setup the 3dfx version of the DRI on his machine. Brian's quick and dirty instructions for compiling, installing, and testing the Voodoo 3 driver
What do I do with this stuff?
Prerequisites
You'll be much happier if you have a faster net connection. There's a
lot of files to download from SourceForge. On my 384k DSL line it takes
about 10 minutes to download a whole tree.
You'll be happier if you have a fast processor. On a PIII-550, it takes
about half an hour to do a make World.
Finally, you'll need about 400MB to do a full build of the X server.
- Glide3x. You can pick up glide3x from SourceForge or
from the DRI resources page
You must install the library and the headers before compiling X.
- To start, you must checkout a rather large X tree. You'll
only need to do this once, so it may be worthwhile to do this at
night.
cvs
-d:pserver:anonymous@cvs.dri.sourceforge.net:/cvsroot/dri login
cvs
-z3 -d:pserver:anonymous@cvs.dri.sourceforge.net:/cvsroot/dri co xc
- Next you'll need to build all of X. To do this,
you must
cd xc/xc
make World |& tee /usr/tmp/Make.World
- When the compile completes you'll find you've created an X
server and a set of OpenGL libraries. Check /usr/tmp/Make.World. Search
for '***'. You shouldn't find it. If you do, you've had some sort of
compilation error.
- Installing this is sort of tricky. It is probably easiest
to start with a binary installation. (You can get the libglide3.so from the resources page) Once the binary
installation is complete you want to install the server by doing, as
root,
cd xc/xc/programs/Xserver
make install
Next
you'll need to copy the OpenGL library into place by doing
cd
xc/lib/GL
make install
Finally, you make want to fix the
language support by doing
cd nls
xmkmf
make
make
install
- Next you'll need to build and install the device
driver.
cd
xc/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel
make -f
Makefile.linux
This creates a tdfx.o module. Now you'll need to
install the module. As root, you can do
/sbin/insmod tdfx.o,
but you should probably make this part of your default startup.
- Once the basic is build is done and installed, you should be
able to run 3D applications in a window. This completes the largest
portion of the setup work.
- If you want to work on the 3D acceleration, then you can
concentrate on the code in xc/xc/lib/GL. You can do compiles at that
level and create new versions of the libGL.so.1.2 files. You can then
install that as above to test with it.
- If you want to work on the tdfx 2D driver, you can
concentrate on the code in
xc/xc/programs/Xserver/hw/xfree86/drivers/tdfx. Doing a build at that
level will create the loadable tdfx_drv.o. You can then copy this file
to /usr/X11R6/lib/modules/drivers and restart your X server to test
it. If you're doing a lot of work in the X server itself then it is
worthwhile to set BuildLoadableServer NO and DefaultCCOptions -Wall -g,
in xc/xc/config/cf/host.def. Debugging a static server is much easier.
- If you're interested in the kernel module then concentrate
on the code in xc/xc/programs/Xserver/hw/xfree86/os-support/linux/drm.
- If you're interested in the DRI in general, then you need to
look at all of the above. Those are the three major pieces that make up
any DRI driver.