ATI

From ArchWiki

Jump to: navigation, search
Article summary
Information on ATi Proprietary and Opensource Drivers.
Available Languages
English
简体中文
Italiano
Türkçe
Русский

ATI owners have a choice between the proprietary (catalyst) or the opensource counterparts, (xf86-video-ati or xf86-video-radeonhd).

Currently, the performance of the open-source drivers is not on par with that of the proprietary, on demanding OpenGL applications (like 3D Games). They also currently lack some features, such as reliable TV-out support. On the other hand, they offer better dual-head support (xf86-video-ati), excellent 2D acceleration and provide sufficient 3D acceleration for OpenGL accelerated window managers, like Compiz or KWin.

If you are not sure of which to use, try the open-source drivers first, because they will suit most needs and are generally less problematic and flexible.

Tip: see the feature matrix for the current state of feature implementation.

Contents

What is Rxxx?

The Rxxx name-scheme refers to the code-name of the product. For finding your Codename, refer to wikipedia: [1]

Open-source drivers

Differences between open-source drivers

xf86-video-ati (The radeon driver)

  • Works with Radeon chipsets up to X1950 (latest R500 chipsets) as well as HD2xxx (latest R600 chipsets).
  • Radeons up to the 9200 series are fully supported, stable, and full 2D and 3D acceleration are provided.
  • Radeons from 9500 to X1950 have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides (for example, powersaving is still in a testing phase).
  • Supports DRI1, RandR 1.2/1.3, EXA acceleration and Kernel-Mode-Setting/DRI2 (with the latest Linux kernel, libDRM and Mesa versions).
  • All cards from HD2xxx (R6xx) and newer are supported, but for now, with 2D support only.

A full list of supported chipsets can be found here.

Note: HDMI support will soon be implemented in xf86-video-ati over AtomBIOS.

xf86-video-radeonhd (The radeonhd driver)

  • Driver for ATI R500 chipsets (Radeon X1000 series) and newer.
  • Written by Novell with specifications provided to the public by AMD.
  • Supports RandR 1.2 and is under heavy development. It does also support HDMI with sound, (if your hardware is so equipped).

Generally, xf86-video-ati seems to offer more consistent performance as compared to xf86-video-radeonhd, so it should be your first choice, no matter which ATi card you own. xf86-video-radeonhd should be used as a "fallback" driver in case you encounter errors with xf86-video-ati.

Note: xf86-video-ati is recognised as "radeon" by Xorg (in xorg.conf) and xf86-video-radeonhd as "radeonhd". That's for those who get confused when they want to change the driver used by Xorg through xorg.conf.

Installation and configuration

Installation

Note: If you have previously installed the proprietary driver, make sure to remove catalyst and reboot.

To install xf86-video-ati :

pacman -S xf86-video-ati libgl ati-dri

To install xf86-video-radeonhd :

pacman -S xf86-video-radeonhd libgl ati-dri
Note: The GIT versions of these drivers can be found on AUR

Configuration

You now have the choice between creating an xorg.conf, or attempting to use the recently enabled Xorg autodetection.

Running Xorg without xorg.conf

In most cases, Xorg can autodetect your hardware settings. The Xorg.conf configuration file in /etc/X11 is optional since Xorg-server 1.5.x.

Always make sure you have HAL, mesa, the group xorg and the group xorg-input-drivers installed:

 pacman -S hal xorg-input-drivers mesa xorg

and that HAL has been added in DAEMONS array in /etc/rc.conf and is running.

Note: With KMS (Kernel Mode Setting) enabled, xorg.conf may not be needed at all. For more info on Radeon Kernel mode-setting, read this.

Running Xorg with expanded xorg.conf

Note: /etc/X11/xorg.conf no longer requires sections for all input devices because HAL can configure some/all via hotplugging. (Ensure HAL is running and xorg-input-drivers are installed.)

In case you want manual configuration, edit your xorg.conf, and add or make sure you have the following in their given sections:

Section "Module"
  Load  "glx"
  Load  "dri"
  Load  "drm"
EndSection

Device section for xf86-video-ati :

Section "Device"
 Identifier "name"                     # your alias
 Driver "radeon"
EndSection

Device section for xf86-video-radeonhd :

Section "Device"
 Identifier "name"                     # your alias
 Driver "radeonhd"
 Option "AccelMethod" "exa"            # to enable 2D and Xv acceleration on R6xx/R7xx - default AccelMethod shadowfb
 Option "DRI" "on"                     # to enable 2D and Xv acceleration on R6xx/R7xx - default DRI disabled
EndSection
Note: Try below for smooth performance,over Option "DRI", for RS780M/MN [Radeon HD 3200] using the radeonhd driver(as of 3rd May 2009)

This section (DRI) is not needed (thus deprecated),but use it if you encounter DRI related problems.

Section "DRI"
 Group        "video"
 Mode         0666
EndSection

Adding only the Device Section in the xorg.conf should fit most cases. Using that Section, you can enable features and tweak the driver's performance or behaviour.

When using the opensource drivers, ensure catalyst is not installed -- ati-dri is being used instead. Otherwise, the wrong libGL.so will be installed, which will cause direct rendering to fail.

AMD/Ati cards and kernel mode-setting (KMS)

Kernel mode-setting is a technology that puts the work of setting graphics output modes into kernel space. This allows for a cleaner implementation, and means that switching VTs (Ctrl+Alt+F1, etc.) is nearly instantaneous. KMS also allows a full-resolution framebuffer (which is nice for high-res displays in console mode). KMS requires Xorg free video userspace driver xf86-video-ati 6.12.4 or later. KMS enables more technologies (like DRI2) that will reduce artifacts and increase 3D performance, even kernel space powersaving. Eventually, all Xorg video drivers will be replaced by corresponding kernel drivers which support KMS.

Since version 2.6.31, KMS is available and is enabled by default in the default Arch kernel.

Note: For now, only Radeons up to R5xx (X1xxx) support KMS. Support for later Radeon cards will be added in Linux kernel 2.6.32.

Early start

This method will start KMS as early as possible in the boot process, when the initramfs is loaded.

(1) Remove all "vga=" and "video=" options from your kernel appendline in /boot/grub/menu.lst. Using other framebuffer drivers (such as uvesafb/radeonfb) will conflict with KMS. Remove any framebuffer relates modules from /etc/mkinitcpio.conf.

(2.a) Add "radeon" (without quotes) to MODULES array in /etc/mkinitcpio.conf. Depending on your chipset it may be necessary to add "intel_agp" before the radeon module.

(2.b) Add "fbcon" to MODULES array in /etc/mkinitcpio.conf to be able to switch to the console after X has started.

(3) Re-generate your initcpio:

mkinitcpio -p kernel26

(4) Reboot your system.

Late start

With this choice, KMS will be enabled when the boot process says, "Loading modules."

(1) Remove all "vga=" and "video=" options from your kernel appendline in /boot/grub/menu.lst. Using other framebuffer drivers (such as uvesafb/radeonfb) will conflict with KMS. Remove any framebuffer relates modules from /etc/mkinitcpio.conf.

(2.a) Add "radeon" module or "intel_agp radeon" if needed to the modules array in your /etc/rc.conf

(2.b) Add "fbcon" module to the modules array in your /etc/rc.conf to be able to switch to the console after X has started.

Some users have reported udev module loading can be speed up by adding "options radeon modeset=1" to your /etc/modprobe.d/modprobe.conf file.

(3) Reboot your system.

If you are lucky your system will boot with both possible ways straight with proper framebuffer resolution and Xorg will start very quick.

Warning: If late start won't work for you, try the early start of Kernel Mode Setting.

Kernel Mode Setting Troubleshooting

Slow or no compositing after having KMS enabled

You must have these package versions installed at least in order to have both KMS and 3D desktop compositing enabled:

kernel26 2.6.31.x
mesa 7.5.x
ati-dri 7.5.x
libgl 7.5.x
xf86-video-ati 6.12.4

If these are already installed but you still can't have both KMS and 3D compositing enabled (or if 3D compositing is slow), disable KMS.

Note: Most problems and major drawbacks are supposed to be solved if the installed Mesa's version is at least 7.6.x. That's a warning for those that haven't upgraded to Mesa 7.6 yet.

KMS related problems' solutions

Disable KMS
Warning: Follow this section, if you encounter such problems, like: kernel crash, distorted framebuffer on boot, Xorg refusing to start, Xorg unloading the DRI2 module and falling back to mesa software rasterizer meaning no 3D acceleration.

The solution is to disable experimental KMS and fall back to the old behavior.

(1) Add "radeon.modeset=0" into the kernel append line in /boot/grub/menu.lst or the lilo configuration file (without the quotation marks!).

If "radeon.modeset=0" won't work, try adding "nomodeset" instead.

(2) If you have added "radeon" in MODULES array in mkinitcpio.conf, remove it.

(3) Rebuild the initramfs with

 mkinitcpio -p kernel26
Warning: Catalyst users: You will probably also need to blacklist module loading for radeon. Put "!radeon" into your modules array in /etc/rc.conf.
  • Options for modules can be provided in a file under /etc/modprobe.d/. If you are using the radeon module (which you can see if it's loaded with the command

lsmod | grep radeon , you can switch off KMS by creating a file specifying the module options e.g. /etc/modprobe.d/radeon.conf

options radeon modeset=0

(4) Reboot your system.

Delete xorg.conf

Deleting xorg.conf, which may include options that may cause problems regarding driver's behaviour, try making a backup of your xorg.conf, and then delete it.

After that, restart Xorg.

Performance tuning

The following options apply to Section "Device" in /etc/X11/xorg.conf.

Tuning performance with xf86-video-ati

By design, xf86-video-ati runs at AGP 1x speed. It is generally safe to modify this. If you notice hangs, try reducing the value or removing the line entirely (you can use values 1, 2, 4, 8).

       Option "AGPMode" "4"

ColorTiling is completely safe to enable and supposedly is enabled by default. People have noticed a performance increase when enabled via xorg.conf.

       Option "ColorTiling" "on"

Acceleration architecture; this will work only on newer cards. If you enable this and then can't get back into X, remove it.

       Option "AccelMethod" "EXA"

Page Flip is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.

       Option "EnablePageFlip" "on" 

AGPFastWrite will enable fast writes for AGP cards. This one can be problematic, so be prepared to remove it if you can't get into X.

       Option "AGPFastWrite" "yes"

EXAVSync option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips. Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.

      Option "EXAVSync" "yes"

See an example Device Section in xorg.conf:

Section "Device"
       Identifier  "My Graphics Card"
       Driver      "radeon"
       Option      "DRI" "on" 
       Option      "DynamicPM" "on"      # Dynamic powersaving.
       Option      "ClockGating" "on"    # Assisting option for powersaving.
       Option      "AccelMethod" "EXA"   # EXA should fit most cases.
       Option      "EXAVSync" "on"       # EXAVSync is explained above.
       Option      "DMAForXv" "on"       # Forced option in order to enable Xv overlay.
       Option      "ScalerWidth" "2048"  # That should fix some very rare bugs.
       Option      "EnablePageFlip" "on" # It will not be enabled on R5xx cards.
       Option      "RenderAccel" "on"    # Optional. It should be enabled by default.
       Option      "AccelDFS" "on"       #Optional. See the man page.
       BusID       "PCI:1:0:0"
EndSection


See the manpage for more configuration options. man radeon

A fine tool to try is driconf. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).

Tuning performance with xf86-video-radeonhd

TODO

TV out

Since August 2007, there is TV-out support for all Radeons with integrated TV-out.

It is somewhat limited for now, it doesn't always autodetect the output correctly and only NTSC mode works.

First, check that you have an S-video output: xrandr should give you something like

Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200
...
S-video disconnected (normal left inverted right x axis y axis)

Now we should tell Xorg that it is actually connected (it is, right?)

xrandr --output S-video --set load_detection 1

Setting tv standard to use:

xrandr --output S-video --set tv_standard ntsc

Adding a mode for it (currently it supports only 800x600):

xrandr --addmode S-video 800x600

I'll go for a clone mode:

xrandr --output S-video --same-as VGA-0

So far so good. Now let's try to see what we have:

xrandr --output S-video --mode 800x600

At this point you should see a 800x600 version of your desktop on your TV.

To disable the output, do

xrandr --output S-video --off

Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.

To send the output to the TV, I do

xvattr -a XV_CRTC -v 1
Note: you need to install xvattr from AUR to execute this command.

To switch back to my monitor, I change this to 0. -1 is used for automatic switching in dualhead setups.

Please see Enabling TV-Out Statically for how to enable TV-out in your xorg config file.

HDMI with sound

Given that your hardware supports it, and you have installed xf86-video-radeonhd (note: The driver xf86-video-ati will soon get HDMI support.) you can insert the following into xorg.conf to enable HDMI with sound:

Section "Device"
  # ...
  Option "Audio" "on"
  Option "HDMI" "all"
EndSection

Restart X when you have done this, try to see if there is sound transmitted to TV via HDMI cable.

  1. Connect your PC to the TV via HDMI cable (duh).
  2. Use xrandr to get picture to the TV. Ex: xrandr --output DVI-D_1 --mode 1280x768 --right-of PANEL. Simply typing xrandr will give you a list of your valid outputs.
  3. Run aplay -l to get the list of your sound devices. Find HDMI and note the card number and corresponding device number. Example of what you want to see: card 1: HDMI [HDA ATI HDMI], device 3: ATI HDMI [ATI HDMI]
  4. Try sending sound to this device: aplay -D plughw:1,3 /usr/share/sounds/alsa/Front_Center.wav. Be sure to change plughw:z,y to match your hardware number found with last command. You should be able to hear the test sound from your TV.

Note on RV730 and RV710

xf86-video-radeonhd does not support yet audio through HDMI for these chipsets, but work is in progress.

Troubleshooting (xf86-video-ati & xf86-video-radeonhd)

I encounter artifacts when I am trying to login into my DE or WM

If you seem to have artifacts, first choose to login into your favorite DE or WM without xorg.conf in /etc/X11/. Most people try to create a proper xorg.conf for their system, but sometimes it may cause trouble.

If you do that, don't forget to have HAL installed and running, and the group xorg-input-drivers installed.

Warning: It is possible that those issues are KMS related. If that is the problem, disable KMS.

I have switched from catalyst to radeonhd or radeon and some things don't work

First of all, don't panic. Uninstall catalyst, install xf86-video-radeonhd or xf86-video-ati and then reboot.

Make sure you are not using the xorg.conf generated by catalyst. Your original should have been backed up and you can recall it:

cp /etc/X11/xorg.conf.original-0 /etc/X11/xorg.conf

Otherwise, stop your graphical server if running, and in a tty, type as root:

Xorg -configure
mv xorg.conf.new /etc/X11/xorg.conf

and make sure you put the required options.

If it still doesn't solve your problem, know that apparently catalyst has the bad idea to replace Xorg files with symbolic links pointing to its own files. The easiest at this point is to uninstall all catalyst stuff (just to be on the safe side) and then to reinstall xorg, libgl, ati-dri and xf86-video-radeonhd or xf86-video-ati.

If it still doesn't work, then have a look into the forum, your problem might be a configuration issue.

Note: When you switch to xf86-video-ati or xf86-video-radeonhd, remember that you can login without xorg.conf as well (without problems in most cases), since Xorg can autodetect your settings. So xorg.conf is optional.

I have installed a free driver and my card is painfully slow

Some cards can be installed by default trying to use KMS. You can check whether this is your case running:

dmesg | egrep "drm|radeon"

This command might show something like this, meaning it is trying to default to KMS:

[drm] radeon default to kernel modesetting.
...
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL

If you know your card is not supposed to support KMS (read the link above), then you can disable KMS. This should fix the problem.

Proprietary Catalyst driver

Formerly known as 'fglrx', ATI has rebranded their proprietary Linux driver, which is now known as 'Catalyst'. Currently, only the package name has changed, while the kernel module retains its original 'fglrx' name, therefore any mention of fglrx below is specifically in reference to the kernel module, not the package.

Supported devices

Since v. 9.4, the propriatery ATI driver supports only R600 and newer devices (that means, HD2xxx and newer). For older cards, especially laptop users, be aware that the ATI Catalyst 8-8 driver only supports Xorg <= 7.3. Xorg 7.4 support was not introduced until the 8-10 Catalyst driver release. This means that if you are using Xorg 7.4 or newer with an older card, your only current option is the open-source drivers, especially xf86-video-ati. While Xorg 7.4 support is contained in the Catalyst 8-10 through 9-3 releases for older cards, those drivers are not presently packaged for Archlinux and numerous older cards have had trouble with those driver releases.

Installation

Catalyst was once a precompiled package offered by Arch in the extra repository, but as of March 2009, official support has been dropped because of dissatisfaction with the quality and speed of development of the proprietary driver. The catalyst driver is available on AUR.

Stock Kernel

kernel26

Temporary warning: Catalyst 9.12 only works with xorg-server=<1.6, not with xorg-server>=1.7 available in [extra]. For more info visit this link: http://bbs.archlinux.org/viewtopic.php?pid=649160#p649160

If you need more information on catalyst, visit this thread or create a new one, and ask there.

To install ATI's fglrx driver for the kernel26 package, you need to install the catalyst package, that can be found in AUR. You can build it via makepkg.

For a stock kernel, that's it. Configure your xorg.conf as usual, if desired.

Custom Kernels

To install catalyst for a custom kernel, you'll need to build your own catalyst-$kernel package containing the kernel module compiled specifically for your kernel.

If you are at all uncomfortable or inexperienced making packages, read up the ABS wiki page first so things go smoothly.

Obtaining PKGBUILD

Obtain the PKGBUILD and catalyst.install files from AUR.

Editing the PKGBUILD and building

Three changes need to be made here:

1. Change

   pkgname=catalyst

to

   pkgname=catalyst-KERNEL_NAME

where KERNEL_NAME is whatever you want (e.g. custom, mm, themostawesomekernelever)

2. Remove kernel26 from the dependencies list.

Finally, build and install the package. (makepkg -i or makepkg followed by pacman -U pkgname.pkg.tar.gz)

Notes

  • If you run multiple kernels, then install catalyst module packages for all kernels. They won't conflict with one another.

ATI/AMD Installer

Warning: Using the installer from ati.com/amd.com is NOT recommended for inexperienced users! Doing so may cause file conflicts and X failures. The packages available through pacman are configured specifically for Arch Linux and so should be used instead.

If you have attempted a manual install from the official installer, and are finding that nothing works correctly anymore, there should be an uninstall script placed at /usr/share/ati - run that, then try the pacman packages.

If you must use the installer from ATI/AMD for some reason, the following steps might work for you:

  • Download AMD/ATI driver installer from the official site only.
  • Make it executable.
  • Execute a terminal emulator (e.g Konsole) and be root.
  • Install mesa package
   pacman -S mesa
  • (Re)Install Xorg
  • Check for other required things for ATI/AMD installer listed on their website
   #pacman -Q | grep NameOfPackage
  • Use aticonfig as described below to update xorg.conf
  • Add ModulesPath into xorg.conf pointing at fglrx.so module if necessary

Configuration

ATI provides the aticonfig tool to modify an existing xorg.conf file and configure essentially every aspect of the card. For a complete list of aticonfig options, run:

$ aticonfig --help

If you don't have an xorg.conf file yet, run the following command to generate one:

# Xorg -configure

The simplest way to use aticonfig to adapt your xorg.conf file is listed in the examples at the end of the output if you run aticonfig without any command-line parameters:

   Examples:
     1. Setting up fglrx for the first time.
          Single head :    aticonfig --initial --input=/etc/X11/xorg.conf
          Dual head   :    aticonfig --initial=dual-head --screen-layout=above
                           This command will generate a dual head configuration
                           file with the second screen located above the first
                           screen.

Just adapt one of those two lines for your personal setup.

Warning: Please check the generated xorg.conf file before you copy it to /etc/X11/xorg.conf and happily startx or reboot. Otherwise, you'll probably get a locked blank screen and won't be able to use your system anymore.
The config files generated by preceding steps are sometimes incorrect. If you want, you can compare the generated files to one of the Sample Xorg.conf files listed on the Xorg wiki page.

Please ensure that in the "Screen" section you have "DefaultDepth 24" and there is a "DRI" section with "Mode 666" in it. The fglrx driver needs those lines to work, but the generated files by preceding programs don't have it. Without those lines, you might get an unresponsive black screen after reboot. Besides, since most of the parts are now automatically detected in modern Xorg, you don't need to write so many things in xorg.conf as you did before with ancient Xorg versions. So, some config sections/values in the generated xorg.conf are redundant.

Here is a minimal working example:

Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection
 
Section "Files"
        RgbPath      "/usr/share/X11/rgb"
        ModulePath   "/usr/lib/xorg/modules"
        FontPath     "/usr/share/fonts/misc"
        FontPath     "/usr/share/fonts/100dpi:unscaled"
        FontPath     "/usr/share/fonts/75dpi:unscaled"
        FontPath     "/usr/share/fonts/TTF"
        FontPath     "/usr/share/fonts/Type1"
EndSection
 
Section "Module"
        Load  "extmod"
        Load  "dbe"
        Load  "xtrap"
        Load  "record"
        Load  "dri"
        Load  "glx"
        Load  "GLcore"
        Load  "freetype"
EndSection
 
Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection
 
Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection
 
Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection
 
Section "Device"
        Identifier  "Card0"
        Driver      "fglrx"
        VendorName  "ATI Technologies Inc"
        BoardName   "Radeon Mobility X1400"
        BusID       "PCI:1:0:0"
EndSection
 
Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth    24
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection
 
Section "DRI"
        Mode 0666
EndSection

Next, make sure the fglrx module and any needed agp modules are loaded.

# modprobe fglrx 

Add them to the MODULES array of your /etc/rc.conf to ensure that they load when you boot.

Finally, run Xorg with startx or by using GDM/KDM and verify that direct rendering is enabled by running the following command in a terminal:

$ glxinfo | grep direct

If it says "direct rendering: yes" then you're good to go! If the glxinfo command is not found, you may need to install the mesa package as well.

Warning: In recent versions of Xorg, the paths of libs are changed. So, sometimes libGL.so cannot be correctly loaded even if it's installed. Don't forget to check this if your GL is not working. Please read "Troubleshooting" section for details.

Troubleshooting (catalyst)

Rectangle/Checkerbox corruption with OpenGL programs

This was fixed in catalyst 8.9. It may occur though in later versions.

OpenGL programs like e.g. blender in windowed mode, show a rectangle/checkerbox corruption. This can be solved by using a Virtual display setting with a multiple of 64 bigger than your actual resolution like 1664 instead 1600 for width:

 Section "Screen"
   Identifier "Screen0"
   Device     "Card0"
   Monitor    "Monitor0"
   SubSection "Display"
     Depth     24
     Virtual 1664 1200
   EndSubSection
 EndSection

Black screen with complete lockups / hangs after reboot or startx

Faulty or corrupted amdpcsdb database

Fglrx and its Catalyst Control Center stores data on a database called amdpcsdb, located under /etc/ati. It isn't human readable, but only parsable by Catalyst Control Center. Sometimes, after updates, the settings in there aren't compatible with the new version of fglrx, so you end up with a black screen when starting X.

So, there is one thing to do.

Boot to init3, add the number 3 at the end of the menu.lst kernel options:

# rm /etc/ati/amdpcsdb

and restart Xorg (or even reboot).

Warning: Be careful. If you have saved settings through Catalyst Control Center, which are stored under that file, they may now have been lost. You should edit xorg.conf instead, by using aticonfig.

Be careful though. aticonfig stores its settings in amdpcsdb database like Catalyst Control Center. If you want that they're stored in xorg.conf instead, each time you use the aticonfig tool, add --input=/etc/X11/xorg.conf in the end of the command options as well.

Faulty ACPI hardware calls

It is possible that fglrx doesn't cooperate well with the system's ACPI hardware calls, so it autodisables itself and there is no screen output.

So try to run this:

  aticonfig --acpi-services=off

KDM disappears after logout

If you are running the catalyst proprietary driver and you get a console (tty1) instead of the expected KDM greeting when you log out, you must instruct KDM to restart the X server after each logout:

$ sudo nano /usr/share/config/kdm/kdmrc

Uncomment the following line under the section titled [X-:*-Core]:

TerminateServer=True

KDM should now appear when you log out of KDE.

Bad screen resolution at login manager

If the resolution for your login manager is for example 1600x1200 and you want 1280x1024 you can fix it by using a xorg.conf (newer X-servers using the open source drivers normally don't need a xorg.conf, so if you don't have a xorg.conf you need to create one). In the "Screen" section add a modes lines:

 Section "Screen"
   Identifier "aticonfig-Screen[0]-0"
   Device     "aticonfig-Device[0]-0"
   Monitor    "aticonfig-Monitor[0]-0"
   DefaultDepth     24
   SubSection "Display"
     Viewport   0 0
     Depth     24
     Modes    "1280x1024" "2048x1536"#<-add this line to change the default login screen resolution
   EndSubSection
   EndSection

The first argument of modes is the resolution, which will be used by default. The second argument is the maximum resolution supported by your monitor. This is needed so that you are able to choose higher screen resolutions using for example the KDE systemsettings.

Direct Rendering Doesn't Work

This problem may occur when using the proprietary catalyst driver.

Warning: Make sure that you own a R6xx (HD2xxx) or newer card or the driver won't be enabled. You may encounter that error if you try to enable your display by using catalyst and a card older than the R6xx ones.
Warning: This error would also appear if you haven't rebooted your system after the installation or upgrade of catalyst. The system needs to load the fglrx.ko module in order to make the driver work.

If you have problem with direct rendering, run:

   $ LIBGL_DEBUG=verbose glxinfo > /dev/null

at the command prompt. At the very start of the output, it'll usually give you a nice error message saying why you don't have direct rendering.

Common errors, and their solutions, are:

   libGL error: XF86DRIQueryDirectRenderingCapable returned false
  • Ensure that you are loading the correct agp modules for your AGP chipset before you load the fglrx kernel module. To determine which agp modules you'll need, run hwdetect --show-agp, then ensure that all modules listed from that command are in the MODULES= array in rc.conf, before fglrx.
   libGL error: failed to open DRM: Operation not permitted
   libGL error: reverting to (slow) indirect rendering
  • For this, make sure you have the following section in your xorg.conf somewhere:
   Section "DRI"
       Mode 0666
   EndSection
   libGL: OpenDriver: trying /usr/lib/xorg/modules/dri//fglrx_dri.so
   libGL error: dlopen /usr/lib/xorg/modules/dri//fglrx_dri.so failed (/usr/lib/xorg/modules/dri//fglrx_dri.so: cannot open shared object file: No such file or directory)
   libGL error: unable to find driver: fglrx_dri.so
  • Something hasn't been installed correctly. If the paths in the error message are /usr/X11R6/lib/modules/dri/fglrx_dri.so, then ensure you've logged completely out of your system, then back in. If you're using a graphical login manager (gdm, kdm, xdm), ensure that /etc/profile is sourced every time you log in. This is usually accomplished by adding source /etc/profile into ~/.xsession or ~/.xinitrc, but may vary between login managers.
  • If the paths above in your error message _are_ /usr/lib/xorg/modules/dri/fglrx_dri.so, then something hasn't been correctly installed. Try reinstalling the catalyst package.

Errors such as:

   fglrx: libGL version undetermined - OpenGL module is using glapi fallback

could be caused by having multiple versions of libGL.so on your system. Run:

   $ sudo updatedb
   $ locate libGL.so

This should return the following output:

   $ locate libGL.so
   /usr/lib/libGL.so
   /usr/lib/libGL.so.1
   /usr/lib/libGL.so.1.2
   $

These are the only three libGL.so files you should have on your system. If you have any more (e.g. /usr/X11R6/lib/libGL.so.1.2), then remove them. This should fix your problem.

You might not get any error to indicate that this is a problem. If you are using X11R7, make sure you do not have these files on your system:

   /usr/X11R6/lib/libGL.so.1.2
   /usr/X11R6/lib/libGL.so.1

Hibernate/Sleep Issues

Video fails to enter suspend/hibernate

If fglrx returns an error when attempting to suspend through hibernate scripts, a solution may be to add the following line to your "Device" section in /etc/X11/xorg.conf, which should allow the fglrx module to enter suspend mode.

Option      "UseInternalAGPGart" "no"

Video fails to resume from suspend2ram

ATI's proprietary catalyst driver cannot resume from suspend if the framebuffer is enabled. To disable the framebuffer, add vga=0 to your kernel options in /boot/grub/menu.lst, for example:

# (0) Arch Linux
title  Arch Linux
root   (hd0,0)
kernel /vmlinuz26 root=/dev/sda3 resume=/dev/sda2 ro vga=0
initrd /kernel26.img

System Freezes/Hard locks

  • To prevent system lockups, try adding the following lines to your fglrx "Device" section in xorg.conf
   Option "UseInternalAGPGART"         "no"
   Option "KernelModuleParm"           "agplock=0" # AGP locked user pages: disabled
Note: Neither option is necessary anymore since 8.24.18 because ATI has removed the internal AGP GART support from the driver.
  • As well, the radeonfb framebuffer drivers have been known in the past to cause problems of this nature. If your kernel has radeonfb support compiled in, you may want to try a different kernel and see if this helps.

Hardware Conflicts

Radeon cards used in conjunction with some versions of the nForce3 chipset (e.g. nForce 3 250Gb) won't have 3D acceleration. Currently the cause of this issue is unknown, but some sources indicate that it may be possible to get acceleration with this combination of hardware by booting Windows with the drivers from nVIDIA and then rebooting the system. This can be verified by issuing in a root console the following command:

    dmesg | grep agp

If you get something similar to this (using an nForce3-based system)

    agpgart: Detected AGP bridge 0
    agpgart: Setting up Nforce3 AGP.
    agpgart: aperture base > 4G

and also if issuing this command...

     tail -n 100 /var/log/Xorg.0.log | grep agp

...gets something similar to:

     (EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_ENODEV"

Then you have this bug.

Some sources indicate that in some situations, downgrading the motherboard BIOS may help, but this cannot be verified in all cases. Also, a bad BIOS downgrade can render your hardware useless, so beware.

See bug http://bugzilla.kernel.org/show_bug.cgi?id=6350 for more information and a potential fix.

Compaq Presario Laptops

Even after installing the drivers and editing the configuration file as required, some laptops (e.g. Presario R4000 with Xpress 200M) just come up with a blank screen.

The problem seems to be incorrect memory detected by the kernel(even if you have 128M of video memory lspci -v always reports 256M). Changing the BIOS settings so that it uses the "SidePort+UMA" option and 128M video memory plus another 128M taken from the system seems to work fine.

It could be a bug in the BIOS or in the Linux PCI code.

Temporary hangs when playing video

This problem may occur when using the proprietary catalyst driver.

If you experience temporary hangs lasting from a few seconds to several minutes occuring randomly during playback with mplayer, check /var/log/messages.log for output like:

Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
Nov 28 18:31:56 pandemonium [<f8bc628c>] ? ip_firegl_ioctl+0x1c/0x30 [fglrx]
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
Nov 28 18:31:56 pandemonium [<c0197038>] ? vfs_ioctl+0x78/0x90
Nov 28 18:31:56 pandemonium [<c01970b7>] ? do_vfs_ioctl+0x67/0x2f0
Nov 28 18:31:56 pandemonium [<c01973a6>] ? sys_ioctl+0x66/0x70
Nov 28 18:31:56 pandemonium [<c0103ef3>] ? sysenter_do_call+0x12/0x33
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
Nov 28 18:31:56 pandemonium =======================

Adding the nopat kerneloption to /boot/grub/menu.lst and rebooting fixed the problem at least for me.

After a kernel upgrade: X doesn't start/modprobe doesn't find fglrx

Reinstall the catalyst drivers.

External links

More info can be found here

Personal tools