Debian

From cchtml.com
Revision as of 05:45, 8 January 2012 by Nickandrew (talk | contribs) (Move the supported-cards warning to a new initial "read me first" section)

Read Me First

Which cards are no longer supported by ATI Catalyst? The ATI Radeon 9500-9800, Xpress200-1250, 690G, 740G, X300-X2500 (including Mobility RadeonHD 2300, since it is really a DirectX 9 part). See the complete list here. If your card is on that list, you are limited to open-source drivers on Debian Squeeze/6.0 (and later). If you really need the proprietary Catalyst/fglrx driver, you will have to use Debian Lenny/5.0.x and install Catalyst 9-3.

ATTENTION RADEON USERS

NOTE: If you enter your card information on AMD/ATI's driver page, it will offer you the Catalyst 9-3 driver to download. However, the Catalyst 9-3 driver doesn't support X servers past 1.5, and it will not work with Debian versions later than Lenny/5.0.x! !!!SO BE CAREFUL!!! If you tried to install Catalyst on a system with one of these cards, see the 'Removing the Driver' section to restore the default/pre-installed drivers.

Installation

The open-source ati/radeon driver should already be installed and used as the default. This guide focuses on installing the proprietary ATI driver (fglrx/Catalyst).

Before Starting

If you have previously attempted installing Catalyst, remove any leftover files by following the Removing the Driver section.


Installing from Debian Repository

NOTE: This will not work on wheezy/testing or sid until fglrx/Catalyst supports Xserver 1.11.x, which won't be until the Catalyst 11-11 release.

Fglrx is non-free software, so it is located in the non-free repository. If you do not have non-free enabled, you can do so like this: http://serverfault.com/questions/240920/how-do-i-enable-non-free-packages-on-debian

$ sudo apt-get remove --purge xserver-xorg-video-radeon
$ sudo apt-get install fglrx-driver fglrx-control fglrx-glx fglrx-atieventsd fglrx-modules-dkms

If you are using 64-bit Debian, install the 32-bit fglrx libraries for use with 32-bit programs.

$ sudo apt-get install fglrx-glx-ia32

Installing Manually

This method uses the latest Catalyst driver downloaded from AMD/ATI's site.

Prerequisite Packages

Install the prerequisite packages (names are based on Debian sid, older Debians may be different):

$ sudo apt-get install build-essential cdbs fakeroot dh-make debhelper debconf libstdc++6 dkms libqtgui4 wget execstack libelfg0 module-assistant

If you are using the x86_64 architecture (64 bit), be sure to install "ia32-libs" before proceeding!

$ sudo apt-get install ia32-libs

Download the latest Catalyst package.

This package contains both the 32-bit and 64-bit driver.

$ cd ~/; mkdir catalyst15.12; cd catalyst15.12/
$ wget http://www2.ati.com/drivers/linux/ati-driver-installer-15-12-x86.x86_64.run
$ chmod +x ati-driver-installer-15-12-x86.x86_64.run

Create .deb packages.

You can run ./ati-driver-installer-15-12-x86.x86_64.run --listpkg to get a list of all the potential packages

For Debian systems, <package> will be one of the following: Debian/sid Debian/unstable Debian/etch Debian/stable Debian/lenny Debian/testing Debian/experimental

$ fakeroot sh ati-driver-installer-15-12-x86.x86_64.run --buildpkg <package>

Install .debs.

$ sudo dpkg -i fglrx*.deb

Post Install

Generate a new /etc/X11/xorg.conf file

Unfortunately, there is no sure way to generate the ATI version of the Xorg.conf file. It is entirely dependent on your configuration. The following subsections will attempt to address possible (and tested) variations for their respective configurations.

Generic Config

This will work for most people:

$ sudo aticonfig --initial -f

Minimal Config

A very basic /etc/X11/xorg.conf file might be what you need if you have a new card that's not fully supported by aticonfig. Here follows the entirety of a minimal xorg.conf file for the Radeon 6870:

Section "Device"
 Identifier "ATI radeon 6870"
 Driver "fglrx"
EndSection

X2/Dual GPU Cards

If you have an X2 card (e.g. 4870X2 or 5970), use... !!Do not use for two separate cards in crossfire!!

$ sudo aticonfig --initial -f --adapter=all

Dual/Multi Monitors

If you have a dual monitor display (also known as "Big Desktop"), use:

$ sudo aticonfig --initial -f
$ sudo aticonfig --set-pcs-str="DDX,EnableRandR12,FALSE"

This was confirmed in http://phoronix.com/forums/showthread.php?t=18553.

Force use of the new xorg.conf (if necessary)

Some people find that changes to xorg.conf don't get used by the driver. To force the ATI driver to adopt changes made to xorg.conf, use the following command:

$ sudo aticonfig --input=/etc/X11/xorg.conf --tls=1

Test your installation

NOTE: if you don't reboot first, fglrxinfo gives an error message. Reboot the computer and type

$ fglrxinfo

into the terminal. If the vendor string contains ATI, you have installed the driver successfully. Using fglrxinfo on a system with Catalyst 11-4 and a RadeonHD 4250 returns:

display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Radeon HD 4200 Series (This line may be different depending on what graphics card you are using.)
OpenGL version string: 3.3.10665 Compatibility Profile Context (This line may be different depending on what graphics card and 
Catalyst version you are using.)

Now, try:

$ fgl_glxgears

If you experience issues or a hang, you may need to disable fast TLS.

$ sudo aticonfig --tls=0

Hardware Video Decode Acceleration (EXPERIMENTAL)

This is confirmed to work for newer RadeonHD GPU's (those with UVD2). If you have a RadeonHD 4000 series or newer, you have UVD2. To see the complete list: http://en.wikipedia.org/wiki/Unified_Video_Decoder#UVD_enabled_GPUs

Debian wheezy/7.0 and Later

$ sudo apt-get install xvba-va-driver

Updating Catalyst/fglrx

DO NOT try to install a new version over an old one. Follow the Removing the Driver section below to remove your existing driver.

Removing Catalyst/fglrx

The uninstall script in the first command will only exist if you downloaded the drivers and installed them directly (rather than building packages as this guide does). Skip the first command if it does not exist.

$ sudo sh /usr/share/ati/fglrx-uninstall.sh
$ sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev* xorg-driver-fglrx

If you plan on using open-source drivers, you will need to reinstall some packages because Catalyst overwrites or diverts some key 3D libraries with proprietary versions. For more information on this issue, see this Ubuntu wiki page

$ sudo apt-get remove --purge xserver-xorg-video-ati xserver-xorg-video-radeon
$ sudo apt-get install xserver-xorg-video-ati
$ sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-core
$ sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

Catalyst 11.9 and Debian Squeeze x86_64 (October 2011)

Version 11.9 will not install on Debian Squeeze with Kernel >= 3.1. To fix and install proceed as follows. First uninstall all versions of fglrx you can find, see above. (!!)

Download the driver and extract it thusly:

$ sudo ./ati-driver-installer-11-9-x86.x86_64.run --keep

Enter the newly created directory (will be named fglrx-install.XXXXXX). Use a hexeditor to find bytes starting at A6B0 with the values e8 53 90 ff ff and replace them with 90 90 90 90 90. This replaces a faulty free-op with 5 no-ops and fixes the exception thrown by "setup.data/bin/x86_64/setup". Read up on this at http://disbauxes.upc.es/?p=2964 .

Now the kernel-build-environment for the 3.1 kernel is currently missing in the repositories. To get around that type:

$ sudo aptitude install linux-source-3.1.0-rc7
$ cd /usr/src;tar -xjf linux-source-3.1.0-rc7;ln -s linux-source-3.1.0-rc7 linux;cd linux;

You may need to append an "-amd64" (or similar) to the localversion of the source to have its version-string match the one of the running kernel. To do so open .config in the current dir with an editor and search for "LOCALVERSION", set that var to "-amd64" or similar. Configure the kernel using

$ sudo make oldconfig

and build it using

$ make-kpgk --initrd --append-to-version="-myversion" kernel_image kernel_headers modules_image

You may not need to rebuild the whole kernel, installing its headers may be enough, but i wanted a fresh kernel with a few custom options. Install your kernel (or just the headers) from the .deb-files that were created by make-kpkg in the directory above.

After this return to the directory where you extracted the driver to and type:

$ sudo ./ati-installer.sh 8.892 --install --force

To load the driver type:

$ sudo modprobe fglrx