Pick a Free OS

User login

Navigation

Quaking on Linux

But wait, John Carmack put in a lot of work into Quake II. There’s an awesome OpenGL mode that you just have to see to believe. It takes a little work but the results will blow you. In any case, the heavyweight of the lot--Quake 3--requires OpenGL support.

Here, we will be working with XFree86 4.0.2, kernel 2.4.3 and the Matrox G400 16MB. XFree86 >=4.0 provide the DRI (Direct Rendering Infrastructure), where essentially, the application, bypasses the X server and talks directly to the hardware. In kernels >=2.3 AGP support has been included. This has also been back-ported to some 2.2 kernels. Distributions like SuSE do provide the agpgart module.

Do a “make menuconfig” and go into “Character Devices”. Go down to the bottom and enable AGPGart support. Compiling it into the kernel is the easy way. Below that, under Direct Rendering Manager, select the video card that you have in your machine. This is essential for DRI support in X. Again, this can be compiled in or compiled as a module. Compiling into the kernel is easier. Only the chipsets listed there are supported. Check here for a list of supported cards.

If you have compiled any or both of the above as a module, you need to ensure that the modules are loaded at startup. Add “modprobe agpgart” and “modprobe mga” to your startup scripts. Reboot and check that the modules are loaded correctly. The agpgart module should be loaded first.

Under XFree86 4.0 and above, there is a single X server for everyone, but there are modules (read: drivers) for your specific chipset. Matrox has provided a binary module for XFree86 4.0.2, you can download here. The latest Linux driver is beta 1.2.0. The minimum you require is mga_drv.o. The other file mga_hal_drv.o is required if you need to use some of the more exotic features of the card like Dual-Head, TV out etc.

To use the new module, just copy it over to /usr/X11R6/lib/modules/drivers. To be on the safe side, copy the original mga_drv.o to another location.

mv /usr/X11R6/lib/modules/drivers/mga_drv.o

/usr/X11R6/lib/modules/drivers/mga_drv.original

cp mga_drv.o /usr/X11R6/lib/modules/drivers

chmod 755 /usr/X11R6/lib/modules/drivers/mga_drv.o

Edit the file /etc/X11/XF86config and ensure that your “Device” section lists the driver as “mga”. It doesn’t matter whether you have a G200/400/450 - they all use the same module.

Section “Device”

Identifier “Matrox G400”

Driver “mga”

VideoRam 16384