I finally got my 3dfx Voodoo3 2000 card working (with acceleration) under Linux on my macintosh, using XFree 4. Since it does not seem that easy to achieve that, I've put this little page for anyone who would have a 3dfx card and who'd like to get it working. Tested distributions are SuSE PPC 7.0, Linuxppc 2000 (Q1), Linuxppc 2000 Q4 and YellowDog Linux 2.0.
Linux on PowerPC & 3DFx Voodoo3 Cards mini-HOWTO
Most recent messages are written in red. (small update 09/july/20001)
[Il existe une version francaise de cette page, traduite par Etienne Herlent]
There is currently (early 2001)
a BUG in the 3dfx driver (XFree 4.02), which causes complete
system crash (no kernel messages-hard reboot only). This occurs only
when you switch from X to a console using OPTION(or APPLE)-CTRL-Fx.
The only way around this is not to switch between X and the consoles with
This is a relatively minor drawback to the accelerated driver which works very well otherwise. Note that you can still exit X to console, that will not crash the sytem (well, you have to boot in text mode to do that, too). Even with this bug, using the accelerated driver is definitly worth it.
If you have any remark about this page, if something said here does not work, please let me know by sending an email (mailto:Vincent.Favre-Nicolin@cryst.unige.ch) , and I'll modify the page accordingly.
3D support: I'm only interested in 2D, so there is nothing about 3D (glide) here.
Voodoo4/5: I only have a Voodoo3. So I do not know of the exact status for Voodoo4 or Voodoo5. The driver has been updated for Voodoo5, but has not been finalized yet. Ani said he had a Voodoo5 working, but there remain configuration problems. Notably it should only work in 8bpp so far.
Questions: I'm definitly not a developper of 3dfx modules / kernel-I don't know anything about hardware programming. So don't bother asking me programming questions. All I can do is say how I managed to get things working. For more technical questions, see the linuxppc.org mailing lists.
My config (if that matters) : a macintosh 7300 with a G3/365
+ a 3dfx Voodoo3 2000 card + a Formac ProRaid I UW SCSI card (used to boot
linux) + an USB Card for the optical mouse.
XFree 3.3.6 + tdfx driver from XFree 3.9.16 + kernel:
Use the (now old-more than one year ago) XFree 3.3.6 hack (a XFree driver 3.9.16 in fact) by Kostas Gewrgiou (who did a large part of the 3dfx port to linuxppc), with a supplied kernel. You can find it all in his original message. The only problem that I had with the supplied kernel is that it did not have (unless I'm mistaken) ppp support. But it did work.
need three things to get your 3dfx card working : (1) a tdfx driver (only
available from XFree 4), (2) kernel support for this driver, and (3) a
working XF86Config file. So there are several ways to do it...
You can get XFree 4.02 by two ways :
There you are. After 1 to 2h happily waiting, you should have a working XFree86 configuration.
Important Note: you need to explicitly
give video settings as kernel arguments. If you don't do
that, you will end up with a seemingly frozen system, with a blank screen.
Thus you must add kernel arguments such as "video=tdfx:640x480-8@60".
In BootX, this needs to be written in the 'More kernel arguments' line.
Other available video settings (I use 1024x768-8@60...) can be
found in /usr/src/linux/drivers/video/tdfxfb.c.(Note:
you will still be booting if you do not supply video settings, but
you won't see it. You can, however, 'blindly' log in and type startx, which
work. You will not be able to use consoles, that's all.).
For 2.4 kernel, you also must disable console acceleration, so arguments
are (for example) 'video=tdfx:640x480-8@60,noaccel). Without that the
characters will all be wrapped up, making console useless (but X should
The /etc/X11/XF86Config (or /etc/X11/XF86Config-4,
that one is loaded first if present by XFree 4)
You can use either :
If you don't do this you will only get your configuration to work in 8bpp.VideoRam 16384
Once these automatically generated files work, you can change the modelines at your convenience. Again, be careful when doing that ! You can also change the default color depth. Note that 32 bit does not work for 3dfx (8 and 24 bit are fine, though-maybe 16).
Note1: if you experience X server crashes, you can try changing the modelines, and you may also want to comment out some of the modules. In my case, the "v4l" (video for linux) module, activated by Xautoconfig, made my X server crash without an clear explanation.
Note2: if you experience the annoying 'respawn' of the X Server with Linuxppc (the server indefinetly tries to restart), then reboot (with ctrl-command-delete or sthg like that), and start by giving 'single' as kernel argument. Then vi /etc/inittab and change the last lines to start in runlevel 3 instead of 5 (for linuxppc). Reboot and the X server will not be automatically started, so use work on your XF86Config and 'startx' to test your XF86Config-4 file. You can always kill an X server by command-control-backspace.
Note3: In fact most of the struggle to get valid modelines should be over with XFree 4.0, since in fact you are not required to give modelines any more. See for example my new XF86Config-4 without modelines. This works since XFree must have an internal databse of available resolutions (note that it does not have 1152x870, but 1152x864 is fine)
How can you do that?Note that this is not true only for 3dfx, since (for example), it also works for iBooks... Your mileage may vary...1) Boot in consoleEdit the /etc/X11/XF86Config-4 file and
2) Run Xautoconfig4 in whatever resolution you are.3) remove the modelines entriesHere you are ! startx and have fun. On my computer, it worked with resolutions 640x480, 800x600, 1024x768, and 1152x864. Working frequencies seems to be 75 and 85 Hz.
4) Enter the correct HorizSync and VertRefresh for your monitor. (this is important if you do not want to fry your monitor...)
5) In the Section "Screen", enter your desired resolution and the desired DefaultDepth (you'll want 24 bpp).
Note4 (FAQ) : I can create a working XF86Config
file with full colors, but it gets overwritten every time I boot !
This is because you are automatically running Xautoconfig at boot time, and it rewrites you precious config file... Just deactivate Xautoconfig by using 'ksysv' (you must know what you are doing with thi editor...). If it is not in the SysV editor, then look in the startup scripts where it is launched (somewhere around /etc/rc.d for YellowDogLinux users).
Acknowledgements: to all people who contributed to XFree
(ppc or not) development. Specifically for this page, the following people
provided me with information about software or their own voodoo
experience: Ani Joshi, Tom Rini, Stefan Röttger, Jens Nielsen, Marc
Ozon and Anders Baden Nielsen. Also thanks to Etienne Herlent for the french
Voila. Hope that helps someone out there, in deep
This page created 12/12/2000.
Hits since 11/01/2001: 26868
My laboratory home page and my personal home page.