ATI FAQ Version 1.0 by Karoly "KillaK" Harth karoly@ptd.net ------------------------------------------------------------------------------- This FAQ covers how-to install properly, and get 3D Hardware Acceleration to work with Linux. The following cards are covered: All IN WONDER RADEON 9700 PRO ALL IN WONDER 9700 ALL IN WONDER 9000 RADEON 9700 PRO RADEON 9500 PRO RADEON 9000 PRO RADEON 9000 RADEON 8500 RADEON 8500 128 ALL IN WONDER RADEON 8500 DV Sections: I. Getting the drivers A. Supported Distributions II. Installing the drivers A.Installing for RPM Based Distributions (Mandrake,Red hat,& others) B.Red Hat 8.0 Users III. Errors when installing A.Kernel source not found at /usr/src/linux B.Kernel Version needs to be 2.4.xx and Up. IV. Loading the module & having it load at startup time A.Module fails to load V. Configuring for Debian & Debian Based Systems A.Alien package & RPM B.Debian Package problem C. Module fails to install/load with modconf 1.Kernel Headers not installed 2.Kernel source not linked properlyto /usr/src/linux VI. Configuring your drivers (All Distros) A.Fglrxconfig Problem \Important\! VII. Finishing up (All Distros) VIII. End Getting the drivers ----------------------------------------------------------------------------- Go to http://www.ati.com/support/driver.html Click Graphic Driver/Linux and select your Video Card from the list. Supported XF86 Versions are 4.1.0-xx and 4.2.0-xx series. XF86 4.3.0-xx series is NOT supported at this time, but perhaps in the near future will be. Download the Check.sh program and run it from a terminal: sh Check.sh to see if you have the appropriate system configuration. Only Linux/x86 versions based on libc 6.2 (-glibc 2.2) are supported at this time. The Following Distributions have either XFree86 4.01 or 4.02 on them and libc 6.2: A. Supported Distributions ***************************************************************************** Manndrake 9.0,8.2,8.1 RedHat 8.0,7.3,7.2 Debian 3.0r1 woody ,3.0 woody,unstable sid, testing sarge Knoppix 3.1 SUSE 8.1,8.0,7.3 Lycoris Amethyst2 Build 46,Amethyst1 Build 44, Amethyst Build 43 ****************************************************************************** II. Installing the drivers ----------------------------------------------------------------------------- At this time only an RPM file format is supported. Download the appropriate RPM for your Xfree86 version. To see what version you have run the Check.sh program. A. Installing for RPM Based Distributions (Mandrake,Redhat,& others) \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ////////////////////////////////////////////////////////////////////////////// After you have downloaded the appropriate drivers for your X version, you need to exit out of X completely. An easy way to do this is just logout of your Window Managing program to the login screen. Hit CTRL+ALT+F1 to switch to a remote terminal. Login as root and goto the directory you saved the files to. (example) If saved to /home/username/tmp on would type cd /home/username/tmp Next you type: rpm -Uhv fglrx-glc22-4.2.0-2.5.1.i586.rpm (for X 4.2.0) rpm -Uvh fglrx-glc22-4.1.0-2.5.1.i586.rom (for X 4.1.0) If it says about overwriting files execute the command: rpm -i --force fglrx-glc22-4.2.0-2.5.1.i586.rpm (for X 4.2.0) rpm -i --force fglrx-glc22-4.1.0-2.5.1.i586.rom (for X 4.1.0) You can hit the TAB key while typing in the file name to have it autocomplete the name. B. RedHat 8.0 Users \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ////////////////////////////////////////////////////////////////////////////// The ATI drivers come with their own version of libGL which conflict with the XFree86-Mesa-libGL-4.2.0-72 rpm package. To overwrite this you need to execute the following commands: rpm -e --nodeps XFree86-Mesa-libGL-4.2.0-72 (removes the package) rpm -Uhv fglrx-glc22-4.2.0-2.5.1.i586.rpm (for X 4.2.0) rpm -Uhv fglrx-glc22-4.1.0-2.5.1.i586.rpm (for X 4.1.0) III. Errors when installing ----------------------------------------------------------------------------- A. Kernel source not found at /usr/src/linux \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ////////////////////////////////////////////////////////////////////////////// You need to install the kernel header files for your distribution. Most have these on the CD'S already like Mandrake,Redhat. To check the version of the kernel you are running you would either use the Check.sh program or type from a terminal: uname -r Then install the kernel header files for your kernel. (example) Mandrake 9.0 Goto Package Management and select Install Software. Type in kernel and select the kernel header file for your version. If after you install it, and the rpm file still says an error about the kernel source you need to make a symlink to /usr/src/linux with the kernel header files. You would type: ln -s /usr/src/(kernel-headername) /usr/src/linux replace (kernel-headername) with the name of the kernel-header such as: kernel-header2.4.20 B. Kernel Version needs to be 2.4.xx and Up. \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ////////////////////////////////////////////////////////////////////////////// For this most distributions come with a high enough kernel. If you do get this error, use your distributions update program to get a newer kernel, or follow the instructions such a Mandrake gives for Kernel Upgrading in the Update program. IV. Loading the module & having it load at startup time ----------------------------------------------------------------------------- To load the new module into your kernel you would type: insmod fglrx If it fails to load, see the section below called (Module Fails to load) on what you need to do. Now that it is loaded you can add it to /etc/modules.conf file to have it start up automatically at boot time. (example modules.conf) fglrx emu10k1 emu10k1-gp analog A. Module fails to load \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ////////////////////////////////////////////////////////////////////////////// If this happens you will need to build the module manually. Don't worry it's not as hard as you think it is. Firstly you need to exit X completely. Logout and goto a remote Terminal: CTRL+ALT+F1 login as root type the following commands: cd /lib/modules/fglrx/build_mod ./make.sh cd /lib/modules/fglrx/ ./make_install.sh If you get errors look at the make.log file for more information. It should install fine and you can use the insmod to load the module. If you are still having problems please look at the HTML guide at: http://www.ati.com/support/driver.html You may have to build a custom kernel in order to use the drivers. If this is the case you look at a few good websites that explain how-to do this: (Redhat, Mandrake) http://www.desktop-linux.net/kernel.htm (Debian & Debian based systems) http://www.osnews.com/story.php?news_id=2949&page=1 V. Configuring for Debian & Debian Based Systems ----------------------------------------------------------------------------- If you are running Debian or a Debian based system this is the guide for you on how-to get 3D Acceleration to work. References will be made to other sections as most will work for debian the same. The exception of course is installing the file and inserting the module. A. Alien package & RPM \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ////////////////////////////////////////////////////////////////////////////// You will need the Alien package to install the RPM File. Just open a terminal and execute the following command as root user: apt-get install alien After this is installed you would type as root: alien fglrx-glc22-4.2.0-2.5.1.i586.rpm (for X 4.2.0 if your on testing/unstable) or alien fglrx-glc22-4.1.0-2.5.1.i586.rpm (for X 4.1.0 for stable) After which a .deb file will be created so you can install it. The ATI website says you can use the RPM tool to install it on debian, but I do not reccomend doing this, as it causes problems. To install the .deb file simply as root type: dpkg -i fglrx-glc22-4.2.0-2.5.1.i586.rpm (for X 4.2.0 for testing/unstable) dpkg -i fglrx-glc22-4.1.0-2.5.1.i586.rom (for X 4.1.0 for stable) If it complains about overwriting (which it probably will) you need to execute this command as root: dpkg -i --force-overwrite fglrx-glc22-4.2.0-2.5.1.i586.rpm (for X 4.2.0 for testing/unstable) dpkg -i --force-overwrite fglrx-glc22-4.1.0-2.5.1.i586.rom (for X 4.1.0 for stable) And it will install just fine. However there is one slight problem with this, as you will see when you install it. Information is below B. Debian Package problem \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ////////////////////////////////////////////////////////////////////////////// There is a problem with the debian package when you install it, which ATI seems to not have mentioned. When you install it, unlike the rpm package it will NOT tell you if it was successful in compiling the module for your kernel. It is abit annoying as you really don't know if it worked or not. The easiest way to see if it was successful is to run as root: modconf and look under the kernel/drivers/char/drm section for the fglrx module. If it is there then just activate it, and procede to run the fglrxconfig as Detailed in \ Section VI. Configuring your drivers.\ If it is not there, or fails to load procede to the next section. C. Module fails to install/load with modconf \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ////////////////////////////////////////////////////////////////////////////// This can be for various reasons which I will list below: 1. Kernel headers not installed for your kernel (if you are using a .deb supplied kernel) 2. Kernel source not linked properly to /usr/src/linux (if you are using a custom built kernel from www.kernel.org) I will explain what is needed to be done for each. It is very similar to Red Hat/Mandrake. 1. Kernel Headers not installed ============================================================================== To see what kernel you are running type as root: uname -r Next run as root: dselect hit / to search and type in kernel. The \ key scrolls down the list. Once you find the proper kernel header file, press + on your numberkey pad to select it for installation. (example) If I have kernel 2.4.18 then I would install the 2.4.18 header file. Then procede to the next section called "Installing On Debian". 2. Kernel source not linked properly to /usr/src/linux ============================================================================== If you get this error which complains about you needing kernel 2.4.xx and UP you either need to install the standard 2.4.18 debian kernel (or cpu varient ie AMD) with the correct headers or build your own from www.kernel.org If you downloaded your kernel for kernel.org and are unsure how-to install it you can check here for an excellent guide: http://www.osnews.com/story.php?news_id=2949&page=1 After you have it installed and everything is set, procede to the next section. VI. Installing the module on Debian ----------------------------------------------------------------------------- Now that everything is set up kernelwise it is time to install the drivers. Make sure and completely log out of X. Hit CTRL+ALT+F1 and log in as root and type the following: cd /lib/modules/fglrx/build_mod ./make.sh cd /lib/modules/fglrx/ ./make_install.sh If you get errors look at the make.log file for more information. After it compiles the custom module for you run as root: modconf Go into the kernel/drivers/char/drm section and look for the fglrx module. If it is there, then load it up it should insert fine now. If it does not insert fine, please consult the HTML guide at: http://www.ati.com/support/driver.html If it does load procede to the next section. VI. Configuring your drivers (All Distos) ----------------------------------------------------------------------------- As the instructions say at ATI you need to run the fglrxconfig program after you have the module loaded successfully. While you are still outside of X at the Terminal type: fglrxconfig This will start the configuration program for your video card setup. Just answer a few questions here. A. Fglrxconfig Problem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ However there is one major FLAW in this fglrxconfig program. There is an Error when it configures your video card and writes to the XF86Config-4 file. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ It writes towards the bottom of XF86Config-4: BusID "PCI:01:00:01" which is completely wrong. The AGP port should be: BusID "PCI:01:00:00" which is the correct port it should be on. This is AGP port 1. Even though you have an AGP card and motherboard, it is still a enhanced PCI port. To make sure you can run the following command as root cat /proc/pci And look towards the bottom. You will see something like this: (from a Radeon 9000 PRO 128MEG) VGA compatible controller: PCI device 1002:4966 (ATI Technologies Inc) (rev 1). IRQ 11. Master Capable. Latency=255. Min Gnt=8. Prefetchable 32 bit memory at 0xd0000000 [0xd7ffffff]. I/O at 0xc000 [0xc0ff]. Non-prefetchable 32 bit memory at 0xe5000000 [0xe500ffff]. Bus 1, device 0, function 1: Display controller: PCI device 1002:496e (ATI Technologies Inc) (rev1). Master Capable. Latency=32. Min Gnt=8. Prefetchable 32 bit memory at 0xd8000000 [0xdfffffff]. Non-prefetchable 32 bit memory at 0xe5010000 [0xe501ffff]. Take note of the Bus 1, device 0, function 1 and the Display controller :PCI device 1002:496e id line. This seems to be either a bug in the ATI package or a bug in X itself. As linux finds it fine, but X crashes if you load it as PCI:01:00:01. So make sure you load it like I have it above. VII. Finishing up (All Distros) ----------------------------------------------------------------------------- Now that you have your module loaded successfully (hopefully) and you tweaked your XF86Config-4 file, you should be all set to start X backup again. Once you are in X run the program: glxgears This should be giving you about 2000fps You can also run fglrxinfo and it should output with something like this: OpenGL vendor string: ATI Technologies Inc. OpenGL renderer string: Radeon 9000 /Mobility Fire GL 8800 Prototype DDR Athlon (3DNow!) OpenGL version string: 1.3.3477 (X4.1.0-2.5.1) If it does, congratulations! You now have full 3D support in linux. Now you can go and play Quake3, Unreal2k, with max detail. ;-) VIII. End ----------------------------------------------------------------------------- That's the end of the FAQ. I made this FAQ because of personal experience with getting my ATI Radeon 9000PRO 128 Meg to work, and the challenges it took to get it running correctly. Countless webpage sites, driver trials, reading error log files, and just testing different configurations in X. I want to thank the linux community for making linux what it is today, and for their continued contributions. I hope this FAQ can help people who are also having trouble with getting their ATI cards to work properly, and not pull all their hair out in the process. ;-) And lastly continue to support ATI and their efforts. Email them that you want to see drivers from them, fully supported on linux just like Nvidia drivers are. Let them know we (the linux community) want to use our ATI cards in Linux without having to go through all the steps needed in this FAQ. The drivers should be on par if not better then the ones from Nvidia. Let them know, but let them know nicely. ;-) Ati FAQ version 1.0 @copyright by Mr. Karoly Harth karoly@ptd.net http://home.ptd.net/~karoly Duplication without written approval is strictly prohibited. If you wish to use this FAQ on your site email me at: karoly@ptd.net