Wednesday, March 10, 2010

Gentoo Series Part II : Problem and Solution

To recap what went on in my last post, I had Kubuntu 8.10 WITH 3D acceleration on it, and Gentoo with the newest Xorg (1.7) with no 3D acceleration.

I'm a little hazy on the little details of my excursion, but here's the gist of it.

Package versions of Gentoo and Kubuntu 8.10's Xorg were 1.7 and 1.5 respectively.
Kernel versions were 2.6.31 and 2.6.28 respectively

Now along with each Xorg version, there are a LOT of dependancies that go with it.
Things such as:
randrproto, dri2proto, xcb-proto, xextproto, libXau, xtrans, libxcb, libX11, libXext, etc.

and so on and so forth. These versions different from each other as well.

Here's the Kubuntu Xorg version in its entirety.

X.Org X Server 1.5.2
Release Date: 10 October 2008
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.24-15-server x86_64 Ubuntu
Current Operating System: Linux phoenix 2.6.27-16-generic #1 SMP Tue Dec 1 19:26:23 UTC 2009 x86_64
Build Date: 09 March 2009 01:06:41PM
xorg-server 2:1.5.2-2ubuntu3.1 (buildd@crested.buildd)
Before reporting problems, check
to make sure that you have the latest version.
Module Loader present

I spent a lot of my time compiling a kernel for Gentoo that matched the specifications on my M17 Alienware laptop. I owe a lot of thanks to the Gentoo wiki for having an entry on such a laptop.


The first thing I started to change was the Kernel. I started out with 2.6.31 and ended with It took quite a few tries to compile it right. Once I had a kernel up and running smoothly, I started to focus on X.
As I had Xorg 1.7 installed, I had to first remove it. From what I remember, it didn't uninstall some of the dependencies. (Perhaps my choice of removal options in emerge). So after that, I installed Xorg 1.5.3 without too much issue. Installing it is the easy part after all =p

I believe that 1.5.3 included dependencies that were not compatible with the ATI 8.12 catalyst drivers (such as libXext, the proto libraries) but were still installed as part of the 1.5.3 package as they were 'updated' versions. Upon my journey through the vast wasteland of old forums, I found a compatibility list for Xorg 1.5.3.

Find the list here:

Basically this lists all of the stable xorg-related packages for the 1.5.3 release.
Then the hard part began: I had to go through each package and ensure that the version was equal or as close to as possible, the specified version.
Some packages I don't think I found (this was months if not a year after bug was created) because of recent changes to the repo structure. After getting the versions right and removing potential conflicts, I had a complete 1.5.3 Xorg built and ready.

Finally, after weeks of work I installed the Catalyst drivers and they WORKED!
However, it wasn't time to celebrate yet. If I attempted to re-install xorg 1.5.3 or did an update world, it would have overridden my work and killed my display. I spent hours afterwords blocking versions of various xorg packages for emerge.

I wasn't quite done yet either. Once up and running, I started to get the KWin slow compositing issue with window resizing, maximizing and minimizing. In the end I patched Xorg myself as xorg-1.5.3-r7 (r6 was the max revision last I checked) and installed it as a local package.
At first I started out with the slow compositing patch, but that didn't work. Then I heard about a patch known as the fedora-dont-backfill patch. I patched using that, but it still performed poorly so I basically removed all code in a method that was the potential problem. Sadly it was still laggy, but performed much better after my patch.

Turns out that the poor performance was due to a performance improvement to the Intel graphics chipset.

So after tweaking the system a bit, I got a working Xorg and Gentoo system up and running. Awesome!

Below is a list of files with descriptions that someone who wants to attempt the same process would find useful.

Fedora Backfill Patch:
Gentoo Packages I had Installed:
Alienware M17 Customized kernel:
Gentoo make.conf:
Gentoo package.keywords:
Gentoo package.mask:
Gentoo package.unmask:
KWin Resizing Patch:
Gentoo rc.conf:
Local (modded) Xorg 1.5.3-r7:

If you're installing Gentoo, you'll probably understand the meaning of the files.

I hope that this explaination of 3D acceleration on Gentoo's older 1.5.3 Xorg are satisfactory. Feel free to email me if you have any questions.
I may write another blog on Gentoo, part III, on some issues I found. Nothing warranting such a large blog post.


No comments: