Ubuntu and Dual Monitor with ATI x300.

I am kind of new to linux, otherwise I probably would not be writing this article or spend so much time figuring out the solution I am about to describe.
Anyways, I have this old IBM T43 that I use for my work and ever since I installed Ubuntu on it I just could not get laptop’s monitor to behave as second monitor
and have big Dell one to be as the primary one.
I installed “Monitors” app for Gnome and every time I would select Dell as primary the Gnome would freak out and show total garbage on both screens.
After some Googling all I could conclude is that the main problem was my ATI X300 mobile graphics card that was not supported any more by AMD/ATI and
the only supported open source drivers (that I was using) did not work very well in dual monitor setup.
Also the only suggested fixes required complicated xrandr commands or xorg.conf changes that did not work in my case.
What actually worked is this pretty easy fix that I got when paying more attention to what Gnome’s “Monitors” app was doing when applying the changes.

You need to update your ./config/monitors.xml file and specify which monitor has what resolution, is primary or secondary and at which x/y coordinate its starting from.
Here is the content of my ./config/monitors.xml file:

<monitors version="1">
  <configuration>
      <clone>no</clone>
      <output name="VGA-0">
          <vendor>DEL</vendor>
          <product>0x404a</product>
          <serial>0x41574655</serial>
          <width>1920</width>
          <height>1080</height>
          <rate>60</rate>
          <x>1400</x>
          <y>0</y>
          <rotation>normal</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
          <primary>yes</primary>
      </output>
      <output name="DVI-0">
      </output>
      <output name="LVDS">
          <vendor>???</vendor>
          <product>0x0000</product>
          <serial>0x00000000</serial>
          <width>1400</width>
          <height>1050</height>
          <rate>60</rate>
          <x>0</x>
          <y>0</y>
          <rotation>normal</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
          <primary>no</primary>
      </output>
      <output name="S-video">
      </output>
  </configuration>
</monitors>

where I have VGA-0 pointing to my large primary DELL monitor and LVDS pointing to my laptop’s monitor on the left of my “DEL” monitor (thus the 1400 for x value of VGA-0 monitor saying it should start at pixel 1400th since laptops monitor width is 1400).
If you have laptop to the right side of primary monitor set x value of primary monitor to 0 and x value of laptops monitor to the width of primary monitor which is in my case 1920.
You need to restart or logout/login after you update this file and save it (yea, make sure to backup your old monitors.xml file).

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>