Hardy Heron was officially released last week and has been receiving rave reviews across the Internet. I had upgraded my home machine to the beta version of Hardy about a week before the official release and must say I was impressed . I waited for the official release before upgrading my work laptop.
Linux Video Driver Support
Linux has always had a hard time with proprietary drivers and lack of documentation to devleop open source versions. Thankfully, over the last few years, this has changed quiet a bit with many hardware vendors releasing open source versions of their drivers or opening their specification to such an extent that Linux now supports more hardware than Windows!
The one area where there has been slow progress is with video card drivers, especially since Nvidia and Ati are involved in a stiff competitive battle for this space. Apparently the algorithms used in the drivers provide a competitive advantage and so the vendors are not keen on releasing this to the public domain, which is understandable. Hopefully this situation will change change with Ati being bought by AMD, an open source friendly company.
Configuring Ati Drivers for Dual Monitors
Hardy Heron makes installing the proprietary drivers easy with their restricted driver management tools. On my laptop I had compiz up and running in three clicks :) Configuring dual monitor support proved to be much more difficult. I have a Asus F3J series latop. The lspci command reports the following video chip model:
"01:00.0 VGA compatible controller: ATI Technologies Inc Mobility Radeon X2300"
Apparently this chip is the same as the X1300 model and was rebranded by Ati's marketing department. It's quiet frustrating as you can't find any references to this chipset in the driver documentation so you left guessing whether it is supported or not, but I can report that it works with the driver that comes with Hardy.
The long road to freedom - or what I did for world peace on Freedom day!
(Freedom day is the 27 April -the day of the first democratic elections in South Africa)
Now I am no video card junkie so trying to get dual monitors working on Hardy meant I had to take my video card driver knowledge from near zero to just above rudimentary. The first thing I tried to get things working was to install the fglrx-control package
"apt-get install fglrx-control"
The application is installed under Applications=>Other. Unfortunately the application didn't work for me. I am not sure why and others might have better luck. I later realised that the application probably needs to run as root and it doesn't ask for root privileges when it starts like synaptic does. So maybe run it as root from the command line. Try
maybe it will work for you.
Upgrading to the latest ATI driver usingATI installer or EnvyNG
While googling for info I found out that ATI had released a new version of the driver on the 16th April. You can download the installer from the ATI site, make it executable with "chmod +x ati-driver-installer-8-4-x86.x86_64.run" and run it. There are instructions how to create an Ubuntu package on the forums but I can't find the link. You can try the commands below but before you do uninstall the current fglrx packages if you have them installed. I used "apt-get purge" to do this but its probably better to use Synaptic. Then run:
"sudo apt-get install build-essential fakeroot dh-make debhelper debconf dkms linux-headers-2.6.24-16"
"sudo ./ati-driver-installer-8-4-x86.x86_64.run --buildpkg Ubuntu/hardy"
" sudo dpkg -i xorg-driver-fglrx_8.476*.deb fglrx-kernel-source_8.476*.deb fglrx-amdcccle_*.deb
I later found that one could just use the envyNG application . It's in synaptic so just search for it and use that instead to avoid problems. Unfortunately after upgrading the control application still would not work :( Maybe it was the root privilege which I hadn't though about yet.
Since I had no luck with the gui application I had to delve in and start hacking te xorg.conf file. The easiest way to do this is to use the "aticonfig" command line tool. It is a good idea to back up your current xorg.conf file to roll-back to if there are any issues. To get things to work you need to know the following:
The difference between Big Desktop and Dual Monitor
The ATI card supports two types of dual monitor "modes" for want of a better word. One is what is commonly known as "dual monitors" and then there is, what ATI calls, "big desktop". The two modes are mutually exclusive and there are options that apply to certain mode and not the other. As far as I could tell dual-monitors creates two separate X window sessions and runs them on the individually configured screens for X. (A screen in x is a combination of a monitor and video card configuration.). Big desktop, on the other hand, uses only one screen configuration and shares the desktop across two screens. I struggled setting up both but ended up using "big desktop" as it seemed most people got it working this way. Also it looked like with dual-monitors one could not drag applications across the monitors.
Ok so I tried using "aticonfig" to get things working. There is little documentation available on this tool. The only way I could get anything was to run "aticonfig --help". It provides enough info to make educated guesses as to what the myriad of options do.If you want to try dual-monitor run the first command and to try big desktop run the second.
"aticonfig --initial=dual-head --screen-layout=left"
"aticonfig --initial --desktop-setup=horizontal --overlay-on=1 --ovt=Xv"
The screen-layout options applies to dual head only, while --dtop or --desktop-setup applies to big desktop. Some people had luck with just that, but not me :(. To get big desktop working I had to also run.
"aticonfig --mode2=<resolution for second monitor>"
"aticonfig --resolution=0,<resolutions for first monitor>
Without this I would get the desktop shared but the screen with the login prompt just kept reporting "Out of frequency errors" and remained dark. I could login by just typing the username/password and when Gnome started I would get a cloned desktop with both screens working. So after this I had both screens working but in clone mode only. I later realised that the ATI driver was now seeing the external screen as the primary monitor and the latop screen as the secondary. In Feisty it had been the other way round. This was imporant in setting the screen resolutions properly as I had set the external monitors resolutions for screen 2 when in fact it was screen 1. I played around with the screen resolution settings and made sure that the Display subsection, under the Screen section, had a "Virtual" directive with the same resolution as the 2nd monitor. Some people reported that this had to be the maximum width and height matching the largest values from both monitors. This seems to be essential to getting things to work.
Viewport 0 0
Virtual 1280 960
Please note your setting for "Device" and "Monitor" must reference the identifier names you defined else where in your xorg.conf file.
What happens if I mess up xorg.conf and don't have a backup?
If you mess things up so badly so X doesn't work, I did a couple of times, just backup the existing /etc/X11/xorg.conf and then run
"sudo dpkg-reconfigure -phigh xserver-xorg"
This will create a clean xorg.conf file for you. You can then retry the aticonfig commands above. I found that running the aticofig command, trying different options, could result in a corrupted xorg.conf file. X would still boot but the new options weren't being read. This usually meant that there were two or more configurations for the same screen/device with the same identifier. Its best to start with a clean file or, if you have the knowledge, edit the xorg.conf file to clean it up.
Syntax errors in xorg.conf
Also if there is a syntax problem with your xorg.conf file, X just ignores the file and starts in low graphics mode. You get a message to configure your card . This usually means that it would revert to vesa and not your changes. So if you get this screen check you xorg.conf file. Things that got me: setting resolutions needs a small x between the numbers i.e 1024x768 not 1024X768. Also the virtual directive above does not have a x between the numbers.
I hope this helps someone else. It really shouldn't have taken this long to sort this out. On the upside I know have a rudimentary knowledge on the xorg.conf file and some insite into video cards.