Saturday, May 29, 2010

Ati 3450 graphics and Debian Squeeze

Booting into Debian Squeeze with the Ati 3450 graphics card gave me a workable display, but one that is far from ideal.

Most Linux distributions will fall back to Vesa if they cannot determine an optimal configuration for your graphics card.

The rest of this article contains much technical detail, but if you are running Debian you might just need to know that attempting to run

apt-get install xserver-xorg-video-radeon

...should probably be replaced with the fuller command:

apt-get install xserver-xorg-video-ati xserver-xorg-video-radeon

But now for the detail....

Looking at the chipset for this Ati 3450, I get some hints in the Xorg output, that are somewhat encouraging, saying that the PCI-E card is being detected:

 A quick read on Wikipedia shows that my card is indeed based on RV620 GPU although, physically, it looks a little different

Seems to me that the problem is that my system is not choosing to use the 'radeon' driver.

So first thing is to install radeon driver:

apt-get install xserver-xorg-video-radeon

which should install on your system some driver files:

Now from reading some forum posts, some people suggest doing the following, but neither of these were of any help to me:

  • dpkg-reconfigure xserver-xorg
  • dpkg-reconfigure xserver-common

Being that my system is an unstable or testing version of Debian, my expectation is that not everything will work just right from the outset.

Now there is talk in forum about using either of the following to generate an xorg.conf which would supposedly then override systems own detection:
  • X -configure
  • Xorg -configure

Both are binaries and my results from running both commands produced identical files at /root/
...and which you can view in this web directory.

The important portion of that file is the driver line which is highlighted below:

...which looks correct.
So at this point I am able get a good radeon xorg by using the -configure option, however my system is still choosing vesa when it runs.

Notes about running X or Xorg with -configure and single user mode:

If you really want an xorg.conf file to be generated, then you will have to stop X (if it is already running), otherwise your attempt to get an xorg.conf will fail.

My way is to use Ctrl+Alt+F1 to get to a terminal, login as root, then issue

telinit 1

You might have your own way, but in any case, until you stop X (and lose graphical desktop temporarily), your X -configure command will surely fail.

xorg.conf the Debian way - should I make changes here?:

Debian /etc/ structures sometimes include a directory of pieces rather than single monolithic .conf files. This approach seems to be being adopted now for xorg.
In particular this could provide a way of overriding sections of an automatic xorg configuration.

See /usr/share/X11/xorg.conf.d

Reading up a bit regarding the use of xorg.conf.d made me wary about putting pieces in that directory for device or screen.

Review and new approach to a working 2D system using radeon driver:

Back at the beginning when I installed xserver-xorg-video-radeon, I consulted aptitude and observed the following hierarchy:

It occurred to me at the time, to install that whole bunch, but being minimalist, I just went for the radeon. Now I take the other approach...

apt-get install xserver-xorg-video-ati

which pulls in the 3 dependencies and gives a working result.

Now (after rebooting) I have a working 2D display using the radeon driver (Xorg log output is here)

What is good about this new situation is that I have 1920x1200 resolution:

...however, there is a noticeable drag delay whenever I move things about on the screen :(

Reading up I see that there is a alternate radeon driver package xserver-xorg-video-radeonhd which I installed, and so my system now has both variants installed:

...which made absolutely no difference after rebooting. Makes sense I suppose that if I have both installed on my system then the one clearly labelled 'alternate' would not be favourite :)

Having danced about a bit, let me take stock, and say that my situation is that I have a working 2D driver, but that what is missing is perhaps OpenGL acceleration.

Leads me to this diagram to illustrate where I will seek a solution next:

and issuing the following command (then rebooting):

apt-get install libdrm-radeon1 libgl1-mesa-dri

...means that I can run glxgears and glxinfo now, but the noticable drag delay still remains.

...and 500 FPS from the open source driver, does not look too shabby, so why the lag? Here is glxinfo extract:

...but having installed driconf and run the thing, it seems to think my system is not dri capable:

so I am no further along here.

Sometimes following a hunch can win you the prize, and here is what I guessed to try...Turning ON display compositing

which got rid of the lag when moving objects on screen.

So now I have exactly what I wanted at the outset - a workable 2D display for my Ati 3450 graphics card, without having to resort to non-free (proprietary) software :)

For clarity and to recap for my own benefit:

I recommend the following command for Debian Squeeze Ati 3450 systems:

apt-get install xserver-xorg-video-ati libdrm-radeon1 libgl1-mesa-dri

If your Debian Squeeze Ati 3450 system appears to have a lag, when dragging objects, then turn ON display compositing.

( Note: If you are a gamer or are seriously concerned about the 3D performance, rather than just a workable desktop, then you will probably still want to go down the fglrx route )

No comments: