Wednesday, March 5, 2008

HOWTO: Dual Monitors in Linux with ATI

After searching for many hours and finding many different howtos that didn't work for me, I thought I'd post what I found actually worked in my case. Note, with the ATI cards in particular in linux, it seems like even the same cards using the same driver versions work differently, so this may not work for you. But unlike a lot of the howtos I've seen, this isn't destructive. This will also assume you have installed the latest version of the ATI proprietary drivers.

My problem in particular was that I'm using two monitors of different sizes and resolutions. It seems like it is easy enough to have two of the same size/resolution monitors. Anyway, I'm running a 20.1" screen as my main with a 1680x1050 resolution, and my secondary is a 17" with 1280x1024 resolution, I also have them set so the secondary monitor is to the left of the main monitor.

ALWAYS BACKUP YOUR xorg.conf FILE BEFORE EDITTING IT!!!! I CAN NOT STRESS THAT ENOUGH - It is possible these changes will cause X to not start and you will need to restore the backup.
cd /etc/X11/
cp xorg.conf xorg.conf.backup

Anyway, If you haven't yet configured the main monitor properly, you need to run
aticonfig --initial
That will change your xorg.config file to add the various ATI stuff. There is a way to use the aticonfig command to setup the dual monitors, but I never was able to get Big Desktop to work properly with it. I'd have two monitors, but they'd be separate (IE, I couldn't move windows from one to the other).

Once aticonfig has set up your xorg.conf file, you need to open it up in your favorite text editor and add these lines to the device section that ATI set up. If your xorg.conf file is as sloppy as mine, you may have several "device" sections, so you are looking for this one:
Section "Device"
Identifier "aticonfig-Device[0]"
Driver "fglrx"
Option "VideoOverlay" "on"
Option "OpenGLOverlay" "off"
EndSection

The important part to look for is the "aticonfig-Device[0]" - this tells you that this is the ATI device.

Next step is to add these lines to your file:
Option "DesktopSetup"  "horizontal,reverse"
Option "Mode2" "1280x1024"
Option "DesktopSetup" "LVDS,AUTO"
Option "EnablePrivateBackZ" "yes"
Option "HSync2" "65"
Option "VRefresh2" "60"

As for what these options mean:
  • Option "DesktopSetup" -> This is how your monitors are physically configured, Horizontal means they are next to each other, and reverse means Monitor 2 is to the left of Monitor 1. Other options are vertical, and not having the reverse modifier there.
  • Option "Mode2" -> This is the resolution of your second monitor
  • Option "DesktopSetup" -> The types of monitors that is connected LVDS = LCD, CRT, AUTO.. leaving this as auto should work.
  • Option "EnablePrivateBackZ" -> This enables 3d support for both monitors.. this may not work but it seems to work for me.
  • Option "HSync2" -> Set the horizontal sync of your second monitor, 65 seems to be a default value for 99% of LCDs
  • Option "VRefresh2" -> Vertical refresh of your second monitor, 60 is mine, you will probably have to look yours up if it doesn't work.
In the end, this is what my device section looks like:
Section "Device"
Identifier "aticonfig-Device[0]"
Driver "fglrx"
Option "VideoOverlay" "on"
Option "OpenGLOverlay" "off"
Option "DesktopSetup" "horizontal,reverse"
Option "Mode2" "1280x1024"
Option "DesktopSetup" "LVDS,AUTO"
Option "EnablePrivateBackZ" "yes"
Option "HSync2" "65"
Option "VRefresh2" "60"
EndSection
As I said, these options work for me. Due to the crappy state of the ATI drivers you may need to play with it. There are a few drawbacks that I've found in that my total resolution should be 2960x1050 however it seems to be 3100x1050, or something similar. I don't notice this since the extra pixels are "off" the monitor. And with the second monitor, there are 26 pixels that fall off the bottom of the monitor, but in practice I've never really had an issue with it.

Please drop a comment if you found this helpful (or if it didn't work for you, what you did to fix it, etc).

No comments :

Search.

Google