Dual Monitor ATI Radeon RV100 QY Radeon 7000/VE X.org

| 0 Comments | 0 TrackBacks
beaver.jpgHow I got my Ubuntu 10.10 Maverick setup to use two monitors with the ATI Technologies Inc Radeon RV100 QY Radeon 7000/VE video card was more troubling than I imagined. The card works fine straight out of the installation but the trouble of slowness starts when you run xrandr to use two monitors. 

Video performance is fine using one screen. But with two monitors and xrandr, moving a window takes a few seconds. It is just too slow and unusable. I upgraded from Ubuntu 8.04 Hardy and I had no problems there. But with Ubuntu 10.10 Maverick things changed a bit and hurt the Radeon RV100's performance. That's because the Direct Rendering Infrastructure or DRI is not enabled. Here's how I enabled it.

It seems that X runs on Maverick without the need for you to explicitly configure an xorg.conf. Problem is that DRI is not enabled and if you want a speedier graphics then you need to configure you're own xorg.conf and enable DRI. 

$ lspci | grep VGA
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon RV100 QY [Radeon 7000/VE]

Here's a picture of my dual monitor setup:
dual_monitor.gif
I'm writing this about a month after the installation so forgive me if I don't remember all the details. But the most important part should be here to fix your slowness.

First look under /etc/x11 and you'll see that there's no more an xorg.conf file. There's a default for your card detected and used out of the box for you. We'll need to get back at configuring our own xorg.conf.

You'll have to kill X, configure xorg.conf and startx until you get it working. Run this to stop the automatic restart of X.

sudo /etc/init.d/gdm stop

Then switch to a non GUI screen by pressing alt+F1, or alt+F2. Or was it Ctrl+Alt+F2 ? Try them until you get the black and white login console. No GUI. Before showing xorg.conf, i have to say that I use windowmaker. So i place wmaker in my home's .xinitrc.

$ cat ~/.xinitrc
wmaker
$

It's just one line "wmaker" which is the window maker executable. 

Now let's play with /etc/X11/xorg.conf and run the command startx. If this file is available, it will use it instead of what it figured out by itself during the installation. If you have doubts whether your /etc/X11/xorg.conf file is picked up or not, check the log file /var/log/Xorg.0.log and it will explicitly say "Using config file: /etc/X11/xorg.conf."

Let's get a default first:

$ Xorg -configure

This will probe your devices and will generate a default xorg.conf file for you. It should identify your monitors and their horizontal and vertical frequencies as well.

Now take your default and change it to look like this one that I have. Pay attention to the SubSection "Display" part where you have to add a Virtual line. You are extending both monitors horizontally so 1280 + 1680= 2960.

Here's my xorg.conf file that you need:

Section "ServerLayout"
Identifier     "X.org Configured"
Screen      0  "Screen0" 0 0
InputDevice    "Mouse0" "CorePointer"
InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
ModulePath   "/usr/lib/xorg/modules"
FontPath     "/usr/share/fonts/X11/misc"
FontPath     "/usr/share/fonts/X11/cyrillic"
FontPath     "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath     "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath     "/usr/share/fonts/X11/Type1"
FontPath     "/usr/share/fonts/X11/100dpi"
FontPath     "/usr/share/fonts/X11/75dpi"
FontPath     "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
FontPath     "built-ins"
EndSection

Section "Module"
Load  "dri"
Load  "dri2"
Load  "extmod"
Load  "record"
Load  "glx"
Load  "dbe"
EndSection

Section "InputDevice"
Identifier  "Keyboard0"
Driver      "kbd"
EndSection

Section "InputDevice"
Identifier  "Mouse0"
Driver      "mouse"
Option    "Protocol" "auto"
Option    "Device" "/dev/input/mice"
Option    "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
        #DisplaySize      380   300     # mm
        Identifier   "Monitor0"
        VendorName   "DEL"
        ModelName    "DELL 1907FP"
        HorizSync    30.0 - 81.0
        VertRefresh  56.0 - 76.0
        Option      "DPMS"
EndSection

Section "Monitor"
#DisplaySize  470   300 # mm
Identifier   "Monitor1"
VendorName   "ACR"
ModelName    "AL2216W"
HorizSync    31.0 - 84.0
VertRefresh  56.0 - 77.0
Option    "DPMS"
EndSection
Section "Device"
Identifier  "Card0"
Driver      "ati"
BusID       "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device     "Card0"
Monitor    "Monitor0"
        DefaultDepth   24
SubSection "Display"
Viewport   0 0
Depth     24
                Modes           "1280x1024"
                Virtual          2960 1050
EndSubSection
EndSection

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


The section that I found on a website (thank you!) and added to my config which enabled DRI are the last two sections DRI and Extensions. I don't know what the Extensions is for and I don't really ask. It works and I don't touch it. Finding this on the net is so hard that I thought I should document this here.

Now if you just run startx hopefully you'll have window maker come up looking great. To render both monitors as one virtual, we'll use xrandr.

$ xrandr --output DVI-0 --mode 1280x1024 --pos 0x0 --output DVI-1 --mode 1680x1050 --pos 1280x0

That's because running xrandr without options shows that DVI-0 is my 19'' DELL and DVI-1 is my 22'' Acer. The positions work from top left down to bottom right. See the figure way above where the xrandr positions 0x0 and 1280x0 are shown.

Don't forget to restart windowmaker after running xrandr to refix the screen. I hope that this will help someone else out there. It took me two days to find and piece all of this together. That's why Linux is still way behind windows and Mac.

No TrackBacks

TrackBack URL: http://www.farhadsaberi.com/cgi-bin/mt/mt-tb.cgi/6

Leave a comment

About this Entry

This page contains a single entry by Farhad Saberi published on November 24, 2010 4:24 PM.

Files Directory security setuid sticky bit permissions is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.