SDB:Radeon

Jump to: navigation, search

AMD portal edit

AMD Hardware

Drivers

  • Open source:
AMDGPU
Radeon
  • Proprietary:
AMDGPU-PRO
AMD fglrx


The radeon driver is an open source driver for fairly all ATI Radeon cards. It is in many respects better than the proprietary fglrx driver, though the 3D performance is not as good. Support for the latest chipsets is often not as good. Check HCL:AMD video cards to select the driver that suits your graphical hardware best, before you proceed in this article.

Do I need to install the radeon driver?

  • If you installed openSUSE 11.4 or above on a computer with a Radeon chipset, the radeon driver should already be installed and running. To check this you can type into a terminal
lsmod | grep radeon

If the result is "radeon" then the driver is already installed. If you have a graphical session running, then you may skip straight to SDB:Radeon#Testing the driver

  • If you installed or tried to install the proprietary AMD fglrx driver, you need to completely remove this driver and afterwards fallback to the radeon module, before you can proceed. Please proceed to the following guidelines.

Install the radeon driver

Use this procedure only if you wish to fallback to the radeon driver from a (failed) fglrx install, since openSUSE installs, configures and uses the radeon driver in most cases by itself.

First preparations

  • If your current setup is working, make a back up of your xorg.conf (if you have one) and note what driver you are using, so you can revert to a working configuration if you have to.
  • Work in runlevel 3, where you can safely edit your graphical configuration:
    • Switch to tty 1 channel by hitting Ctrl-Alt-F1. That brings you to a full screen text login
    • Login as a regular user
    • Type "su" (no quotes - enter root password) to switch users to the administrator/root.
    • Type:
      $ init 3

Remove the proprietary fglrx driver if present

  • Run any uninstall scripts that AMD provided.
  • However, if you did a one click install or installed from the repository with YaST or zypper, use zypper to uninstall all packages with "fglrx" in them.
    • Search for installed fglrx packages:
      zypper se fglrx
    • Remove any packages found from the search string, without quotes:
      zypper rm "name found package"
  • Then run the following command to ensure one last time all proprietary driver packages are in fact removed:
    rpm -qa | grep fglrx

Check if radeon still is blacklisted

One of the first things fglrx does to ensure that radeon doesn't interfere with it is it blacklists the radeon module so that the kernel doesn't load it while booting. This needs to be removed:

rm /etc/modprobe.d/fglrx.conf

or:

rm /etc/modprobe.d/50-fglrx.conf

depending on your openSUSE version.

X11 Configuration

When fglrx is installed, aticonfig creates a /etc/X11/xorg.conf, containing configuration details for running fglrx. To make sure your system is completely purged from fglrx you need to backup this file if still present by renaming it to for example "xorg.conf.bc".

Activate the radeon driver/kernel module

Load the radeon kernel module:

modprobe radeon

and reboot your system:

reboot

or

init 6

Testing the driver

To tell if the driver is working, type the following in a terminal window:

glxgears

If everything is working, a new window with colored spinning gears should appear, and the terminal window will start displaying frame rates every five seconds. And you're done.

What if everything is not working?

If you try to run glxgears or any other OpenGL based app and see error messages that look like this:

X Error of failed request:  BadRequest (invalid request code or no such operation)
  Major opcode of failed request:  135 (GLX)
  Minor opcode of failed request:  19 (X_GLXQueryServerString)
  Serial number of failed request:  17
  Current serial number in output stream:  17

Then there is most likely something wrong with OpenGL implementation or direct rendering. Check the following:

  • Make sure the package "Mesa" is installed. You can use YaST to do this.
    • If you don't have Mesa, install it, restart the X.Org server, and try glxgears again.
  • In a terminal, run
    glxinfo
    and look for/grep the following:
    • direct rendering: Should say "Yes". If it says "No" then check your Xorg logs for more information.
    • OpenGL version string: This should have something like "1.5 Mesa 7.6.1" or something similar. If it says anything about "fglrx" or "ATI" then make sure that you have fully uninstalled the proprietary driver.
  • Check your xorg.conf if you have one
    • If so, consider removing /etc/X11/xorg.conf:
      • Since in most cases the radeon module auto-magically configures your hardware without the need of configuration files
      • Try this by renaming xorg.conf for example to xorg.conf.bc and then restarting the X server. If this failles, restore the xorg.conf.bc file and then restart
    • If you need to keep your xorg.conf:
      • Make sure that under the Device section, "Driver" is set to "radeon"
      • Make sure that the following section exists. If it does not, add it at the end:
Section "DRI"
   Group      "video"
   Mode       0660
EndSection
  • Check your xorg log: /var/log/Xorg.0.log or any other xorg related log you may find here. These are often very informative.

In case of kernel panic

If upon rebooting after uninstalling the fglrx driver you get kernel panics involving radeon missing (with error messages such as "unable to handle null pointer dereference") this may be caused by Plymouth requiring KMS drivers, which can be unset by the fglrx installer. To get radeon back in the inird so Plymouth works again, open /etc/sysconfig/kernel as root and edit the following line:

NO_KMS_IN_INITRD="no"

After re-enabling KMS you will need to rebuild the ramdisk, so as root run:

mkinitrd

Configuring the driver manually

Nowadays in most situations all AMD graphics hardware is configured automagically. In these cases there is no need for any further configuration. However, in those cases where your hardware is not configured properly, you can try to manually configure your graphical system. In this article the manual configuration happens in /etc/X11/xorg.conf with a "Device" section devoted to your card. Before you proceed, consider that this is not without risk: Some options can crash your X server. It is advised to read this how to forum post, before you go any further.

Create an Xorg.conf

If you don't have ANY xorg.conf (which may be true with openSUSE 11.2 and above), then you could create one.

  • Reboot your PC in runlevel 3, as descibed earlier, and login as a normal user
  • Again, type "su" (no quotes - enter root password) to switch users to the administrator/root.
  • Then type the following:
    Xorg -configure
  • This creates an xorg.conf in the /root. Copy this file to the correct location /etc/X11/xorg.conf
  • Reboot normally into a graphical session
  • So, your vanilla Device section should look something like this:
Section "Device"
  BoardName    "R420 JI"
  Driver       "radeon"
  Identifier   "Device[0]"
  VendorName   "ATI"
EndSection

It may have a few other options included also. Below are some options you may want to tweak or add if they are not already present in your xorg.conf. A full list of options is available on the radeon man page.

Icon-warning.png
Warning: Be careful adjusting these settings. Not all of them are supported by all hardware. Some of them can crash your X server, so backup your xorg.conf before making changes. Check if the options mentioned after this, are supported by your hardware.

BusType

Option       "BusType" "AGP"

The value of this can be "PCI" "AGP" or "PCIE". This should be set to whatever the bus type of your card is. By default, the driver attempts to auto-dectect your bus, but sometimes it makes mistakes. In my own experience, explicitly setting my bus type improved performance dramatically. If setting it to "AGP" or "PCIE" causes problems, you can set it to "PCI" but you'll have a performance drop.

AGPMode

Option      "AGPMode" "8"

Acceptable values are 1", "2", "4" and 8. If you have an AGP card, this should be set to the highest value your card supports unless doing so causes instability.

Note that setting AGPMode here in Xorg.conf (or under /etc/X11/xorg.conf.d/) is now (March 2013) unsupported, you will need to edit /etc/modprobe.d/99-local.conf and add the line
options radeon agpmode=4
Acceptable values are "1", "2", "4" and 8. Note this will depend upon the capabilities of your card. Remember to commit the changes by running mkinitrd after changing this file.

AccelMethod

Option       "AccelMethod" "XAA"

This can be set to "XAA" or "EXA". XAA is an older, but more stable method. EXA is new and supposed to have better performance. You should try both and stick with whichever works best for you.

EnablePageFlip

Option       "EnablePageFlip" "on"

This speeds up 3D performance, but it is off by default because it doesn't always work correctly. If you have an R/RV/RS4XX or earlier card you should have it turned on unless it causes a problem.

ColorTiling

Option       "ColorTiling" "on"

Turning this on improves 3D performance. It should be on by default.

AccelDFS

Option       "AccelDFS" "on"

This is off by default on AGP cards, but on by default on other cards. Turning it on should improve performance, but it causes problems with some AGP cards.


See also

Related articles

External links