From my experiences, I found that Ubuntu versions 7.10, 8.04 and 8.10 will get the card to work straight out of the box, but I had no luck to get it to work for dual displays perfectly except for version 8.10 (You'll still need some modifications to xorg though, see below).
For the two older version 7.10 and 8.04, the closest thing that I have come to making it work on the older versions is by downloading and installing ATI's driver straight from their support site.
With the older versions, both the
xserver-xorg-fglrx(did not work - black screen) and the
xserver-xorg-fglrx-envy(defers to the Mesa driver, making it horridly slow) packages weren't the most fruitful experiences when I tried installing them, so avoid unless you're keen on experimenting.
Installing via the ATI Installer
I'll recommend not to use this option if you have planning to upgrade to Ubuntu 8.10. There are a few quirks with the installer version that will not work well with your window manager if you wanted a rotated screen (See later section).
The steps are straightforward in this case: just execute the downloaded installer and follow the instructions. It's important to note the that the uninstaller is located at
/usr/share/ati/fglrx-uninstall.sh, which may become necessary to do to prevent conflicting installations if you decided to apt-get from Ubuntu's repository later.
Upgrading and Installing from Ubuntu 8.10's Repository
These steps are probably not necessary if you've installed Ubuntu 8.10 fresh, but may be essential if you got here through an upgrade path like I did.
The main things you want to apt-get are:
jockey-gtk. As a non-dependent package, jockey-common is surprisingly crucial to getting your setup to work, as it contains working versions of
amdpcsdband various important files in
Once you the packages installed, if you are running gnome, go to
'System -> Administration -> Hardware Drivers'and you should see the ATI Driver available for installation. Click on 'Activate' to download the driver and install. It may take a while before the installation completes.
After the installation, you may be prompted to restart your machine. Before you do, just check that the
'fglrx'driver is mentioned in
/etc/X11/xorg.conf. Check that the following line is present in your "Device" Section, eg:
Identifier "Configured Video Device"
Add the line in red into your
xorg.confif it isn't present. Here's an example
xorg.confthat may help. Once you are done with the changes, restart your machine.
Checking that fglrx Driver is Running
With luck, your X should be running on your system after the installation. The first thing to do is you check that you have the
'fglrx'driver running. You should get something like this from the output of
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Radeon HD 3600 Series
OpenGL version string: 2.1.8087 Release
You can also run
fgl_glxgearsto verify that the card is running correctly visually.
Setting up the Dual Display Configuration
( Update: Compiz does work OK with dual-display, and out of the box as well, just not with rotated-screens. If you don't use rotated screens, this should be fine, so skip the following section. )
To get access to the settings, you'll need
gconf-editorwhich is an X application, so you should change this setting before you try restarting X in dual-head mode.
gconf-editorand change the key value in
Next is to make changes in your
xorg.conffile. While ATI provided the default tools like
'aticonfig'and ATI's Catalyst Control Centre (
'amdcccle'), I'll recommend you avoid them for now (see Troubleshooting for why).
Here's an excerpt from my
xorg.confas an example:
Identifier "ATI Radeon HD 3650 "
# only need to set it one time for a dual-head card
# Option "UseFastTLS" "1"
# Option "VideoOverlay" "on"
# Option "OpenGLOverlay" "off"
Identifier "ATI Radeon HD 3650 "
# Rotation: Not supported as an option directly at the moment
# Option "RandRRotation"
# Option "Rotate" "CCW"
Identifier "Monitor 0"
Identifier "Screen 0"
Monitor "Monitor 0"
Device "ATI Radeon HD 3650 "
Viewport 0 0
Identifier "Screen 1"
Monitor "Monitor 1"
Device "ATI Radeon HD 3650 "
Viewport 0 0
Identifier "Default Layout"
Screen "Screen 0"
Screen "Screen 1" RightOf "Screen 0"
# have to disable xinerama if I want screen rotation
Option "Xinerama" "off"
xorg.conffile can be found here. Make the relevant changes, keep your fingers crossed, and restart your computer.
If you've managed to get this far, I'd assume that you have your dual head display working by now. If you wanted more fun out of your display, you can try the rotation capabilities provided by randr. The randr extensions are disabled by default; if you tried
xrandrwithout enabling the extensions you're going to get this message:
% xrandr --output default --rotate left
xrandr: output default cannot use rotation "left" reflection "none"
To enable the randr extenstions, use the
% aticonfig --set-pcs-str='DDX,EnableRandr12,TRUE'
Restart X or your computer after you made the changes.
While the ATI installer versions works without a hitch on older versions of Ubuntu, rotation is the only case it doesn't work right. For your window manager to detect it's dimensions properly, you'll have to install Ubuntu's version of
fglrx, which somehow takes care of the rotation properly compared to the ATI installer version. Rotation also will not work if you are running in Xinerama configuration - you'll end up with areas on your workspace not being accessible by your mouse.
While Gnome allows the option to change its screen rotation from its menu, it doesn't seem to be able to rotate the screen even when the option is set. This means the screen you want rotated will always start landscape every single time it starts up. At least
xrandrnow can detect all the screens that you have available on your card and perform rotation on it:
Screen 1: minimum 320 x 200, current 1024 x 1280, maximum 1280 x 1280
DFP1 disconnected (normal left inverted right x axis y axis)
DFP2 connected 1024x1280+0+0 left (normal left inverted right x axis y axis) 338mm x 270mm
1280x1024 60.0*+ 75.0 75.0 70.0 60.0*
1280x960 60.0 60.0
1152x864 75.0 70.0 60.0
1024x768 75.0 75.0 72.0 70.1 60.0
800x600 72.2 75.0 70.0 60.3 56.2
640x480 75.0 72.8 75.0 60.0
640x400 75.1 59.9
512x384 60.0 74.9
400x300 75.0 60.7
320x240 75.6 60.0
320x200 75.5 60.1
CRT1 disconnected (normal left inverted right x axis y axis)
CRT2 disconnected (normal left inverted right x axis y axis)
TV disconnected (normal left inverted right x axis y axis)
To do rotation, you'll have to invoke this command every single time you log in:
% xrandr --output DFP2 --rotate left
DFP2with whatever screen
xrandrreports you have.
1) There are a few times I had my run-ins with the utility tools ATI provides. Firstly with
'aticonfig'. While it proves useful sometimes, at others, it screws up your
xorg.confconfigurations. What I'll recommend is that you play around with
aticonfig, and copy the relevant parts it generated into your own
xorg.conffile, instead of relying on it blindly.
2) The other tool, ATI's Catalyst Control Centre ' - amdcccle', is just pure evil IMHO. The ATI drivers install an important file called
'/etc/ati/amdpcsdb', which it loads independently from
xorg.conf. If you're finding that X isn't working anymore even with an
xorg.conffile you know to have worked previously, it's most likely that the
amdpcsdbhas been corrupted, which I find that happening from tinkering around with
amdcccle, which is probably the biggest time wasted in trying to hunt down spurious problems.
If your card hangs even if Sysreq keys doesn't work no matter what
xorg.confparameters you've changed, the first thing is probably to try to restore the database. The way I got it to work again was by coping over the
% cp /etc/ati/amdpcsdb.default /etc/ati/amdpcsdb
Do make backups of the original file before you do that, I'm not responsible for any loss or damage it would cause!
3) If X turns into a black screen after you've logged out, try adding or modifying the following line inside
# If you are having trouble with using a single server for a long time and want
# GDM to kill/restart the server, turn this on. On Solaris, this value is
# always true and this configuration setting is ignored.