Skip to topic | Skip to bottom
Home
Main
Main.LinuxHardwareInfoATIRadeonX800r1.10 - 08 Apr 2007 - 00:52 - PeterKnaggstopic end

Start of topic | Skip to actions

ATI Radeon X800

This card seems to be a good choice for Linux users, with both dual-head and 3D acceleration. It is fully supported by the open-source radeon driver for 2D and 3D. The support for 3D is working sufficiently well for quake3 to run (e.g. in a default installation of Ubuntu Dapper Drake 6.06), and in Ubuntu Feisty Fawn beta (March 31, 2007) the beryl project's window manager now works very well. If you have both an nVidia card and an ATI card in the same machine (e.g to use xvmc play back HDTV video with the nVidia card), and want to give the radeon driver a go with beryl, the easiest way to switch from using the nVidia card to using the ATI card is to uninstall the package nvidia-glx when you want to use the ATI card.

Update: July 1st 2006: Building the proprietary fglrx driver for Debian (unstable/Sid) and Ubuntu 6.06 (Dapper Drake)

ATI provide a proprietary driver which (as of March 2005) works very well to provide 3D acceleration even in a dual-head configuration. The procedure for building the ATI fglrx drivers has changed quite a bit. It seems to be getting quite neat and streamlined nowadays, and it's great to see the support for Debian. The (large) download from ATI can be used with various flags to build the packages, all from the command line. There's also a GUI, which I didn't test. Let's start with the 8.26.18 revision of the ATI driver ati-driver-installer-8.26.18-x86.run which you can download from ATI by clicking on the "Drivers & Software" menu (which brings you to their Support Knowledge Base, and from there click on "Linux Display Drivers and Software"). For the ATI X800 (in a Dell Dimension XPS), I followed the link "RADEON 8500 Series and higher" under the "Linux x86" section. As of revision 8.25.18, the ATI driver supports Xorg 7.0. You can check your xorg version using one of
  dpkg -l xserver-xorg
  Xorg -version
The first stage is to build the packages for Debian using the ATI download. Here, I'm just going to build for vanilla Debian/sid, but you can check using the "--listpkg" for other flavors.
  chmod +x ./ati-driver-installer-8.26.18-x86.run
  ./ati-driver-installer-8.26.18-x86.run --listpkg
  ./ati-driver-installer-8.26.18-x86.run --buildpkg Debian/sid
If all goes well, the following packages will be produced:
  fglrx-driver_8.26.18-1_i386.deb
  fglrx-kernel-src_8.26.18-1_i386.deb
  fglrx-driver-dev_8.26.18-1_i386.deb
  fglrx-control_8.26.18-1_i386.deb
  fglrx-sources_8.26.18-1_i386.deb
If something doesn't quite work, you might like to extract the files from the ATI archive, to see what's going on. For this, you can use the "--extract" flag. The packaging scripts for Debian live in the "packages/Debian" directory (under fglrx-tmp), and can be run manually, for example:
  ./ati-driver-installer-8.26.18-x86.run --extract fglrx-tmp
  ./fglrx-tmp/packages/Debian/ati-packager.sh --buildpkg sid
You only really need to install the first two packages listed above, to get 3D acceleration working:
  dpkg -i fglrx-driver_8.26.18-1_i386.deb
  dpkg -i fglrx-kernel-src_8.26.18-1_i386.deb
The second one contains the sources for the kernel module fglrx.ko, which we still need to build. To do this, the most convenient way seems to be to use Debian's "Module Assistant". The version of the gcc compiler we use matters at this point. It needs to match the one used to build your kernel. The kernel here is the linux-image-2.6.15-1-686-smp and it was built using gcc-4.0. There's probably a better way, but for the purpose of building the fglrx.ko module I just changed the symbolic link in /usr/bin/gcc to be gcc-4.0 instead of gcc-4.1, like this:
  cd /usr/bin && mv gcc gcc_safe
  ln -s gcc-4.0 gcc
Then I ran Module Assistant like this:
  apt-get install module-assistant
  m-a prepare
  m-a update
  m-a
In the Module Assistant menu, I chose "SELECT" and chose (by pressing the spacebar) the module fglrx-kernel and pressed TAB key to move to the "Ok". This brings up a second menu, where I chose "BUILD". Once the build completed, it prompted me whether to install the module. You could also do all this from the command line using
  m-a prepare
  m-a update
  m-a build fglrx-kernel
  m-a install fglrx-kernel
  depmod
What the "install" step is actually doing is asking you whether you want to install the package we built. When you say OK, it installs it using the following command, so you can make a backup of this file to save having to run Module Assistant again if you're reinstalling (remember that gcc-4.0 was used).
  dpkg -i fglrx-kernel-2.6.15-1-686-smp_8.26.18-1+2.6.15-8_i386.deb
  depmod
At this point, I replaced the original gcc link:
  cd /usr/bin && rm gcc
  mv gcc_safe gcc
The dmesg output when you load the module (using modprobe fglrx) should look like this:
Linux agpgart interface v0.101 (c) Dave Jones
fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel.
[fglrx] Maximum main memory to use for locked dma buffers: 928 MBytes.
[fglrx] module loaded - fglrx 8.26.18 [Jun 22 2006] on minor 0
ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 169
[fglrx] total      GART = 134217728
[fglrx] free       GART = 118226944
[fglrx] max single GART = 118226944
[fglrx] total      LFB  = 113553408
[fglrx] free       LFB  = 76443648
[fglrx] max single LFB  = 76443648
[fglrx] total      Inv  = 0
[fglrx] free       Inv  = 0
[fglrx] max single Inv  = 0
[fglrx] total      TIM  = 0

I edited /etc/X11/xorg.conf to use the fglrx driver as follows. Although in the other configurations on this page, internal AGP/GART worked fine when it was enabled, I seem to have problems with it for this revision of the driver, so I disabled it by setting the "UseInternalAGPGART" option to "no". This is probably better, it means we're using the Linux kernel's AGP support instead. Look in the sources for the routine __ke_agpgart_available (in the file common/lib/modules/fglrx/build_mod/firegl_public.c) if you're seeing any messages about AGP/GART, it might help to figure out what's going on. In my case, there were no kernel messages about it here, and lsmod shows agpgart is used:

fglrx                 385004  43 
agpgart                32076  1 fglrx

To generate the configuration file, you may give ATI's aticonfig tool a try. If it doesn't detect an fglrx section, it will make a backup of your existing /etc/X11/xorg.conf to the file /etc/X11/xorg.conf.original-0 and add the initial settings.

aticonfig --help
aticonfig --initial
aticonfig --overlay-type=Xv
My complete /etc/X11/xorg.conf now looks like this for Debian. It probably contains quite a few obsolete entries - I didn't use a recent aticonfig to generate it, but it still works.
#######################################################
# Xorg configuration created by system-config-display


Section "ServerLayout"
       Identifier     "Multihead layout"
       Screen      0  "Screen0" 0 0
       InputDevice    "Mouse0" "CorePointer"
       InputDevice    "Keyboard0" "CoreKeyboard"
       Option      "Xinerama" "off"
       Option      "Clone" "off"
EndSection

Section "Files"
        # if the local font server has problems, we can fall back on these
        FontPath        "/usr/share/fonts/X11/misc"
        FontPath        "/usr/lib/X11/fonts/misc"
        FontPath        "/usr/share/fonts/X11/cyrillic"
        FontPath        "/usr/lib/X11/fonts/cyrillic"
        FontPath        "/usr/lib/X11/fonts/100dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/75dpi/:unscaled"
        FontPath        "/usr/share/fonts/X11/Type1"
        FontPath        "/usr/lib/X11/fonts/Type1"
        FontPath        "/usr/share/fonts/X11/CID"
        FontPath        "/usr/lib/X11/fonts/CID"
        FontPath        "/usr/share/fonts/X11/100dpi"
        FontPath        "/usr/lib/X11/fonts/100dpi"
        FontPath        "/usr/share/fonts/X11/75dpi"
        FontPath        "/usr/lib/X11/fonts/75dpi"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "IMPS/2"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5"
        Option      "Emulate3Buttons" "yes"
EndSection
Section "Module"
        Load    "bitmap"
        Load    "dbe"
        Load    "ddc"
        Load    "dri"
        Load    "extmod"
        Load    "freetype"
        Load    "glx"
        Load    "int10"
        Load    "record"
        Load    "type1"
        Load    "vbe"
EndSection

Section "Device"
    Identifier                          "Videocard0"
    Driver                              "fglrx"
# ### generic DRI settings ###
# === disable PnP Monitor  ===
    #Option                              "NoDDC"
# === disable/enable XAA/DRI ===
    Option "no_accel"                   "no"
    Option "no_dri"                     "no"
# === misc DRI settings ===
    Option "mtrr"                       "off" # disable DRI mtrr mapper, driver has its own code for mtrr
# ### FireGL DDX driver module specific settings ###
# === Screen Management ===
    Option "DesktopSetup"               "0x00000200"
    Option "MonitorLayout"              "AUTO, AUTO"
    Option "IgnoreEDID"                 "off"
    Option "HSync2"                     "31.5 - 80.5"
    Option "VRefresh2"                  "60 - 75"
    Option "ScreenOverlap"              "0"
# === TV-out Management ===
    Option "NoTV"                       "yes"
    Option "TVStandard"                 "NTSC-M"
    Option "TVHSizeAdj"                 "0"
    Option "TVVSizeAdj"                 "0"
    Option "TVHPosAdj"                  "0"
    Option "TVVPosAdj"                  "0"
    Option "TVHStartAdj"                "0"
    Option "TVColorAdj"                 "0"
    Option "GammaCorrectionI"           "0x00000000"
    Option "GammaCorrectionII"          "0x00000000"
# === OpenGL specific profiles/settings ===
    Option "Capabilities"               "0x00000000"
# === Video Overlay for the Xv extension ===
    Option "VideoOverlay"               "on"
# === OpenGL Overlay ===
# Note: When OpenGL Overlay is enabled, Video Overlay
#       will be disabled automatically
    Option "OpenGLOverlay"              "off"
# === Center Mode (Laptops only) ===
    Option "CenterMode"                 "off"
# === Pseudo Color Visuals (8-bit visuals) ===
    Option "PseudoColorVisuals"         "off"
# === QBS Management ===
    Option "Stereo"                     "off"
    Option "StereoSyncEnable"           "1"
# === FSAA Management ===
    Option "FSAAEnable"                 "no"
    Option "FSAAScale"                  "1"
    Option "FSAADisableGamma"           "no"
    Option "FSAACustomizeMSPos"         "no"
    Option "FSAAMSPosX0"                "0.000000"
    Option "FSAAMSPosY0"                "0.000000"
    Option "FSAAMSPosX1"                "0.000000"
    Option "FSAAMSPosY1"                "0.000000"
    Option "FSAAMSPosX2"                "0.000000"
    Option "FSAAMSPosY2"                "0.000000"
    Option "FSAAMSPosX3"                "0.000000"
    Option "FSAAMSPosY3"                "0.000000"
    Option "FSAAMSPosX4"                "0.000000"
    Option "FSAAMSPosY4"                "0.000000"
    Option "FSAAMSPosX5"                "0.000000"
    Option "FSAAMSPosY5"                "0.000000"
# === Misc Options ===
    Option "UseFastTLS"                 "0"
    Option "BlockSignalsOnLock"         "on"
    Option "UseInternalAGPGART"         "no"
    Option "ForceGenericCPU"            "no"
    BusID "PCI:1:0:0"    # vendor=1002, device=4e47
    Screen 0
EndSection

Section "Screen"
        Identifier "Screen0"
        Device "Videocard0"
        DefaultDepth 24
        #Option "backingstore"

    Subsection "Display"
        Depth       24
        Modes       "1920x1200"
        ViewPort    0 0  # initial origin if mode is smaller than desktop
        Virtual     1920 1200
    EndSubsection
EndSection

Section "DRI"
Group 0
Mode 0666
EndSection
############################################################################
At this point, if things are still not working, it may be simplest to reboot. The fglrx kernel module needs to allocate a contiguous chunk of pinned kernel memory, which it might not find available until you do a clean reboot. Make sure you have some alternate way to boot your machine (e.g. a Linux live CD), just in case the display is no longer available after your xorg.conf file is read, or the driver loading causes a kernel crash. Remember that the above configuration is only for a DVI monitor on the left-hand output, and a CRT on the right-hand VGA output, both capable of displaying 1920x1200.

After rebooting, check dmesg again. Also check the output of fglrxinfo shows as follows:

display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: RADEON X800 GT Generic
OpenGL version string: 2.0.5879 (8.26.18)

Check /var/log/Xorg.0.log to see whether DRI is enabled, the message "DRI initialization successfull" and "Direct rendering enabled" should be seen in the following sections:

(II) fglrx(0): [drm] DRM interface version 1.0
(II) fglrx(0): [drm] created "fglrx" driver at busid "PCI:1:0:0"
(II) fglrx(0): [drm] added 8192 byte SAREA at 0x2000
(II) fglrx(0): [drm] mapped SAREA 0x2000 to 0xb7137000
(II) fglrx(0): [drm] framebuffer handle = 0x3000
(II) fglrx(0): [drm] added 1 reserved context for kernel
(II) fglrx(0): DRIScreenInit done
(II) fglrx(0): Kernel Module Version Information:
(II) fglrx(0):     Name: fglrx
(II) fglrx(0):     Version: 8.26.18
(II) fglrx(0):     Date: Jun 22 2006
(II) fglrx(0):     Desc: ATI FireGL DRM kernel module
(II) fglrx(0): Kernel Module version matches driver.
(II) fglrx(0): Kernel Module Build Time Information:
(II) fglrx(0):     Build-Kernel UTS_RELEASE:        2.6.15-1-686-smp
(II) fglrx(0):     Build-Kernel MODVERSIONS:        no
(II) fglrx(0):     Build-Kernel __SMP__:            no
(II) fglrx(0):     Build-Kernel PAGE_SIZE:          0x1000
(II) fglrx(0): [drm] register handle = 0x00004000
(II) fglrx(0): [pcie] 131072 kB allocated with handle 0xdeadbeef
(II) fglrx(0): [drm] ringbuffer size = 0x00100000 bytes
(II) fglrx(0): [drm] DRM buffer queue setup: nbufs = 100 bufsize = 65536
(II) fglrx(0): [drm] texture shared area handle = 0x00008000
(II) fglrx(0): shared FSAAScale=1
(II) fglrx(0): DRI initialization successfull!
(II) fglrx(0): FBADPhys: 0xd0000000 FBMappedSize: 0x01395000
(II) fglrx(0): FBMM initialized for area (0,0)-(3840,1336)
(II) fglrx(0): FBMM auto alloc for area (0,0)-(3840,1200) (front color buffer - assumption)
(==) fglrx(0): Backing store disabled
(==) fglrx(0): Silken mouse enabled
(II) fglrx(0): Initialized in-driver Xinerama extension
(WW) fglrx(0): Option "IgnoreEDID" is not used
(WW) fglrx(0): Option "NoTV" is not used
(II) fglrx(0): Using XFree86 Acceleration Architecture (XAA)
...
(II) fglrx(0): Acceleration enabled
(II) fglrx(0): X context handle = 0x1
(II) fglrx(0): [DRI] installation complete
(II) fglrx(0): Direct rendering enabled

To check where OpenGL applications expect to find the fglrx_dri.so library, use the following command. Look for the path that the fglrx_dri.so library is being loaded from. If you don't see the message "direct rendering: Yes" then the library probably isn't being found.

LIBGL_DEBUG=verbose glxinfo

It turned out that the library needed to be copied from /usr/lib/dri/fglrx_dri.so (where the fglrx-driver package had installed it) over to /usr/X11R6/lib/modules/dri/fglrx_dri.so so that it could be found by OpenGL applications:

mkdir -p /usr/X11R6/lib/modules/dri
cp /usr/lib/dri/fglrx_dri.so /usr/X11R6/lib/modules/dri/fglrx_dri.so

The fgl_glxgears benchmark gives the following result (the CPU used is a little over 50%):

Using GLX_SGIX_pbuffer
4760 frames in 5.0 seconds = 952.000 FPS
4805 frames in 5.0 seconds = 961.000 FPS
4783 frames in 5.0 seconds = 956.600 FPS
4791 frames in 5.0 seconds = 958.200 FPS
4806 frames in 5.0 seconds = 961.200 FPS
4781 frames in 5.0 seconds = 956.200 FPS

The glxgears -printfps gives the following result (the CPU used is a little over 50% also):

24342 frames in 5.0 seconds = 4868.256 FPS
24328 frames in 5.0 seconds = 4865.427 FPS
24327 frames in 5.0 seconds = 4865.232 FPS
24325 frames in 5.0 seconds = 4864.891 FPS
24331 frames in 5.0 seconds = 4866.086 FPS
24331 frames in 5.0 seconds = 4866.023 FPS
24332 frames in 5.0 seconds = 4866.260 FPS
24329 frames in 5.0 seconds = 4865.751 FPS
24332 frames in 5.0 seconds = 4866.236 FPS
The FPS numbers are about 5% higher than what I was getting with the ATI 8.10.19 drivers (in SuSE 9.2).

Drivers for the 128MB PCI Express x16 ATI Radeon X800 SE

The proprietary drivers from ATI have been packaged by SuSE/Novell for their distro and by Livna for Fedora Core 3.

Packaged fglrx driver for SuSE 9.2

For SuSE 9.2, follow the instructions in the README. Thanks SuSE! For a dual-monitor setup, use the /etc/X11/XF86Config provided below.

The proprietary ATI drivers, repackaged quite perfectly by SuSE as convenient RPMs, are available at the following links on their "supplemental" download location. I'm not sure if they're also available via YaST Online Update (aka YOU), probably they are. Remember that SuSE don't provide official support for 3D acceleration -- still, their support is already so good, I can't imagine what more could be done :)

ftp://ftp.suse.com/pub/suse/i386/supplementary/X/ATI/suse92/i386/fglrx/8.10.19/README

ftp://ftp.suse.com/pub/suse/i386/supplementary/X/ATI/suse92/i386/fglrx/8.10.19/fglrx-8.10.19-1.1.i586.rpm

ftp://ftp.suse.com/pub/suse/i386/supplementary/X/ATI/suse92/i386/fglrx/8.10.19/km_fglrx-8.10.19-1.1.i586.rpm

Packaged fglrx driver for SuSE 9.1 and SLES-9

For SuSE 9.1 and Novell SLES-9, follow the instructions in the README. For a dual-monitor setup, use the /etc/X11/XF86Config provided below.

ftp://ftp.suse.com/pub/suse/i386/supplementary/X/ATI/suse91/i386/fglrx/8.10.19/README

ftp://ftp.suse.com/pub/suse/i386/supplementary/X/ATI/suse91/i386/fglrx/8.10.19/fglrx-8.10.19-1.1.i586.rpm

ftp://ftp.suse.com/pub/suse/i386/supplementary/X/ATI/suse91/i386/fglrx/8.10.19/km_fglrx-8.10.19-1.1.i586.rpm

Packaged fglrx driver for Fedora Core 3

The proprietary drivers from ATI have been packaged by Livna for Fedora Core 3. Please refer to this install guide by Dr. Timothy Fenn

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/ati-fglrx-8.10.19.1-0.lvn.1.3.i386.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/ati-fglrx-devel-8.10.19.1-0.lvn.1.3.i386.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.741_FC3-8.8.25.1-0.lvn.4.3.i586.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.741_FC3-8.8.25.1-0.lvn.4.3.i686.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.741_FC3smp-8.8.25.1-0.lvn.4.3.i586.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.741_FC3smp-8.8.25.1-0.lvn.4.3.i686.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.760_FC3-8.8.25.1-0.lvn.4.3.i386.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.760_FC3-8.8.25.1-0.lvn.4.3.i586.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.760_FC3-8.8.25.1-0.lvn.4.3.i686.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.760_FC3smp-8.8.25.1-0.lvn.4.3.i386.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.760_FC3smp-8.8.25.1-0.lvn.4.3.i586.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.760_FC3smp-8.8.25.1-0.lvn.4.3.i686.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.766_FC3-8.10.19.1-0.lvn.1.3.i586.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.766_FC3-8.10.19.1-0.lvn.1.3.i686.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.766_FC3smp-8.10.19.1-0.lvn.1.3.i586.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.766_FC3smp-8.10.19.1-0.lvn.1.3.i686.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.770_FC3-8.10.19.1-0.lvn.1.3.i586.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.770_FC3-8.10.19.1-0.lvn.1.3.i686.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.770_FC3smp-8.10.19.1-0.lvn.1.3.i586.rpm

http://rpm.livna.org/fedora/3/i386/RPMS.unstable/kernel-module-fglrx-2.6.10-1.770_FC3smp-8.10.19.1-0.lvn.1.3.i686.rpm

Packaged fglrx driver for Ubuntu

The friendly Ubuntu maintainers have put together a Binary Driver Howto. Ubuntu is based on Debian.

Configuring the fglrx driver for Full-screen Anti-aliasing

To enable fullscreen anti-aliasing in the fglrx driver (to remove the jagged pixel effects, helping games like gltron look much better, but which slows down the framerate you'll be able to get by about half), add the following to your /etc/X11/XF86Config file, in the "Device" section:

  Option "FSAAEnable" "yes"
  Option "FSAAScale" "4"

Video Playback with the fglrx driver

For video playback in fullscreen using mplayer, use the "gl2" video output driver. Also, if you are using an external receiver connected to the digital output of your sound card, enable AC3 passthrough: the alsa driver for the Audigy2 card supports it just fine now.

mplayer -vo gl2 -ao alsa -ac hwac3 filename.avi

SuSE 9.2 fglrx Driver Dual-Head Configuration

In this configuration, on the right-hand-side I have an analog (Sun GDM-90W10) monitor connected via a VGA-to-DVI converter to the DVI port of the X800 card, and on the left-hand-side I have an analog (Dell E193FP) LCD monitor connected to the VGA port of the X800 card. This config enables what ATI refer to as the big desktop view, so your two monitors work together as one to display a very wide desktop. This configuration does not use Xinerama, and doesn't work the same way normal X drivers work. The X800 hardware does all the work (so there's no :0.0 and :0.1, only :0.0). Also, xv only works on one head at a time, so you cannot span an xv window across two heads, although you can use opengl in mplayer or xine to play back video with it spanning across both heads, giving quite a cinematic experience. Maximizing a window doesn't work correctly: it fills both heads, which usually isn't what you want. Also, video playback in xine works with xine -V xshm rather than with the default xv which gives only black. Note: if the monitor connected to the DVI port of the X800 card is your left-hand monitor, please change the DesktopSetup as follows:
    Option "DesktopSetup"               "0x00000200" 

Here's the complete /etc/X11/XF86Config configuration file, sorry for putting it all inline on this page, but it's easier to keep in source-control along with the explanation if I do it like this.

# /etc/X11/XF86Config configuration file for SuSE 9.2
Section "dri"
    Group 0
    Mode 0666
EndSection

Section "Module"
  Load         "dri"
  Load         "dbe"
  Load         "type1"
  Load         "speedo"
  Load         "freetype"
  Load         "extmod"
  Load         "glx"
  Load         "v4l"
EndSection

Section "Files"
  FontPath     "/usr/X11R6/lib/X11/fonts/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/local"
  FontPath     "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/Type1"
  FontPath     "/usr/X11R6/lib/X11/fonts/URW"
  FontPath     "/usr/X11R6/lib/X11/fonts/Speedo"
  FontPath     "/usr/X11R6/lib/X11/fonts/PEX"
  FontPath     "/usr/X11R6/lib/X11/fonts/cyrillic"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/Type1"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin7/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/baekmuk:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/japanese:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/kwintv"
  FontPath     "/usr/X11R6/lib/X11/fonts/truetype"
  FontPath     "/usr/X11R6/lib/X11/fonts/uni:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/CID"
  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/Type1"
  FontPath     "/usr/X11R6/lib/X11/fonts/misc/sgi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/xtest"
  FontPath     "/opt/kde3/share/fonts"
  InputDevices "/dev/ttyS0"
  InputDevices "/dev/ttyS1"
  InputDevices "/dev/ttyS2"
  InputDevices "/dev/ttyS3"
  InputDevices "/dev/ttyS4"
  InputDevices "/dev/ttyS5"
  InputDevices "/dev/ttyS6"
  InputDevices "/dev/ttyS7"
  InputDevices "/dev/ttyS8"
  InputDevices "/dev/psaux"
  InputDevices "/dev/logibm"
  InputDevices "/dev/sunmouse"
  InputDevices "/dev/atibm"
  InputDevices "/dev/amigamouse"
  InputDevices "/dev/atarimouse"
  InputDevices "/dev/inportbm"
  InputDevices "/dev/gpmdata"
  InputDevices "/dev/mouse"
  InputDevices "/dev/usbmouse"
  InputDevices "/dev/adbmouse"
  InputDevices "/dev/input/mice"
  InputDevices "/dev/input/event0"
  InputDevices "/dev/pointer0"
  InputDevices "/dev/pointer1"
  InputDevices "/dev/pointer2"
  InputDevices "/dev/pointer3"
EndSection

Section "InputDevice"
    Identifier  "Keyboard1"
    Driver      "kbd"
    Option "AutoRepeat" "500 30"
    Option "XkbRules"   "xfree86"
    Option "XkbModel"   "pc101"
    Option "XkbLayout"  "us"
EndSection

Section "InputDevice"
    Identifier  "Mouse1"
    Driver "mouse"
    Option "Protocol"   "ImPS/2"
    Option "ZAxisMapping"   "4 5"
    Option "Device"     "/dev/input/mice"
EndSection

Section "Monitor"
    Identifier  "Monitor0"
    HorizSync   31.5 - 80.5
    VertRefresh 60 - 75
    Option "DPMS"
EndSection


Section "Monitor"
    Identifier  "Monitor1"
    HorizSync   31.5 - 80.5
    VertRefresh 60 - 75
    Option "DPMS"
EndSection

Section "Device"
    Identifier                          "ATI Graphics Adapter"
    Driver                              "fglrx"
# ### generic DRI settings ###
# === disable PnP Monitor  ===
    #Option                              "NoDDC"
# === disable/enable XAA/DRI ===
    Option "no_accel"                   "no"
    Option "no_dri"                     "no"
# === misc DRI settings ===
    Option "mtrr"                       "off" # disable DRI mtrr mapper, driver has its own code for mtrr
# ### FireGL DDX driver module specific settings ###
# === Screen Management ===
    Option "DesktopSetup"               "0x00000201" 
    Option "MonitorLayout"              "AUTO, AUTO"
    Option "IgnoreEDID"                 "off"
    Option "HSync2"                     "31.5 - 80.5" 
    Option "VRefresh2"                  "60 - 75" 
    Option "ScreenOverlap"              "0" 
# === TV-out Management ===
    Option "NoTV"                       "yes"     
    Option "TVStandard"                 "NTSC-M"     
    Option "TVHSizeAdj"                 "0"     
    Option "TVVSizeAdj"                 "0"     
    Option "TVHPosAdj"                  "0"     
    Option "TVVPosAdj"                  "0"     
    Option "TVHStartAdj"                "0"     
    Option "TVColorAdj"                 "0"     
    Option "GammaCorrectionI"           "0x00000000"
    Option "GammaCorrectionII"          "0x00000000"
# === OpenGL specific profiles/settings ===
    Option "Capabilities"               "0x00000000"
# === Video Overlay for the Xv extension ===
    Option "VideoOverlay"               "on"
# === OpenGL Overlay ===
# Note: When OpenGL Overlay is enabled, Video Overlay
#       will be disabled automatically
    Option "OpenGLOverlay"              "off"
# === Center Mode (Laptops only) ===
    Option "CenterMode"                 "off"
# === Pseudo Color Visuals (8-bit visuals) ===
    Option "PseudoColorVisuals"         "off"
# === QBS Management ===
    Option "Stereo"                     "off"
    Option "StereoSyncEnable"           "1"
# === FSAA Management ===
    Option "FSAAEnable"                 "no"
    Option "FSAAScale"                  "1"
    Option "FSAADisableGamma"           "no"
    Option "FSAACustomizeMSPos"         "no"
    Option "FSAAMSPosX0"                "0.000000"
    Option "FSAAMSPosY0"                "0.000000"
    Option "FSAAMSPosX1"                "0.000000"
    Option "FSAAMSPosY1"                "0.000000"
    Option "FSAAMSPosX2"                "0.000000"
    Option "FSAAMSPosY2"                "0.000000"
    Option "FSAAMSPosX3"                "0.000000"
    Option "FSAAMSPosY3"                "0.000000"
    Option "FSAAMSPosX4"                "0.000000"
    Option "FSAAMSPosY4"                "0.000000"
    Option "FSAAMSPosX5"                "0.000000"
    Option "FSAAMSPosY5"                "0.000000"
# === Misc Options ===
    Option "UseFastTLS"                 "0"
    Option "BlockSignalsOnLock"         "on"
    Option "UseInternalAGPGART"         "yes"
    Option "ForceGenericCPU"            "no"
    BusID "PCI:1:0:0"    # vendor=1002, device=4e47
    Screen 0
EndSection

Section "Screen"
    Identifier  "Screen0"
    Device      "ATI Graphics Adapter"
    Monitor     "Monitor0"
    DefaultDepth 24
    #Option "backingstore"

    Subsection "Display"
        Depth       24
        Modes       "1280x1024"
        ViewPort    0 0  # initial origin if mode is smaller than desktop
        Virtual     1280 1024
    EndSubsection
EndSection

Section "ServerLayout"
    Identifier  "Server Layout"
    Screen "Screen0"
    InputDevice "Mouse1" "CorePointer"
    InputDevice "Keyboard1" "CoreKeyboard"

EndSection

SuSE 9.2 open-source radeon Driver Dual-Head Configuration

In the first configuration shown in this section, on the right-hand-side I have an analog (Sun GDM-90W10) monitor connected via a VGA-to-DVI converter to the DVI port of the X800 card, and on the left-hand-side I have an analog (Dell E193FP) LCD monitor connected to the VGA port of the X800 card. This config enables what the radeon driver refers to as the merged framebuffer view, so your two monitors work together as one to display a very wide desktop. This configuration does not use Xinerama, and doesn't work the same way normal X drivers work. The X800 hardware does all the work (so there's no :0.0 and :0.1, only :0.0). Also, xv only works on one head at a time, so you cannot span an xv window across two heads. Maximizing a window works correctly: it fills only one head. Video playback in xine works with the default xv.

Note: SuSE SLES-9 provides an older revision of the radeon driver, where the MergedFB setting is not available. Please check by doing man radeon to see if the radeon driver in your distro supports the required settings, before spending time trying this configuration.

# /etc/X11/XF86Config

Section "ServerLayout"
       Identifier     "Multihead layout"
       Screen      0  "Screen0" 0 0
       InputDevice    "Mouse0" "CorePointer"
       InputDevice    "Keyboard0" "CoreKeyboard"
       Option      "Xinerama" "off"
       Option      "Clone" "off"
EndSection

Section "Files"
  FontPath     "/usr/X11R6/lib/X11/fonts/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/local"
  FontPath     "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/Type1"
  FontPath     "/usr/X11R6/lib/X11/fonts/URW"
  FontPath     "/usr/X11R6/lib/X11/fonts/Speedo"
  FontPath     "/usr/X11R6/lib/X11/fonts/PEX"
  FontPath     "/usr/X11R6/lib/X11/fonts/cyrillic"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/Type1"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin7/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/baekmuk:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/japanese:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/kwintv"
  FontPath     "/usr/X11R6/lib/X11/fonts/truetype"
  FontPath     "/usr/X11R6/lib/X11/fonts/uni:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/CID"
  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/Type1"
  FontPath     "/usr/X11R6/lib/X11/fonts/misc/sgi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/xtest"
  FontPath     "/opt/kde3/share/fonts"
  InputDevices "/dev/ttyS0"
  InputDevices "/dev/ttyS1"
  InputDevices "/dev/ttyS2"
  InputDevices "/dev/ttyS3"
  InputDevices "/dev/ttyS4"
  InputDevices "/dev/ttyS5"
  InputDevices "/dev/ttyS6"
  InputDevices "/dev/ttyS7"
  InputDevices "/dev/ttyS8"
  InputDevices "/dev/psaux"
  InputDevices "/dev/logibm"
  InputDevices "/dev/sunmouse"
  InputDevices "/dev/atibm"
  InputDevices "/dev/amigamouse"
  InputDevices "/dev/atarimouse"
  InputDevices "/dev/inportbm"
  InputDevices "/dev/gpmdata"
  InputDevices "/dev/mouse"
  InputDevices "/dev/usbmouse"
  InputDevices "/dev/adbmouse"
  InputDevices "/dev/input/mice"
  InputDevices "/dev/input/event0"
  InputDevices "/dev/pointer0"
  InputDevices "/dev/pointer1"
  InputDevices "/dev/pointer2"
  InputDevices "/dev/pointer3"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "IMPS/2"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5"
        Option      "Emulate3Buttons" "yes"
EndSection


Section "Module"
       Load  "dbe"
       Load  "extmod"
       Load  "fbdevhw"
       Load  "glx"
       Load  "record"
       Load  "freetype"
       Load  "type1"
       Load  "dri"
EndSection

Section "Monitor"
       Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Dell 1901FP (Analog)"
        HorizSync    30.0 - 80.0
        VertRefresh  56.0 - 76.0
        Option      "dpms"
EndSection

Section "Device"
       Identifier  "Videocard0"
       Driver      "radeon"
       VendorName  "Videocard vendor"
       BoardName   "ATI Radeon X800SE"
       Option      "CRT2HSync"    "30.0-80.0"
       Option      "CRT2VRefresh" "56.0-76.0"
       Option      "CRT2Position" "LeftOf"
       Option      "MergedFB" "true"
       Option      "MonitorLayout" "CRT, CRT"
       BusID       "PCI:1:0:0"
       Screen      0
EndSection

Section "Screen"
        Identifier "Screen0"
        Device "Videocard0"
        Monitor "Monitor0"
        DefaultDepth 24
        SubSection "Display"
                Viewport 0 0
                Virtual 2560 1024
                Depth 24
                Modes "1280x1024"
        EndSubSection
EndSection

Section "DRI"
Group 0
Mode 0666
EndSection
############################################################################ 

In this second configuration, on the right-hand-side we have the analog (Sun GDM-90W10) monitor connected via the regular VGA port of the X800 card, and on the left-hand-side is the digital (Dell 2405FPW) LCD monitor connected via the DVI port of the X800 card. Essentially, the only difference between this configuration and the previous one is that the "CRT2Position" option is now set to "RightOf", and the "MonitorLayout" option is set to "TMDS, CRT", and the resolution is set to "1920x1200". The analog output of the radeon card at this resolution seems to be truncated on the right. What I mean is, for example if you use one of the background wallpapers from InterfaceLIFT, then display the same image on both desktops, around 15% along the right part of the image is truncated on the analog output. I didn't notice this at first, and resizing windows to full screen works correctly. It's puzzling.

By the way, the Dell 2405FPW monitor has a "bug": the component input doesn't correctly filter Macrovision (e.g. from a DVD player), and passes the messy signal on through to the monitor's Genesis gm1601 scaler processor, resulting in it becoming "confused" and rendering the video with a thin "wavy" segment, usually near the top of the video. So if you're seeing this effect, don't worry, there's nothing wrong with your monitor. The 2405FPW also doesn't support HDCP, so you can't use it as a TV. Probably this is all intended by Dell, to help us get more work done. Recently, I found that the Samsung DVD-HD841 players have a useful workaround for these problems: if you power on a DVD-HD841 with no disc in the drive, and press the following sequence of keys on its remote control: "ANGLE", "4", "3", "2", "7" (which will display the message "HDCP Free") it will cause the player to turn off the HDCP on its DVI output, making it nicely compatible with the Dell 2405FPW monitor. Also, the component output, when run at either 720p (1280x720) or 1080i (1920x1080) displays no wavy lines and looks almost as good as the DVI output (colors look a bit more realistic on the DVI output), making it convenient if you prefer not to switch the DVI connector from your computer to the DVD player and back again each time.

This config still enables the merged framebuffer view, so your two monitors work together as one to display a very wide desktop. This configuration does not use Xinerama, and doesn't work the same way normal X drivers work. The X800 hardware does all the work (so there's no :0.0 and :0.1, only :0.0). Also, xv only works on one head at a time, so you cannot span an xv window across two heads. Maximizing a window works correctly: it fills only one head. Video playback in xine works with the default xv.

#######################################################
# Xorg configuration created by system-config-display


Section "ServerLayout"
       Identifier     "Multihead layout"
       Screen      0  "Screen0" 0 0
       InputDevice    "Mouse0" "CorePointer"
       InputDevice    "Keyboard0" "CoreKeyboard"
       Option      "Xinerama" "off"
       Option      "Clone" "off"
EndSection

Section "Files"
  FontPath     "/usr/X11R6/lib/X11/fonts/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/local"
  FontPath     "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/Type1"
  FontPath     "/usr/X11R6/lib/X11/fonts/URW"
  FontPath     "/usr/X11R6/lib/X11/fonts/Speedo"
  FontPath     "/usr/X11R6/lib/X11/fonts/PEX"
  FontPath     "/usr/X11R6/lib/X11/fonts/cyrillic"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/Type1"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin7/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/baekmuk:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/japanese:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/kwintv"
  FontPath     "/usr/X11R6/lib/X11/fonts/truetype"
  FontPath     "/usr/X11R6/lib/X11/fonts/uni:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/CID"
  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/Type1"
  FontPath     "/usr/X11R6/lib/X11/fonts/misc/sgi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/xtest"
  FontPath     "/opt/kde3/share/fonts"
  InputDevices "/dev/ttyS0"
  InputDevices "/dev/ttyS1"
  InputDevices "/dev/ttyS2"
  InputDevices "/dev/ttyS3"
  InputDevices "/dev/ttyS4"
  InputDevices "/dev/ttyS5"
  InputDevices "/dev/ttyS6"
  InputDevices "/dev/ttyS7"
  InputDevices "/dev/ttyS8"
  InputDevices "/dev/psaux"
  InputDevices "/dev/logibm"
  InputDevices "/dev/sunmouse"
  InputDevices "/dev/atibm"
  InputDevices "/dev/amigamouse"
  InputDevices "/dev/atarimouse"
  InputDevices "/dev/inportbm"
  InputDevices "/dev/gpmdata"
  InputDevices "/dev/mouse"
  InputDevices "/dev/usbmouse"
  InputDevices "/dev/adbmouse"
  InputDevices "/dev/input/mice"
  InputDevices "/dev/input/event0"
  InputDevices "/dev/pointer0"
  InputDevices "/dev/pointer1"
  InputDevices "/dev/pointer2"
  InputDevices "/dev/pointer3"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "IMPS/2"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5"
        Option      "Emulate3Buttons" "yes"
EndSection


Section "Module"
       Load  "dbe"
       Load  "extmod"
       Load  "fbdevhw"
       Load  "glx"
       Load  "record"
       Load  "freetype"
       Load  "type1"
       Load  "dri"
EndSection

Section "Monitor"
       Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Dell 2405FPW (Digital)"
        HorizSync    30.0 - 80.0
        VertRefresh  56.0 - 76.0
        Option      "dpms"
EndSection

Section "Device"
       Identifier  "Videocard0"
       Driver      "radeon"
       VendorName  "Videocard vendor"
       BoardName   "ATI Radeon X800SE"
       Option      "CRT2HSync"    "30.0-80.0"
       Option      "CRT2VRefresh" "56.0-76.0"
       Option      "CRT2Position" "RightOf"
       Option      "MergedFB" "true"
       Option      "MonitorLayout" "TMDS, CRT"
       BusID       "PCI:1:0:0"
       Screen      0
EndSection

Section "Screen"
        Identifier "Screen0"
        Device "Videocard0"
        Monitor "Monitor0"
        DefaultDepth 24
        SubSection "Display"
                Viewport 0 0
                Depth 24
                Modes "1920x1200"
        EndSubSection
EndSection

Section "DRI"
Group 0
Mode 0666
EndSection
############################################################################ 

Developer specification

Model information

The card I have here is the 128MB PCI Express x16 (DVI/VGA/TV-out) ATI Radeon X800 SE, which seems to be an OEM card made for Dell with half the memory of the boxed ATI X800 cards with PCI Express x16 interfaces. Boxed ATI cards with 128MB seem to only be available with AGP interfaces.

Installation

Installs into the PCI Express 16x interface on the motherboard.

Distro here

  • SuSE/Novell 9.2
  • RedHat RHEL4
  • Fedora Core 3
  • SuSE/Novell SLES-9

Current support

Dual monitors (wide desktop) with 3D acceleration enabled.

Own experience

  • The proprietary "fglrx" driver from ATI works very well now with revision 8.10.19 of the driver, with 3D acceleration working even on dual heads.
  • The open-source "radeon" drivers also perform admirably and with a much better documented configuration, although without 3D acceleration.

Own Experience

The only unusual thing I noticed, related to 3D acceleration, was that while running the ID Software OpenGL game "Quake III Arena", for which ID very kindly make a linux version of the engine available for free download, the mouse would soon stop working. The fix for this appears to be to boot the system with acpi enabled (the default) rather than with "acpi=off" which was needed for the installation and that the installer added after it was done. So your /boot/grub/menu.lst file should look something like this:

title Linux (with acpi enabled, to make Quake happy :)
    kernel (hd0,4)/vmlinuz root=/dev/sda6 vga=0x319 selinux=0 splash=silent resume=/dev/sda1 elevator=cfq showopts
    initrd (hd0,4)/initrd

RedHat RHEL-4 and Fedora Core 3 open-source radeon Driver Dual-Head Configuration

In this configuration, on the right-hand-side I have an analog (Sun GDM-90W10) monitor connected via a VGA-to-DVI converter to the DVI port of the X800 card, and on the left-hand-side I have an analog (Dell E193FP) LCD monitor connected to the VGA port of the X800 card. This config enables what the radeon driver refers to as the merged framebuffer view, so your two monitors work together as one to display a very wide desktop. This configuration does not use Xinerama, and doesn't work the same way normal X drivers work. The X800 hardware does all the work (so there's no :0.0 and :0.1, only :0.0). Also, xv only works on one head at a time, so you cannot span an xv window across two heads. Maximizing a window works correctly: it fills only one head. Video playback in xine works with the default xv. High Definition TV playback in RedHat RHEL-4 with xine-hd from pcHDTV with Xorg uses remarkably little CPU, compared to using XFree86. See here for more details on digital television in the USA.
# /etc/X11/xorg.conf for dual-head operation with the radeon driver for RedHat RHEL-4 and Fedora Core 3
Section "ServerLayout"
       Identifier     "Multihead layout"
       Screen      0  "Screen0" 0 0
       InputDevice    "Mouse0" "CorePointer"
       InputDevice    "Keyboard0" "CoreKeyboard"
       Option      "Xinerama" "off"
       Option      "Clone" "off"
EndSection

Section "Files"
       RgbPath      "/usr/X11R6/lib/X11/rgb"
       FontPath     "unix/:7100"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "IMPS/2"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5"
        Option      "Emulate3Buttons" "yes"
EndSection

Section "Module"
       Load  "dbe"
       Load  "extmod"
       Load  "fbdevhw"
       Load  "glx"
       Load  "record"
       Load  "freetype"
       Load  "type1"
       Load  "dri"
EndSection

Section "Monitor"
       Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Dell 1901FP (Analog)"
        HorizSync    30.0 - 80.0
        VertRefresh  56.0 - 76.0
        Option      "dpms"
EndSection

Section "Device"
       Identifier  "Videocard0"
       Driver      "radeon"
       VendorName  "Videocard vendor"
       BoardName   "ATI Radeon X800SE"
       Option      "CRT2HSync"    "30.0-80.0"
       Option      "CRT2VRefresh" "56.0-76.0"
       Option      "CRT2Position" "LeftOf"
       Option      "MergedFB" "true"
       Option      "MonitorLayout" "CRT, CRT"
       BusID       "PCI:1:0:0"
       Screen      0
EndSection

Section "Screen"
        Identifier "Screen0"
        Device "Videocard0"
        Monitor "Monitor0"
        DefaultDepth 24
        SubSection "Display"
                Viewport 0 0
                Virtual 2560 1024
                Depth 24
                Modes "1280x1024"
        EndSubSection
EndSection

Section "DRI"
Group 0
Mode 0666
EndSection

Debian Xorg radeon Driver Dual-Head Configuration (highest recommendation)

Debian's unstable branch now has Xorg. For me it has been well worth the time to learn to use Debian, for stability, performance and development tool support. The Debian Xorg is no exception. It gives by far the best performance I've seen of any distro I've tried HDTV playback with. To install Xorg on Debian, use:
apt-get install xserver-xorg

My /etc/X11/xorg.conf configuration file is as follows. The only puzzling thing was that the setting for "MonitorLayout" of "TMDS, CRT" which in theory should have been the one to use, doesn't work. Instead, either leaving the "MonitorLayout" out completely, or setting it to "AUTO,AUTO" works fine.

This Xorg configuration will drive the analog Sun GDM-90W10 monitor at the same resolution as the Dell 2405FPW DVI monitor, i.e. at a resolution of 1920x1200, which is the maximum resolution the Sun GDM-90W10 can manage (horizontal frequency of 87.1kHz, Vertical frequency 70.3 Hz, Pixel Frequency 219.3MHz). The log file from xorg can be seen here

#######################################################
# Xorg configuration created by system-config-display


Section "ServerLayout"
       Identifier     "Multihead layout"
       Screen      0  "Screen0" 0 0
       InputDevice    "Mouse0" "CorePointer"
       InputDevice    "Keyboard0" "CoreKeyboard"
       Option      "Xinerama" "off"
       Option      "Clone" "off"
EndSection

Section "Files"
        # if the local font server has problems, we can fall back on these
        FontPath        "/usr/lib/X11/fonts/misc"
        FontPath        "/usr/lib/X11/fonts/cyrillic"
        FontPath        "/usr/lib/X11/fonts/100dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/75dpi/:unscaled"
        FontPath        "/usr/lib/X11/fonts/Type1"
        FontPath        "/usr/lib/X11/fonts/CID"
        FontPath        "/usr/lib/X11/fonts/100dpi"
        FontPath        "/usr/lib/X11/fonts/75dpi"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "IMPS/2"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5"
        Option      "Emulate3Buttons" "yes"
EndSection


Section "Module"
        Load    "GLcore"
        Load    "bitmap"
        Load    "dbe"
        Load    "ddc"
        Load    "dri"
        Load    "extmod"
        Load    "freetype"
        Load    "glx"
        Load    "int10"
        Load    "record"
        Load    "speedo"
        Load    "type1"
        Load    "vbe"
EndSection

Section "Device"
       Identifier  "Videocard0"
       Driver      "radeon"
       VendorName  "Videocard vendor"
       BoardName   "ATI Radeon X800SE"
       Option      "CRT2HSync"    "30.0-81.0"
       Option      "CRT2VRefresh" "56.0-76.0"
       Option      "CRT2Position" "RightOf"
       Option      "MergedFB" "true"
#       Option      "AGPMode" "4"
#       Option      "EnablePageFlip" "true"
       Option      "MonitorLayout" "AUTO, AUTO"
#       Option      "backingstore"
       BusID       "PCI:1:0:0"
       Screen      0
EndSection

Section "Screen"
        Identifier "Screen0"
        Device "Videocard0"
EndSection

Section "DRI"
Group 0
Mode 0666
EndSection
############################################################################ 

SuSE 9.1 and SuSE/Novell SLES-9 fglrx Driver Dual-Head Configuration

In this configuration, on the right-hand-side I have an analog (Sun GDM-90W10) monitor connected via a VGA-to-DVI converter to the DVI port of the X800 card, and on the left-hand-side I have an analog (Dell E193FP) LCD monitor connected to the VGA port of the X800 card. This config enables what ATI refer to as the big desktop view, so your two monitors work together as one to display a very wide desktop. This configuration does not use Xinerama, and doesn't work the same way normal X drivers work. The X800 hardware does all the work (so there's no :0.0 and :0.1, only :0.0). Also, xv only works on one head at a time, so you cannot span an xv window across two heads, although you can use opengl in mplayer or xine to play back video with it spanning across both heads, giving quite a cinematic experience. Maximizing a window doesn't work correctly: it fills both heads, which usually isn't what you want. Also, video playback in xine works with xine -V xshm rather than with the default xv which gives only black. Note: if the monitor connected to the DVI port of the X800 card is your left-hand monitor, please change the DesktopSetup as follows:
    Option "DesktopSetup"               "0x00000200" 

Here's the complete /etc/X11/XF86Config configuration file, it's almost exactly the same as the one shown above for SuSE 9.2, but I'll just keep it here as it's simpler to keep track of each configuration in a separate section so that I can document any additional details (none so far, it seems to work exactly the same as it does in SuSE 9.2).

# /etc/X11/XF86Config configuration file for SuSE 9.2 and SuSE/Novell SLES-9
Section "dri"
    Group 0
    Mode 0666
EndSection

Section "Module"
  Load         "dri"
  Load         "dbe"
  Load         "type1"
  Load         "speedo"
  Load         "freetype"
  Load         "extmod"
  Load         "glx"
  Load         "v4l"
EndSection

Section "Files"
  FontPath     "/usr/X11R6/lib/X11/fonts/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/local"
  FontPath     "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/Type1"
  FontPath     "/usr/X11R6/lib/X11/fonts/URW"
  FontPath     "/usr/X11R6/lib/X11/fonts/Speedo"
  FontPath     "/usr/X11R6/lib/X11/fonts/PEX"
  FontPath     "/usr/X11R6/lib/X11/fonts/cyrillic"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/Type1"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin7/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/baekmuk:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/japanese:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/kwintv"
  FontPath     "/usr/X11R6/lib/X11/fonts/truetype"
  FontPath     "/usr/X11R6/lib/X11/fonts/uni:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/CID"
  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/Type1"
  FontPath     "/usr/X11R6/lib/X11/fonts/misc/sgi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/xtest"
  FontPath     "/opt/kde3/share/fonts"
  InputDevices "/dev/ttyS0"
  InputDevices "/dev/ttyS1"
  InputDevices "/dev/ttyS2"
  InputDevices "/dev/ttyS3"
  InputDevices "/dev/ttyS4"
  InputDevices "/dev/ttyS5"
  InputDevices "/dev/ttyS6"
  InputDevices "/dev/ttyS7"
  InputDevices "/dev/ttyS8"
  InputDevices "/dev/psaux"
  InputDevices "/dev/logibm"
  InputDevices "/dev/sunmouse"
  InputDevices "/dev/atibm"
  InputDevices "/dev/amigamouse"
  InputDevices "/dev/atarimouse"
  InputDevices "/dev/inportbm"
  InputDevices "/dev/gpmdata"
  InputDevices "/dev/mouse"
  InputDevices "/dev/usbmouse"
  InputDevices "/dev/adbmouse"
  InputDevices "/dev/input/mice"
  InputDevices "/dev/input/event0"
  InputDevices "/dev/pointer0"
  InputDevices "/dev/pointer1"
  InputDevices "/dev/pointer2"
  InputDevices "/dev/pointer3"
EndSection

Section "InputDevice"
    Identifier  "Keyboard1"
    Driver      "Keyboard"
    Option "AutoRepeat" "500 30"
    Option "XkbRules"   "xfree86"
    Option "XkbModel"   "pc101"
    Option "XkbLayout"  "us"
EndSection

Section "InputDevice"
    Identifier  "Mouse1"
    Driver "mouse"
    Option "Protocol"   "ImPS/2"
    Option "ZAxisMapping"   "4 5"
    Option "Device"     "/dev/input/mice"
EndSection

Section "Monitor"
    Identifier  "Monitor0"
    HorizSync   31.5 - 80.5
    VertRefresh 60 - 75
    Option "DPMS"
EndSection


Section "Monitor"
    Identifier  "Monitor1"
    HorizSync   31.5 - 80.5
    VertRefresh 60 - 75
    Option "DPMS"
EndSection

Section "Device"
    Identifier                          "ATI Graphics Adapter"
    Driver                              "fglrx"
# ### generic DRI settings ###
# === disable PnP Monitor  ===
    #Option                              "NoDDC"
# === disable/enable XAA/DRI ===
    Option "no_accel"                   "no"
    Option "no_dri"                     "no"
# === misc DRI settings ===
    Option "mtrr"                       "off" # disable DRI mtrr mapper, driver has its own code for mtrr
# ### FireGL DDX driver module specific settings ###
# === Screen Management ===
    Option "DesktopSetup"               "0x00000201" 
    Option "MonitorLayout"              "AUTO, AUTO"
    Option "IgnoreEDID"                 "off"
    Option "HSync2"                     "31.5 - 80.5" 
    Option "VRefresh2"                  "60 - 75" 
    Option "ScreenOverlap"              "0" 
# === TV-out Management ===
    Option "NoTV"                       "yes"     
    Option "TVStandard"                 "NTSC-M"     
    Option "TVHSizeAdj"                 "0"     
    Option "TVVSizeAdj"                 "0"     
    Option "TVHPosAdj"                  "0"     
    Option "TVVPosAdj"                  "0"     
    Option "TVHStartAdj"                "0"     
    Option "TVColorAdj"                 "0"     
    Option "GammaCorrectionI"           "0x00000000"
    Option "GammaCorrectionII"          "0x00000000"
# === OpenGL specific profiles/settings ===
    Option "Capabilities"               "0x00000000"
# === Video Overlay for the Xv extension ===
    Option "VideoOverlay"               "on"
# === OpenGL Overlay ===
# Note: When OpenGL Overlay is enabled, Video Overlay
#       will be disabled automatically
    Option "OpenGLOverlay"              "off"
# === Center Mode (Laptops only) ===
    Option "CenterMode"                 "off"
# === Pseudo Color Visuals (8-bit visuals) ===
    Option "PseudoColorVisuals"         "off"
# === QBS Management ===
    Option "Stereo"                     "off"
    Option "StereoSyncEnable"           "1"
# === FSAA Management ===
    Option "FSAAEnable"                 "no"
    Option "FSAAScale"                  "1"
    Option "FSAADisableGamma"           "no"
    Option "FSAACustomizeMSPos"         "no"
    Option "FSAAMSPosX0"                "0.000000"
    Option "FSAAMSPosY0"                "0.000000"
    Option "FSAAMSPosX1"                "0.000000"
    Option "FSAAMSPosY1"                "0.000000"
    Option "FSAAMSPosX2"                "0.000000"
    Option "FSAAMSPosY2"                "0.000000"
    Option "FSAAMSPosX3"                "0.000000"
    Option "FSAAMSPosY3"                "0.000000"
    Option "FSAAMSPosX4"                "0.000000"
    Option "FSAAMSPosY4"                "0.000000"
    Option "FSAAMSPosX5"                "0.000000"
    Option "FSAAMSPosY5"                "0.000000"
# === Misc Options ===
    Option "UseFastTLS"                 "0"
    Option "BlockSignalsOnLock"         "on"
    Option "UseInternalAGPGART"         "yes"
    Option "ForceGenericCPU"            "no"
    BusID "PCI:1:0:0"    # vendor=1002, device=4e47
    Screen 0
EndSection

Section "Screen"
    Identifier  "Screen0"
    Device      "ATI Graphics Adapter"
    Monitor     "Monitor0"
    DefaultDepth 24
    #Option "backingstore"

    Subsection "Display"
        Depth       24
        Modes       "1280x1024"
        ViewPort    0 0  # initial origin if mode is smaller than desktop
        Virtual     1280 1024
    EndSubsection
EndSection

Section "ServerLayout"
    Identifier  "Server Layout"
    Screen "Screen0"
    InputDevice "Mouse1" "CorePointer"
    InputDevice "Keyboard1" "CoreKeyboard"

EndSection

Back to LinuxHints - Everything GNU ever wanted to know about Linux

-- PeterKnaggs - 1 Jul 2006

  • xorg.conf: xorg.conf to use beryl with opensource radeon driver

to top

I Attachment sort Action Size Date Who Comment
Xorg.0.log manage 55.4 K 06 Nov 2005 - 17:22 PeterKnaggs Log file from xorg
xorg.conf manage 4.0 K 01 Apr 2007 - 04:06 PeterKnaggs xorg.conf to use beryl with opensource radeon driver

You are here: Main > TWikiUsers > PeterKnaggs > LinuxHints > LinuxHardwareInfo > LinuxHardwareInfoATIRadeonX800

to top

Copyright © 1999-2008 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback