Repository 32bit  Forum
Repository 64bit  Wiki

ATI Radeon graphic accelerator on Slackware 9.1

Da Slacky.eu.

Indice

Intro

In this basic tutorial I'll try to explain how to install ati radeon drivers on Slackware linux 9.1 (of course with full 3d acceleration enabled) to help that people (like me :) that are still searching for a simple solution to have this card full working on their linux boxes...

Disclamer

Informations in this how-to are taken from various documents found on the net, and from my personal experience. they can be erroneus, incomplete, useless or stupid, it is your job take from this tutorial something good. I can only tell you how i have done, but you know.. every linux box has its own personality.. this is the fun :D

what about agp

As I can see, most installation related problems, are originated by erroneus AGP controller drivers installation. So, before starting this tutorial, i think that should be usefull understand something about this. AGP (Advanced Graphics Port) is an hardware interface for the acceleration of graphics to a display such as a monitor. AGP video cards display three-dimensional graphics faster than peripheral component interconnect (PCI) cards, just because it faster data transfer rate. AGP comes in multiple modes, rated on the multiplier used based on the PCI bus speed. Each mode still runs at the normal 66 MHz AGP bus speed, but data is transferred at different times per clock cycle. For example, a 2X AGP system transfers data twice per clock cycle, whereas a 4X system transfers data four times per clock cycle. The problems in our situation is originated by using agp 8x that are not supported by 2.4 kernels, and so we need to compile unofficial agp drivers to have our port working at full power.

Unofficial Driver

I believe that ati official driver should do its job well, however i havn't already tested it and i suggest you to use unofficial RADEON drivers that can be found there: http://www.schneider-digital.de/html/download_ati.html In my case, RADEON9500, i have downloaded "glx1_linux_X4.3.zip", if you are using different version of XFREE86, select appropriate driver.

Setting up Slackware Kernel

As i say before, AGP 8x is not supported by 2.4 kernels, and so we need to disable AGP in our kernel. Let's do it step by step: First, linux kernel sources should be located in /usr/src/linux-2.4.XX, in slackware 9.1, you should have linux 2.4.22 installed and be sure that you have a simbolic link "linux" that take you to this dir. If not, do the following:

# ln -s /usr/src/linux-2.4.22 /usr/src/linux

Ok, now, let's check if agpgart is already included in our kernel:

# cd /usr/src/linux
# make menuconfig

In "CHARACTER DEVICES" section, be sure that "/dev/agpgart (AGP SUPPORT)" is unchecked, if not, we need to disable it and recompile kernel. (is not the purpose of this how-to, explain how to recompile kernel, so read another docs and come back here after kernel recompilation..)

Compiling Drivers

Well, now that our slackware is ready, we can begin to install our drivers. First unzip package downloaded in temp dir:

# unzip glx1_linux_x4.3.zip
# cd X4.3.0-3.2.8

now we must convert rpm package in a tgz standard slackware package. Seems to be impossible but there is a usefull tool (rpm2tgz) that does this work very well! So let's do it:

# rpm2tgz fireglrx-4.3.0_3.2.8-6.i586.rpm
[ DO NOT TRY TO INSTALL RPM PACKAGE EVEN IF SlACKWARE SUPPORT IT, CONVERT IN TGZ BEFORE ]

Now we should have a file called fireglrx-4.3.0_3.2.8-6.i586.tgz in our dir, and we can install our drivers with:

# installpkg fireglrx-4.3.0_3.2.8-6.i586.tgz

The first part of our job is done, now we have to compile them. To do so, first move to drivers directory:

# cd /lib/modules/fglrx/build_mod

and call compilation script:

# ./make.sh

If everything is ok, step back to /lib/modules/fglrx/:

# cd ..

and install fglrx:

# ./make_install.sh

OK, now we have fglrx module installed in our system and ready to work! however our system is not ready yet...

X configuration

We now need to setup XF86Config-4 and tell X to load fglrx driver and activate DRI. To do so we have a tool called fglrxconfig that help us to create the config file.

# fglrxconfig

After script execution, we are now ready to start X with our new drivers and with Hardware acceleration enabled. First of all, we need to load fglrx module:

# insmod /lib/modules/fglrx/fglrx.o

Everything should be ok, if not check /var/log/syslog for error messages. And start X:

# xinit

Testing fglrx modules

If X is running, probably you have done everything well and fglrx is doing its job.. but is good idea to tests if hardware acceleration is enabled. First of all try

# fglrxinfo

in my linux box it gives a report like this:

genesis@psy:/etc/rc.d$ fglrxinfo
display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: Radeon 9500 (AIB) Athlon (3DNow!)
OpenGL version string: 1.3 (X4.3.0-3.2.8)

Then we can check Opengl performance with

# glxgears

that should report an average FPS near 1900-2000 on radeon 9500 card. if it gives you 100-200 average FPS, probably 3d acceleration is not enabled. If so, try to do again fglrxconfig and have a look to /var/log to error messages given by module.

VIAKT400 chipset based motherboards

Some people (like me :D ) have detected some problems using fglrx AGP support with motherboards based on chipset VIAKT400. Fortunately solution is quite simple, because seems that the problems is on chipset detection code, located in agpgart_be.c To resolve this problem, before driver compilation (described in section 5) we have to change source code to force it to detect VIAKT400.

# cd /lib/modules/fglrx/build_mod

and then with your favourite editor, open agpgart_be.c and replace

 { PCI_DEVICE_ID_VIA_8377_0,
        PCI_VENDOR_ID_VIA,
        VIA_APOLLO_KT400,
        "Via",
        "Apollo KT400",
        via_generic_setup }

with:

 { PCI_DEVICE_ID_VIA_8377_0,
        PCI_VENDOR_ID_VIA,
        VIA_APOLLO_KT400,
        "Via",
        "Apollo KT400",
        via_kt400_setup }

Now everything should be ok..

Outro & Credits

Author G3N3S1S This doc is dedicated to Lorys and Slacky.it forum, that has helped me in many cases... tnx a lot!

If you wanna mail me to report bugs or just ask something:

G3N3S1S@Softhome.net

Strumenti personali
Namespace

Varianti