个人工具

“UbuntuHelp:RadeonDriver”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
 
(未显示同一用户的4个中间版本)
第2行: 第2行:
 
{{Languages|UbuntuHelp:RadeonDriver}}
 
{{Languages|UbuntuHelp:RadeonDriver}}
 
#title The open source ATI driver (xserver-xorg-video-ati)
 
#title The open source ATI driver (xserver-xorg-video-ati)
This guide will show you how to use the Free, Open Source driver for many ATI graphics cards called "radeon" or "ati". It will provide 2D and 3D acceleration in your video hardware. This driver is not as fast as the closed-source, proprietary "fglrx" driver from AMD/ATI Inc. for most cards, but it is compatible with AIGLX and has better dual-head support.
+
This guide will show you how to use the Free, Open Source driver for many ATI graphics cards called "radeon" or "ati". It will provide 2D and 3D acceleration in your video hardware. This driver is not as fast as the closed-source, proprietary "fglrx" driver from AMD/ATI Inc. for some cards, but has better dual-head support, and supports some older chipsets that fglrx does not.
*Note: As of version 8.42.3, the closed-source "fglrx" driver (released on 23-10-2007) has AIGLX support and performance is much boosted beyond previous versions. To install see here: https://help.ubuntu.com/community/BinaryDriverHowto/ATI
+
 
=== Will It Work On Your Card? ===
 
=== Will It Work On Your Card? ===
 
Check first your graphic card name and chipset:
 
Check first your graphic card name and chipset:
 
<pre><nowiki>
 
<pre><nowiki>
$ lspci -nn | grep VGA
+
lspci -nn | grep VGA
 
</nowiki></pre>
 
</nowiki></pre>
 
It should report something like this for your graphics card:
 
It should report something like this for your graphics card:
 
<pre><nowiki>
 
<pre><nowiki>
01:00.0 VGA compatible controller: ATI Technologies Inc RV350 AS [Radeon 9550]</nowiki></pre>
+
01:00.0 VGA compatible controller: ATI Technologies Inc RV350 AS [Radeon 9550]
 +
</nowiki></pre>
 
==== Unsupported ====
 
==== Unsupported ====
 
You are currently not able to use the "radeon" driver for the following cards and derivatives:
 
You are currently not able to use the "radeon" driver for the following cards and derivatives:
 
<pre><nowiki>
 
<pre><nowiki>
HD 4xxx / RV770 based cards
+
None known.
 
</nowiki></pre>
 
</nowiki></pre>
For these cards you must use the "fglrx" driver, or the new open-source "radeonhd" driver (no 3D, and in development).
+
For these cards you must use the "fglrx" driver.
==== 2D acceleration only ====
+
==== 2D modesetting only ====
 
<pre><nowiki>
 
<pre><nowiki>
 +
HD 3xxx / R600 based cards
 +
HD 4xxx / R700 based cards
 +
</nowiki></pre>
 +
==== Accelerated 3D support (r300, r400 and r500 series) ====
 +
All these cards and derivatives have good 3D acceleration support
 +
<pre><nowiki>
 +
9500 / R300 based cards
 +
9600 / rv350 or rv360 based cards
 +
9700 / R300 based cards
 +
9800 / R350 or R360 based cards
 +
X300 / rv370 based cards
 +
X600 / rv380 based cards
 +
X700 / rv410 based cards
 +
X800 / R420 or R423 or R430 or R480 based cards
 +
X850 / R480 or R481 based cards
 +
X1050 / rv370 based cards
 +
X1300 / R515 based cards
 +
X1600 / R530 based cards
 +
X1800 / R520 based cards
 +
X1900 / R580 based cards
 
Xpress 200 / RS480 IGP
 
Xpress 200 / RS480 IGP
 
Xpress 200 / RS482 IGP for Intel
 
Xpress 200 / RS482 IGP for Intel
第31行: 第51行:
 
Xpress 1250 / AMD 690G / RS600 IGP for Intel
 
Xpress 1250 / AMD 690G / RS600 IGP for Intel
 
Xpress 1270 / AMD M690T / RS690T IGP
 
Xpress 1270 / AMD M690T / RS690T IGP
X1300 / R515 based cards
 
X1600 / R530 based cards
 
X1800 / R520 based cards
 
X1900 / R580 based cards
 
 
</nowiki></pre>
 
</nowiki></pre>
If you have an Xpress chip see [[UbuntuWiki:X/RadeonXpress|RadeonXpress]] for instructions on how to enable 3D support and desktop effects.
+
If you have an Xpress chip and you are not using Ubuntu 8.10 or later see [[UbuntuHelp:RadeonXpress|RadeonXpress]] for instructions on how to enable 3D support and desktop effects.
==== Accelerated 3D support (r300 series) ====
+
All these cards and derivatives have good 3D acceleration support
+
<pre><nowiki>
+
9500 / R300 based cards
+
9600 / rv350 or rv360 based cards
+
9700 / R300 based cards
+
9800 / R350 or R360 based cards
+
X300 / rv370 based cards
+
X600 / rv380 based cards
+
X700 / rv410 based cards
+
X800 / R420 or R423 or R430 or R480 based cards
+
X850 / R480 or R481 based cards
+
X1050 / rv370 based cards</nowiki></pre>
+
 
==== Full 3D support (r100 and r200 series) ====
 
==== Full 3D support (r100 and r200 series) ====
 
All these cards and derivatives have full 3D acceleration support
 
All these cards and derivatives have full 3D acceleration support
第59行: 第62行:
 
9000 / rv250 based cards
 
9000 / rv250 based cards
 
9100 / R200 based cards
 
9100 / R200 based cards
9200 / rv280 based cards</nowiki></pre>
+
9200 / rv280 based cards
There is a bug related to the DVI output on the rv280-based cards, please check [[UbuntuHelp:Radeon_9200/9250__RV280__and_DVI]]
+
</nowiki></pre>
=== Ubuntu installation with AIGLX ===
+
There is a bug related to the DVI output on the rv280-based cards, please check [[UbuntuHelp:Radeon_9200/9250_(RV280)_and_DVI|Radeon_9200/9250_(RV280)_and_DVI]]
The ati driver is already shipped with Ubuntu, so you won't have to download it.
+
If you experience curious behaviour (e.g. hangs on login) you may find a solution under [[UbuntuWiki:X/Quirks|X/Quirks]].
This driver is completely compatible with AIGLX, so if you want an accelerated desktop, you don't need to install XGL.
+
 
=== Removing the proprietary fglrx driver ===
 
=== Removing the proprietary fglrx driver ===
''fglrx'' is the name of the closed-source, proprietary driver from ATI. It conflicts with the open-source "radeon" driver. If the "fglrx" kernel module is loaded at boot, X will be able to start using the "radeon" driver but "Direct Rendering" (DRI) will be disabled. This results in a severe performance reduction. Use the "Restricted Driver Manager" and make sure "ATI accelerated graphics driver" is not in use.
+
''fglrx'' is the name of the closed-source, proprietary driver from AMD/ATI. It conflicts with the open-source "radeon" driver. If the "fglrx" kernel module is loaded at boot, X will be able to start using the "radeon" driver but "Direct Rendering" (DRI) will be disabled. This results in a severe performance reduction. Use System->Administration->Hardware Drivers to make sure "ATI accelerated graphics driver" is not in use.
 +
It is important to note that with the release of 9.04, the fglrx driver dropped support for the r500 line of cards.  If you are upgrading from 8.10 or a previous release and use one of these cards, it is strongly suggested that you remove fglrx prior to upgrading to avoid any problems.  However, you can still remove the fglrx driver after the upgrade if it causes problems.
 
If you previously used the proprietary "fglrx" driver it is highly recommended to totally get rid of the fglrx package:
 
If you previously used the proprietary "fglrx" driver it is highly recommended to totally get rid of the fglrx package:
 
<pre><nowiki>
 
<pre><nowiki>
第72行: 第75行:
 
The libGL.so in /usr/lib might also still be the version installed by xorg-driver-fglrx. You can check that very easily, just run:
 
The libGL.so in /usr/lib might also still be the version installed by xorg-driver-fglrx. You can check that very easily, just run:
 
<pre><nowiki>
 
<pre><nowiki>
$ glxinfo |grep vendor</nowiki></pre>
+
$ glxinfo |grep vendor
If you see: client glx vendor string: ATI, then the libGL.so is still from ATI. Make sure libgl1-mesa-glx and libgl1-mesa-dri are properly installed:
+
</nowiki></pre>
 +
If you see: client glx vendor string: ATI, then the libGL.so is still from ATI.  
 +
Make sure libgl1-mesa-glx and libgl1-mesa-dri are properly installed:
 
<pre><nowiki>
 
<pre><nowiki>
 
$ sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri</nowiki></pre>
 
$ sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri</nowiki></pre>
 +
Make sure "fglrx" is not listed in /etc/modules file. 
 
Of course, make sure your xorg.conf does not contain any "fglrx" entry.
 
Of course, make sure your xorg.conf does not contain any "fglrx" entry.
=== Configuring X.org ===
+
See also [[UbuntuWiki:X/Troubleshooting/FglrxInteferesWithRadeonDriver|X/Troubleshooting/FglrxInteferesWithRadeonDriver]]
From Ubuntu 7.10 and onwards, the driver and server autodetect most settings. You can often just take away your xorg.conf and it will run fine.
+
=== Recommended configuration for X.org ===
 +
No configuration is necessary for ATI driver in the modern versions of Ubuntu. You can safely take away your xorg.conf and your computer will run fine.  
 +
=== Customized configuration for X.org, the new way ===
 +
Ubuntu Karmic Koala 9.10 and later supports Kernel Mode Settings (KMS) in ATI driver.  This mode allows to automatically detect all necessary settings for your hardware, as well as to provide for better viewing experience.  Notably, KMS eliminates "tearing" and "blinking" of video, including flash, and 3D windows, such as games.  The configuration file xorg.conf is not required using KMS.
 +
In order to enable KMS, follow instructions in '''"KMS with a Radeon card"''' section on page [[UbuntuWiki:X/KernelModeSetting|KernelModeSetting|page]]
 +
=== Customized configuration for X.org, the old way ===
 
The instructions below are based on the edition of /etc/X11/xorg.conf . You will have to edit it with superuser privileges (using the ''sudo'' command). You can use gedit if you are using Ubuntu (Gnome) or kate if you are using Kubuntu (KDE). If you are in a console you can use [[UbuntuHelp:VimHowto|vim]] or ''nano'' .
 
The instructions below are based on the edition of /etc/X11/xorg.conf . You will have to edit it with superuser privileges (using the ''sudo'' command). You can use gedit if you are using Ubuntu (Gnome) or kate if you are using Kubuntu (KDE). If you are in a console you can use [[UbuntuHelp:VimHowto|vim]] or ''nano'' .
 
<pre><nowiki>
 
<pre><nowiki>
sudo vim /etc/X11/xorg.conf</nowiki></pre>
+
sudo vim /etc/X11/xorg.conf
 +
</nowiki></pre>
 
or
 
or
 
<pre><nowiki>
 
<pre><nowiki>
sudo nano /etc/X11/xorg.conf</nowiki></pre>
+
sudo nano /etc/X11/xorg.conf
 +
</nowiki></pre>
 
==== Configuring your graphics card "Device" section ====
 
==== Configuring your graphics card "Device" section ====
 
You first of all have to find the device section already related to your graphics card. It can have any name, or might even not exist if you are just installing your xserver. You can usually find it right after your mouse entry.
 
You first of all have to find the device section already related to your graphics card. It can have any name, or might even not exist if you are just installing your xserver. You can usually find it right after your mouse entry.
第94行: 第107行:
 
BusID "PCI:1:0:0"
 
BusID "PCI:1:0:0"
 
Option "XAANoOffscreenPixmaps"
 
Option "XAANoOffscreenPixmaps"
EndSection</nowiki></pre>
+
EndSection
 +
</nowiki></pre>
 
''Identifier'' is the name you give your graphics card. It is better if it is short. It can be anything. (I only tested with alphanumerical names though).
 
''Identifier'' is the name you give your graphics card. It is better if it is short. It can be anything. (I only tested with alphanumerical names though).
 
''Driver'' specifies which driver you want to use. IT HAS TO BE <code><nowiki>ati</nowiki></code> and NOT <code><nowiki>radeon</nowiki></code> or <code><nowiki>fglrx</nowiki></code>. The "ati" driver is a wrapper that will load the "radeon" driver if possible.
 
''Driver'' specifies which driver you want to use. IT HAS TO BE <code><nowiki>ati</nowiki></code> and NOT <code><nowiki>radeon</nowiki></code> or <code><nowiki>fglrx</nowiki></code>. The "ati" driver is a wrapper that will load the "radeon" driver if possible.
第100行: 第114行:
 
A BusID given in lspci as 01:00.0 will become <code><nowiki>"PCI:1:0:0"</nowiki></code> in xorg.conf . (Warning: lspci reports hexadecimal numbers, xorg.conf needs decimal.)
 
A BusID given in lspci as 01:00.0 will become <code><nowiki>"PCI:1:0:0"</nowiki></code> in xorg.conf . (Warning: lspci reports hexadecimal numbers, xorg.conf needs decimal.)
 
The <code><nowiki>"XAANoOffscreenPixmaps"</nowiki></code> option maybe necessary for AIGLX desktop acceleration, you can try disabling it and it should work fine (maybe quicker) for the newest versions of ubuntu.
 
The <code><nowiki>"XAANoOffscreenPixmaps"</nowiki></code> option maybe necessary for AIGLX desktop acceleration, you can try disabling it and it should work fine (maybe quicker) for the newest versions of ubuntu.
 +
If your computer is locking up when you try and run opengl applications (for instance glxgears) then you might have to add the following options under device
 +
<pre><nowiki>
 +
Option        "BusType" "PCI"
 +
Option       "AGPMode" "1"
 +
</nowiki></pre>
 
==== The "Monitor" section ====
 
==== The "Monitor" section ====
 
This is what your monitor section should look like:
 
This is what your monitor section should look like:
 +
WARNING: The HorizSync/VertRefresh settings affect the monitor's signal frequency rate. They are shown as sample only! Incorrect or overdriven settings can force the monitor to switch itself off for protection or, for very old monitors, even destroy them! Consult the manufacturer's information or manual for correct values for your specific monitor model, or do not specify them for X server to automatically probe your monitor's DDC for correct values.
 
<pre><nowiki>
 
<pre><nowiki>
 
Section "Monitor"
 
Section "Monitor"
第108行: 第128行:
 
HorizSync 28-72
 
HorizSync 28-72
 
VertRefresh 43-60
 
VertRefresh 43-60
EndSection</nowiki></pre>
+
EndSection
''Identifier'' is the name you want to give your monitor.
+
</nowiki></pre>
The DPMS option is a power management option -but i am not sure about that anymore- anyway, it will certainly be compatible with your hardware.
+
''Identifier'' is the name you want to give your monitor.  
Horiz``Sync and Vert``Refresh options are often not necessary. However for me they are. These are given in the example but are pretty much standard. You can refer to your monitor's documentation to find them.
+
The DPMS option instructs X.Org to allow monitor Power Management on this monitor. It is not necessary.
 +
Horiz``Sync and Vert``Refresh options are not necessary, unless DDC cannot be detected or you want to force specific rate. Refer to your monitor's documentation, site or even back of the monitor to find correct values for your particular monitor model.
 +
Incorrect HorizSync/VertRefresh values can be dangerous! If you do not specify them X.org will read correct values from Monitor DDC instead. The monitor, graphics card and data cable should (and in 99.9% cases they do) support it. Only sRGB VGA cables cannot transfer DDC data so far.
 
====  The "Screen" section ====
 
====  The "Screen" section ====
 
It will basically look like that:
 
It will basically look like that:
第124行: 第146行:
 
Modes "1440x900" "1024x768"
 
Modes "1440x900" "1024x768"
 
EndSubSection
 
EndSubSection
EndSection</nowiki></pre>
+
EndSection
 +
</nowiki></pre>
 
''Identifier'' is the name you give to your screen. It does not really matter, but I prefer it short.
 
''Identifier'' is the name you give to your screen. It does not really matter, but I prefer it short.
 
''Device'' has to be the name you previously gave to your graphics card.
 
''Device'' has to be the name you previously gave to your graphics card.
''Monitor'' is the name you gave your monitor
+
''Monitor'' is the name you gave your monitor.
''Default``Depth'' is the bit-per-pixel depth X.org will use, most likely you want 24.
+
''Default``Depth'' is the bit-per-pixel depth you want to force X.org to use, most likely you want 24. If you dont specify this line, X.org will use all reported color range (8,16,24 or 32 - depending on support).
The modes in the "Display" subsection have to be supported by your monitor. If you don't know, choose 1024x768, it is a safe bet. If you know, list your favorite resolution first, and the other resolutions available after.
+
The modes in the "Display" subsection instruct X.org to explicitly use only specified modes and have to be supported by your monitor. This is useful, if you want to prevent X.org using maximum available resolution on login screen, or want to limit or exclude some of supported (or reported as supported), but undesired resolutions. If you don't know, choose 1024x768, it is a safe bet. If you know, list your favorite resolution first, and the other resolutions available after.
 
For cards low on video RAM, you might need to add a "Virtual" line to the "Display" subsection of the "Screen" section in xorg.conf, since the default values (see /var/log/Xorg.0.log) are a bit "greedy" on memory.
 
For cards low on video RAM, you might need to add a "Virtual" line to the "Display" subsection of the "Screen" section in xorg.conf, since the default values (see /var/log/Xorg.0.log) are a bit "greedy" on memory.
 
<pre><nowiki>
 
<pre><nowiki>
第147行: 第170行:
 
<pre><nowiki>
 
<pre><nowiki>
 
Section "ServerLayout"
 
Section "ServerLayout"
Option "AIGLX" "true"
 
 
Identifier "Default Layout"
 
Identifier "Default Layout"
 
Screen "Default Screen"
 
Screen "Default Screen"
第153行: 第175行:
 
InputDevice "Configured Mouse"
 
InputDevice "Configured Mouse"
 
EndSection</nowiki></pre>
 
EndSection</nowiki></pre>
The AIGLX option is to enable AIGLX for fancy 3D desktop effects.
 
 
''Identifier'' should not be changed.
 
''Identifier'' should not be changed.
 
''Screen'' is the name you gave to your screen in the screen section.
 
''Screen'' is the name you gave to your screen in the screen section.
 
''Input``Device'' are for the devices you want to use (with a section device in this file) and which are not your graphics card or monitor.
 
''Input``Device'' are for the devices you want to use (with a section device in this file) and which are not your graphics card or monitor.
=== Restart and get a new accelerated desktop! ===
+
==== Restart ====
 
Restart the X server by pressing simultaneously Ctrl-Alt-Backspace (quick and dirty) or log out, switch to a text console (ctrl-alt-F1), log in and run
 
Restart the X server by pressing simultaneously Ctrl-Alt-Backspace (quick and dirty) or log out, switch to a text console (ctrl-alt-F1), log in and run
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo /etc/init.d/gdm restart</nowiki></pre>
 
sudo /etc/init.d/gdm restart</nowiki></pre>
If you want to have a new windows decorator to use AIGLX, you can try [[UbuntuHelp:CompositeManager/AIGLXOnEdgy?action=fullsearch&context=180&value=compiz&titlesearch=Titles|compiz]]|(simple and performant) or [[UbuntuHelp:CompositeManager/AIGLXOnEdgy?action=fullsearch&context=180&value=beryl&titlesearch=Titles|Beryl]] (lots of bugs, sometimes slow, but lots of fancy stuff). However before that you might want to test the driver:
 
 
=== Testing The Driver ===
 
=== Testing The Driver ===
To see if you are using the driver you can test your 3D settings. To test your OpenGL acceleration you can run:
+
* To see if your driver uses KMS (Kernel Mode Setting), run command
 +
<pre><nowiki>
 +
dmesg | grep drm</nowiki></pre>
 +
This should indicate that the drm got initialized and set up, with maybe mention of the framebuffer and modes set. E.g.:
 +
<pre><nowiki>
 +
[    2.699321] [drm] Initialized drm 1.1.0 20060810
 +
[    2.819877] [drm] set up 7M of stolen space
 +
[    3.334947] [drm] TV-14: set mode NTSC 480i 0
 +
[    3.493351] fb0: inteldrmfb frame buffer device
 +
[    3.513539] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
 +
[    3.627621] [drm] LVDS-8: set mode 1280x800 1d
 +
[    4.227945] [drm] TV-14: set mode NTSC 480i 0
 +
</nowiki></pre>
 +
* To see if you are using the driver you can test your 3D settings. To test your OpenGL acceleration you can run:
 
<pre><nowiki>
 
<pre><nowiki>
 
$ glxinfo | grep vendor</nowiki></pre>
 
$ glxinfo | grep vendor</nowiki></pre>
This has to be SGI. Otherwise you did not install the driver properly. Make sure you restarted the Xserver, or if this does not help, go to the "good bye fglrx" section.
+
This has to be SGI. Otherwise you did not install the driver properly. Make sure you restarted the Xserver, or if this does not help, go to the "Removing the proprietary fglrx driver" section.
 
<pre><nowiki>
 
<pre><nowiki>
 
$ glxinfo | grep "direct rendering"</nowiki></pre>
 
$ glxinfo | grep "direct rendering"</nowiki></pre>
第172行: 第205行:
 
<pre><nowiki>
 
<pre><nowiki>
 
$ LIBGL_DEBUG=verbose glxinfo</nowiki></pre>
 
$ LIBGL_DEBUG=verbose glxinfo</nowiki></pre>
If you get ''No direct rendering'', then your card probably is not supported by the open source driver. You will have to install the [[UbuntuHelp:BinaryDriverHowto/ATI|proprietary|fglrx driver]].  
+
If you get ''No direct rendering'', then your card probably is not supported by the open source driver. You will have to install the [[UbuntuHelp:BinaryDriverHowto/ATI|proprietary|fglrx driver]].
 
=== Tweaking The Driver ===
 
=== Tweaking The Driver ===
There are a few options which you can give to the driver to speed up its performance. Here is an exemple of the device section of <code><nowiki>/etc/X11/xorg.conf</nowiki></code>.
+
There are a few options which you can give to the driver to speed up its performance. Here is an example of the device section of <code><nowiki>/etc/X11/xorg.conf</nowiki></code>.
 
<pre><nowiki>
 
<pre><nowiki>
 
Section "Device"
 
Section "Device"
         Identifier      "ATI Technologies, Inc. Radeon 9600"
+
         Identifier      "ATI graphics card 0"
         Driver          "ati"
+
         Driver          "radeon"
         Option          "AGPMode"        "8"    #usually not needed, the driver will use the setting from BIOS
+
         #ChipID        0x4144                  # some cards (i.e. 9800SE, or partially broken) with reduced capabilities work fine accessing only
         Option          "AccelMethod"    "XAA"  #either XAA or EXA. "XAA" is the default and safe choice
+
                                                # parts of the hardware (by supplying the PCI ChipID of a lower end card, http://pci-ids.ucw.cz/read/PC/1002)
        Option          "ColorTiling"    "on"
+
         Option          "AccelMethod"    "EXA"  #either XAA or EXA. "EXA" is the default since Karmic. Try XAA if you experience performance issues
         Option          "EnablePageFlip" "true" #only works with accelmethod "XAA"
+
         #Option          "EnablePageFlip" "true" #only works with accelmethod "XAA"
        Option          "AccelDFS"      "true" #seemed to speed things up using EXA acceleration
+
 
         Option          "TripleBuffer"  "true" #This *might* help if you use something like Beryl and have slow video playback.
 
         Option          "TripleBuffer"  "true" #This *might* help if you use something like Beryl and have slow video playback.
 
         Option          "DynamicClocks"  "on"  #This is for laptop users, it saves energy when in battery mode.
 
         Option          "DynamicClocks"  "on"  #This is for laptop users, it saves energy when in battery mode.
 
+
         BusID          "PCI:1:0:0"            # (if machine has multiple cards) must match your lspci output
        Option          "DMAForXv"      "true" #This can speed up movie playback but can in rare cases case instability
+
        Option          "GARTSize"      "64"  #This is the size of the "GART" that xorg will use.
+
 
+
         BusID          "PCI:1:0:0"            #must match your lspci output
+
 
EndSection</nowiki></pre>
 
EndSection</nowiki></pre>
Accel``Method is by default "XXA". The newer "EXA" architecture keeps improving, and for some cards you might see speed improvements using it. Other cards might experience instability.
+
Since Karmic Accel``Method is by default "EXA". It should be faster than the older "XAA".
Color``Tiling should generally be kept on, it is automatically disabled if it can't be used for whatever reason and speeds things up.
+
Enable``Page``Flip can cause a lot of instability on some newer radeon cards. It can give a performance boost though, if you are experiencing instabilities consider disabling this option.
Accel``DFS is only enabled when Accel``Method is set to EXA, it can increase performance.
+
Even under accel method XAA, Enable``Page``Flip can cause a lot of instability on some newer radeon cards. It can give a performance boost though, if your are experiencing instabilities consider disabling this option.
+
 
Dynamic``Clocks will lower the 'clockspeed' of the GPU when its not in use, hopefully saving energy. if your feeling green you can enable this, some people report a reduced performance however.
 
Dynamic``Clocks will lower the 'clockspeed' of the GPU when its not in use, hopefully saving energy. if your feeling green you can enable this, some people report a reduced performance however.
DMAForXV will increase the performance of video (movies and such) but can cause instabilities. if totem/mplayer/yourfavoritemovieplayer is experiencing crashes consider disabling this.
 
GARTSize increasing the size of this may increase the performance of your graphics card but it will also increase the memory footprint of the X server, consider reducing this size if you experience this.
 
 
Check the manpage of the ''radeon'' driver for more options. Please note that some more options might be available, but are undocumented.
 
Check the manpage of the ''radeon'' driver for more options. Please note that some more options might be available, but are undocumented.
 
<pre><nowiki>
 
<pre><nowiki>
 
$ man radeon
 
$ man radeon
 
</nowiki></pre>
 
</nowiki></pre>
=== Getting Dual-head to work ===
 
There used to be two different ways to get dual-head (multiple displays on one computer) to work in X: using MergedFB or Xinerama. MergedFB is the simplest to configure, and has DRI (this has to do with 3D support) on both screens. Newer driver versions uses "xrandr".
 
==== XRandR 1.2 ====
 
Since Ubuntu 7.10, the "ati" driver has support for xrandr 1.2, and xrandr is now the preferred way to set up dual-head. See [http://wiki.x.org/wiki/Projects/XRandR XRandR Documentation].
 
==== MergedFB ====
 
MergedFB is automatically enabled when an external display is detected. If not configured correctly this will result in the screens running in clone mode, in stead of extending the desktop. To get a big desktop, add the following to the Section "Device" of your Xorg.conf:
 
<pre><nowiki>
 
        Option  "MonitorLayout"                "LCD, CRT"
 
        Option  "CRT2Position"                  "RightOf"
 
        Option  "MetaModes"                    "1400x1050-1024x768"
 
        Option  "MergedXinerama"                "on"
 
        Option  "MergedNonRectangular"          "true"
 
        Option  "MergedFB"                      "true"
 
</nowiki></pre>
 
Please pay attention to the following things:
 
- Use the "Monitor``Layout" LCD and CRT even if you have 2 LCDs or CRTs. This basically defines which is the primary display.
 
- The "CRT2 Position" indicates the physical location of your secondary monitor in relationship to your primary monitor. Valid options are: Clone, Left``Of, Right``Of, Above, and Below
 
- "Meta``Modes" sets the monitor resolutions for Primary-Secondary monitors, which together make up the total virtual desktop. In this double-resolution example the primary display runs at 1400x1050 and the second display runs at 1024x768. These resolutions can also be equal. Defining a single resolution results in clone mode and putting multiple resolutions (single or double) between the parentencies allows switching with CTRL-ALT-+/-.
 
- the "Merged``Xinerama" setting assists in window placement support.
 
- If the two screens defined with "Meta``Modes" are not working at the same resolution, "Merged Non Rectangular" blocks the smaller one from scrolling by not allowing the mouse pointer to use the height difference of the two resolutions on the smallest screen.
 
If you do not get dual-head working based on these instructions, start by reading the "radeon" manual pages. They contain an overview of options that can be used with explanation of how they work. Reading the manual can be done by opening a terminal and running the following command:
 
<pre><nowiki>
 
$ man radeon
 
</nowiki></pre>
 
Please note however that this manual can be out of date, which means some of the available options might not be described there.
 
==== Xinerama ====
 
Using Xinerama requires declaring all devices twice in Xorg.conf. Even if you only have one video card, you have to define it twice if you use two of its video output options. Your Xorg.conf will thus contain two monitor, device and screen definitions. Below is an example of this:
 
<pre><nowiki>
 
Section "Monitor"
 
Identifier  "Monitor0"
 
Option     "DPMS" "true"
 
EndSection
 
 
Section "Monitor"
 
Identifier  "Monitor1"
 
Option     "DPMS" "true"
 
EndSection
 
 
Section "Device"
 
Identifier  "ati0"
 
Driver      "ati"
 
Option      "MonitorLayout"  "LVDS, CRT"
 
Screen      0
 
BusID      "PCI:1:0:0"
 
EndSection
 
 
Section "Device"
 
Identifier  "ati1"
 
Driver      "ati"
 
Option      "MonitorLayout"  "LVDS, CRT"
 
Screen      1
 
BusID      "PCI:1:0:0"
 
EndSection
 
 
Section "Screen"
 
Identifier "Screen0"
 
Device    "ati0"
 
Monitor    "Monitor0"
 
DefaultDepth    24
 
SubSection "Display"
 
Depth    24
 
Modes "1400x1050" "1280x1024" "1024x768" "800x600" "640x480"
 
EndSubSection
 
EndSection
 
 
Section "Screen"
 
Identifier "Screen1"
 
Device    "ati1"
 
Monitor    "Monitor1"
 
DefaultDepth    24
 
SubSection "Display"
 
Depth    24
 
Modes "1400x1050" "1280x1024" "1024x768" "800x600" "640x480"
 
EndSubSection
 
EndSection
 
</nowiki></pre>
 
Make sure the Monitor``Layout definition is correct. The types that can be used can be found in the ''ati'' manual page. Also make sure both screen definitions refer to the right device and monitor and the correct display modes are set.
 
Some changes also have to be made to the "Server``Layout" section. In the standard Ubuntu Xorg.conf only Screen 0 is defined. Make sure it contains the following settings:
 
<pre><nowiki>
 
Screen      0  "Screen0" 0 0
 
Screen      1  "Screen1" RightOf "Screen0"
 
Option        "Xinerama"  "true"
 
</nowiki></pre>
 
Note that Screen 1 could also be "Clone", "Left``Of", "Right``Of", "Above", or "Below".
 
 
=== About the different drivers ===
 
=== About the different drivers ===
 
Some information not related to the direct install or configuration of the driver:
 
Some information not related to the direct install or configuration of the driver:
第293行: 第233行:
 
The "radeon" driver is automatically called by the "ati" driver if your card is supported. You should therefore specify "ati" in xorg.conf.
 
The "radeon" driver is automatically called by the "ati" driver if your card is supported. You should therefore specify "ati" in xorg.conf.
 
3D acceleration is enabled using the drivers from the DRI project such as: r300, r200, r100, r128. For a complete map of supported chipsets see the [http://dri.freedesktop.org/wiki/ATIRadeon DRI wiki] or [http://dri.sourceforge.net/doc/dri_driver_features.phtml DRI driver features] (this page however is out of date).
 
3D acceleration is enabled using the drivers from the DRI project such as: r300, r200, r100, r128. For a complete map of supported chipsets see the [http://dri.freedesktop.org/wiki/ATIRadeon DRI wiki] or [http://dri.sourceforge.net/doc/dri_driver_features.phtml DRI driver features] (this page however is out of date).
=== ToDo ===
 
If the "radeon" driver documentation is out of date, file bugs on bugs.freedesktop org and attach patches.
 
Add more options to the "Tweaking" section and document the few which are there.
 
Add information about "Dual-desktop" in the "Dual-head" section.
 
Make a radeon-specific xrandr 1.2 guide/example.
 
 
=== See Also ===
 
=== See Also ===
 
[[UbuntuWiki:Bugs/AtiDriver]] - Known bugs in the "ati" driver
 
[[UbuntuWiki:Bugs/AtiDriver]] - Known bugs in the "ati" driver
第304行: 第239行:
 
[http://wiki.x.org/wiki/radeon X.org wiki] radeon page
 
[http://wiki.x.org/wiki/radeon X.org wiki] radeon page
 
[http://ftp.x.org/pub/X11R7.1/doc/RELNOTES.html Xorg 7.1 Manual] - X.org 7.1 official documentation.
 
[http://ftp.x.org/pub/X11R7.1/doc/RELNOTES.html Xorg 7.1 Manual] - X.org 7.1 official documentation.
[[UbuntuHelp:BinaryDriverHowto/ATI]] - The Wiki page for the proprietary AMD/ATI driver "fglrx" which also offers 3D acceleration, and works on newer cards than the "radeon" driver. This driver was reported to be unstable, has fewer dual head support and does not support AIGLX at all. Since it's closed-source, only AMD can work on it and give efficient support, and the open-source community can generally not help you with problems.
+
[[UbuntuHelp:BinaryDriverHowto/ATI|BinaryDriverHowto/ATI]] - The Wiki page for the proprietary AMD/ATI driver "fglrx" which also offers 3D acceleration, and works on newer cards than the "radeon" driver. This driver was reported to be unstable, has fewer dual head support and does not support AIGLX at all. Since it's closed-source, only AMD can work on it and give efficient support, and the open-source community can generally not help you with problems.
 
----
 
----
[[category:CategoryDocumentation]] [[category:CategoryDocumentation]]
 
  
 
[[category:UbuntuHelp]]
 
[[category:UbuntuHelp]]

2010年5月20日 (四) 00:00的最新版本


  1. title The open source ATI driver (xserver-xorg-video-ati)

This guide will show you how to use the Free, Open Source driver for many ATI graphics cards called "radeon" or "ati". It will provide 2D and 3D acceleration in your video hardware. This driver is not as fast as the closed-source, proprietary "fglrx" driver from AMD/ATI Inc. for some cards, but has better dual-head support, and supports some older chipsets that fglrx does not.

Will It Work On Your Card?

Check first your graphic card name and chipset:

lspci -nn | grep VGA

It should report something like this for your graphics card:

01:00.0 VGA compatible controller: ATI Technologies Inc RV350 AS [Radeon 9550]

Unsupported

You are currently not able to use the "radeon" driver for the following cards and derivatives:

None known.

For these cards you must use the "fglrx" driver.

2D modesetting only

HD 3xxx / R600 based cards
HD 4xxx / R700 based cards

Accelerated 3D support (r300, r400 and r500 series)

All these cards and derivatives have good 3D acceleration support

9500 / R300 based cards
9600 / rv350 or rv360 based cards
9700 / R300 based cards
9800 / R350 or R360 based cards
X300 / rv370 based cards
X600 / rv380 based cards
X700 / rv410 based cards
X800 / R420 or R423 or R430 or R480 based cards
X850 / R480 or R481 based cards
X1050 / rv370 based cards
X1300 / R515 based cards
X1600 / R530 based cards
X1800 / R520 based cards
X1900 / R580 based cards
Xpress 200 / RS480 IGP
Xpress 200 / RS482 IGP for Intel
Xpress 200M / RS482 IGP
Xpress 1100 / RS482 IGP
Xpress 1150 / RS485 IGP
Xpress 1200 / AMD 690V / RS690C IGP
Xpress 1200 / AMD M690V / RS690MC IGP
Xpress 1250 / AMD 690G / RS690 IGP
Xpress 1250 / AMD M690 / RS690M IGP
Xpress 1250 / AMD 690G / RS600 IGP for Intel
Xpress 1270 / AMD M690T / RS690T IGP

If you have an Xpress chip and you are not using Ubuntu 8.10 or later see RadeonXpress for instructions on how to enable 3D support and desktop effects.

Full 3D support (r100 and r200 series)

All these cards and derivatives have full 3D acceleration support

7000 / rv100 based cards
7200 / R100 based cards
7500 / rv200 based cards
8X00 / R200 based cards
9000 / rv250 based cards
9100 / R200 based cards
9200 / rv280 based cards

There is a bug related to the DVI output on the rv280-based cards, please check Radeon_9200/9250_(RV280)_and_DVI If you experience curious behaviour (e.g. hangs on login) you may find a solution under X/Quirks.

Removing the proprietary fglrx driver

fglrx is the name of the closed-source, proprietary driver from AMD/ATI. It conflicts with the open-source "radeon" driver. If the "fglrx" kernel module is loaded at boot, X will be able to start using the "radeon" driver but "Direct Rendering" (DRI) will be disabled. This results in a severe performance reduction. Use System->Administration->Hardware Drivers to make sure "ATI accelerated graphics driver" is not in use. It is important to note that with the release of 9.04, the fglrx driver dropped support for the r500 line of cards. If you are upgrading from 8.10 or a previous release and use one of these cards, it is strongly suggested that you remove fglrx prior to upgrading to avoid any problems. However, you can still remove the fglrx driver after the upgrade if it causes problems. If you previously used the proprietary "fglrx" driver it is highly recommended to totally get rid of the fglrx package:

$ sudo apt-get remove --purge xorg-driver-fglrx

and reboot the computer. The libGL.so in /usr/lib might also still be the version installed by xorg-driver-fglrx. You can check that very easily, just run:

$ glxinfo |grep vendor

If you see: client glx vendor string: ATI, then the libGL.so is still from ATI. Make sure libgl1-mesa-glx and libgl1-mesa-dri are properly installed:

$ sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri

Make sure "fglrx" is not listed in /etc/modules file. Of course, make sure your xorg.conf does not contain any "fglrx" entry. See also X/Troubleshooting/FglrxInteferesWithRadeonDriver

Recommended configuration for X.org

No configuration is necessary for ATI driver in the modern versions of Ubuntu. You can safely take away your xorg.conf and your computer will run fine.

Customized configuration for X.org, the new way

Ubuntu Karmic Koala 9.10 and later supports Kernel Mode Settings (KMS) in ATI driver. This mode allows to automatically detect all necessary settings for your hardware, as well as to provide for better viewing experience. Notably, KMS eliminates "tearing" and "blinking" of video, including flash, and 3D windows, such as games. The configuration file xorg.conf is not required using KMS. In order to enable KMS, follow instructions in "KMS with a Radeon card" section on page KernelModeSetting|page

Customized configuration for X.org, the old way

The instructions below are based on the edition of /etc/X11/xorg.conf . You will have to edit it with superuser privileges (using the sudo command). You can use gedit if you are using Ubuntu (Gnome) or kate if you are using Kubuntu (KDE). If you are in a console you can use vim or nano .

sudo vim /etc/X11/xorg.conf

or

sudo nano /etc/X11/xorg.conf

Configuring your graphics card "Device" section

You first of all have to find the device section already related to your graphics card. It can have any name, or might even not exist if you are just installing your xserver. You can usually find it right after your mouse entry. It should look like this:

Section "Device"
	Identifier	"Radeon 9600"
	Driver		"ati"
	BusID		"PCI:1:0:0"
	Option		"XAANoOffscreenPixmaps"
EndSection

Identifier is the name you give your graphics card. It is better if it is short. It can be anything. (I only tested with alphanumerical names though). Driver specifies which driver you want to use. IT HAS TO BE ati and NOT radeon or fglrx. The "ati" driver is a wrapper that will load the "radeon" driver if possible. BusID gives the hardware address of the graphics card. It is always PCI, even for an AGP card. The BusID can be found using the command lspci. A BusID given in lspci as 01:00.0 will become "PCI:1:0:0" in xorg.conf . (Warning: lspci reports hexadecimal numbers, xorg.conf needs decimal.) The "XAANoOffscreenPixmaps" option maybe necessary for AIGLX desktop acceleration, you can try disabling it and it should work fine (maybe quicker) for the newest versions of ubuntu. If your computer is locking up when you try and run opengl applications (for instance glxgears) then you might have to add the following options under device

	Option        "BusType" "PCI"
	Option	       "AGPMode" "1"

The "Monitor" section

This is what your monitor section should look like: WARNING: The HorizSync/VertRefresh settings affect the monitor's signal frequency rate. They are shown as sample only! Incorrect or overdriven settings can force the monitor to switch itself off for protection or, for very old monitors, even destroy them! Consult the manufacturer's information or manual for correct values for your specific monitor model, or do not specify them for X server to automatically probe your monitor's DDC for correct values.

Section "Monitor"
	Identifier	"Generic Monitor"
	Option		"DPMS"
	HorizSync	28-72
	VertRefresh	43-60
EndSection

Identifier is the name you want to give your monitor. The DPMS option instructs X.Org to allow monitor Power Management on this monitor. It is not necessary. Horiz``Sync and Vert``Refresh options are not necessary, unless DDC cannot be detected or you want to force specific rate. Refer to your monitor's documentation, site or even back of the monitor to find correct values for your particular monitor model. Incorrect HorizSync/VertRefresh values can be dangerous! If you do not specify them X.org will read correct values from Monitor DDC instead. The monitor, graphics card and data cable should (and in 99.9% cases they do) support it. Only sRGB VGA cables cannot transfer DDC data so far.

The "Screen" section

It will basically look like that:

Section "Screen"
	Identifier	"Default Screen"
	Device		"Radeon 9600"
	Monitor		"Generic Monitor"
	DefaultDepth	24
	SubSection "Display"
		Depth		24
		Modes		"1440x900" "1024x768"
	EndSubSection
EndSection

Identifier is the name you give to your screen. It does not really matter, but I prefer it short. Device has to be the name you previously gave to your graphics card. Monitor is the name you gave your monitor. Default``Depth is the bit-per-pixel depth you want to force X.org to use, most likely you want 24. If you dont specify this line, X.org will use all reported color range (8,16,24 or 32 - depending on support). The modes in the "Display" subsection instruct X.org to explicitly use only specified modes and have to be supported by your monitor. This is useful, if you want to prevent X.org using maximum available resolution on login screen, or want to limit or exclude some of supported (or reported as supported), but undesired resolutions. If you don't know, choose 1024x768, it is a safe bet. If you know, list your favorite resolution first, and the other resolutions available after. For cards low on video RAM, you might need to add a "Virtual" line to the "Display" subsection of the "Screen" section in xorg.conf, since the default values (see /var/log/Xorg.0.log) are a bit "greedy" on memory.

                Virtual         1024 768

Set the x and y values according to the wanted maximum size of your virtual desktop.

Finalizing

Add the following sections at the end of the file if they don't exist elsewhere:

Section "DRI"
        Mode 0666
EndSection
        
Section "Extensions"
        Option "Composite" "Enable"
EndSection

Then check the "Server``Layout" section:

Section "ServerLayout"
	Identifier	"Default Layout"
	Screen		"Default Screen"
	InputDevice	"Generic Keyboard"
	InputDevice	"Configured Mouse"
EndSection

Identifier should not be changed. Screen is the name you gave to your screen in the screen section. Input``Device are for the devices you want to use (with a section device in this file) and which are not your graphics card or monitor.

Restart

Restart the X server by pressing simultaneously Ctrl-Alt-Backspace (quick and dirty) or log out, switch to a text console (ctrl-alt-F1), log in and run

sudo /etc/init.d/gdm restart

Testing The Driver

  • To see if your driver uses KMS (Kernel Mode Setting), run command
dmesg | grep drm

This should indicate that the drm got initialized and set up, with maybe mention of the framebuffer and modes set. E.g.:

[    2.699321] [drm] Initialized drm 1.1.0 20060810
[    2.819877] [drm] set up 7M of stolen space
[    3.334947] [drm] TV-14: set mode NTSC 480i 0
[    3.493351] fb0: inteldrmfb frame buffer device
[    3.513539] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[    3.627621] [drm] LVDS-8: set mode 1280x800 1d
[    4.227945] [drm] TV-14: set mode NTSC 480i 0
  • To see if you are using the driver you can test your 3D settings. To test your OpenGL acceleration you can run:
$ glxinfo | grep vendor

This has to be SGI. Otherwise you did not install the driver properly. Make sure you restarted the Xserver, or if this does not help, go to the "Removing the proprietary fglrx driver" section.

$ glxinfo | grep "direct rendering"

For trouble-shooting, try also

$ LIBGL_DEBUG=verbose glxinfo

If you get No direct rendering, then your card probably is not supported by the open source driver. You will have to install the proprietary|fglrx driver.

Tweaking The Driver

There are a few options which you can give to the driver to speed up its performance. Here is an example of the device section of /etc/X11/xorg.conf.

Section "Device"
        Identifier      "ATI graphics card 0"
        Driver          "radeon"
        #ChipID         0x4144                  # some cards (i.e. 9800SE, or partially broken) with reduced capabilities work fine accessing only
                                                # parts of the hardware (by supplying the PCI ChipID of a lower end card, http://pci-ids.ucw.cz/read/PC/1002)
        Option          "AccelMethod"    "EXA"  #either XAA or EXA. "EXA" is the default since Karmic. Try XAA if you experience performance issues
        #Option          "EnablePageFlip" "true" #only works with accelmethod "XAA"
        Option          "TripleBuffer"   "true" #This *might* help if you use something like Beryl and have slow video playback.
        Option          "DynamicClocks"  "on"   #This is for laptop users, it saves energy when in battery mode.
        BusID           "PCI:1:0:0"             # (if machine has multiple cards) must match your lspci output
EndSection

Since Karmic Accel``Method is by default "EXA". It should be faster than the older "XAA". Enable``Page``Flip can cause a lot of instability on some newer radeon cards. It can give a performance boost though, if you are experiencing instabilities consider disabling this option. Dynamic``Clocks will lower the 'clockspeed' of the GPU when its not in use, hopefully saving energy. if your feeling green you can enable this, some people report a reduced performance however. Check the manpage of the radeon driver for more options. Please note that some more options might be available, but are undocumented.

$ man radeon

About the different drivers

Some information not related to the direct install or configuration of the driver: The features of your hardware are useless unless the driver (the piece of software which controls it) has support for them. This is a serious issue with graphics cards, a vital component which is constantly being updated. The main issue with these cards is between the use of Free Software drivers, which are included in Ubuntu (such as the "nv" driver for Nvidia cards and the "ati" for ATI's cards) and the non-free drivers offered by the card's manufacturers. Since the inner working of these cards are often trade secrets the proprietary manufacturer's drivers often have more features than the Free Software drivers, but cannot be included in Ubuntu for moral, technical (they often only work on the x86 platform) and sometimes legal reasons. The exception to this rule is the Free Software "radeon" driver, which offers full OpenGL 3D acceleration on graphics cards such as the Radeon X1050 and below. The "radeon" driver is automatically called by the "ati" driver if your card is supported. You should therefore specify "ati" in xorg.conf. 3D acceleration is enabled using the drivers from the DRI project such as: r300, r200, r100, r128. For a complete map of supported chipsets see the DRI wiki or DRI driver features (this page however is out of date).

See Also

UbuntuWiki:Bugs/AtiDriver - Known bugs in the "ati" driver Thinkpad Wiki Page On Radeon Driver - A page containing useful options and configurations for the "radeon" driver. Arch Linux ati driver documentation - includes TV-out information X.org wiki radeon page Xorg 7.1 Manual - X.org 7.1 official documentation. BinaryDriverHowto/ATI - The Wiki page for the proprietary AMD/ATI driver "fglrx" which also offers 3D acceleration, and works on newer cards than the "radeon" driver. This driver was reported to be unstable, has fewer dual head support and does not support AIGLX at all. Since it's closed-source, only AMD can work on it and give efficient support, and the open-source community can generally not help you with problems.