Xorg, Radeon, Thinkpad.

By the pits of elemental chaos, I don’t know where to begin. I truly don’t. I’m typing this up trying to calm down after I was taken against my will on an odyssey of bad documentation, stupid changes and general assholery.

It all started with an innocuous aptitude update; aptitude upgrade. Package linux-image-3.2.0-4-686-pae refused to install properly, but that can be dealt with later. Reboot.

All hell breaks loose upon Xorg. All 2D/3D hardware acceleration is gone. Xrandr refuses to work and the most it can do is clone the displays, displaying the following error with a command that worked for years before today:

$ xrandr --output LVDS --auto --preferred --output VGA-0 --auto --preferred --right-of LVDS
xrandr: screen cannot be larger than 1600x1200 (desired size 2680x1200)

Dig into documentation… nope, I’m setting all options properly. The xorg.conf man page has this golden nugget of information:

VIDEOADAPTOR SECTION
Nobody wants to say how this works. Maybe nobody knows ...

Is it any wonder people are using sites like StackExchange as their first stop when trying to fix issues? Man pages refuse to evolve and more and more applications simply don’t provide them, telling you to go to their website when seeking help.

Anyway, back to Xorg. Installing the proprietary fglrx driver doesn’t work; the Radeon Mobility X1400 card on this Thinkpad T60 is not supported anymore. I could try apt pinning to get it to work… but Debian doesn’t really encourage its use. Purged the driver from the system.

Now I’ll have to do the one thing I really didn’t want to do. Setup a xorg.conf file manually. Switch to a VT (Ctrl+Alt+F1), uplift to root, Kill X (/etc/init.d/lightdm stop), issue X -configure. Get this error:

Number of created screens does not match number of detected devices.
Configuration failed.

2003 called. They want XFree86 back.

All right then, let’s manually create a xorg.conf file that X can use without shitting itself. Visit thinkwiki.org and found useful nuggets of information, including a mostly working xorg.conf file. Couple this with another demonstration xorg.conf file and I came up with this beauty:

Section "Device"
Identifier "ATI X1400"
Driver "radeon"
Option "AGPMode" "8"
Option "AGPFastWrite" "1"
Option "RenderAccel" "1"
Option "AccelMethod" "EXA"
Option "AccelDFS" "1"
Option "EnablePageFlip" "1"
Option "ColorTiling" "1"
Option "DynamicClocks" "1"
Option "BIOSHotkeys" "1"
BusID "PCI:1:0:0"
EndSection

Section "Monitor"
Identifier "LVDS"
Option "DPMS"
EndSection

Section "Screen"
Identifier "Default Screen"
Device "ATI X1400"
DefaultDepth 24
SubSection "Display"
Virtual 2680 1050
EndSubSection
EndSection

It’s ugly, it’s messy. It mostly works.

Video performance is, hmm, how to describe it… quirky; I’m getting lots of drawing artifacts all over the place; CPU usage seems to come and go. Hell, the performance of iceweasel while typing this post leaves much to be desired. But now I’ve got a starting point from which to improve the situation.

Was any of this necessary? No. Would I have run into these issues if I were using Windows or OS X? Certainly not. The urge to leave Linux behind on the desktop and move back to Windows is becoming ever stronger. Windows 8 runs quite nicely on my Thinkpad X61t, and I don’t have to deal with forced changes to my desktop environment.

I’m tired of this. All of this. First Amarok 2 became a monster that still can’t compare with Amarok 1.4.x — Clementine does the job well enough, but really. Then GNOME 2 turned into GNOME 3, throwing into disarray the desktop environment landscape; people haven’t recovered and the alternatives aren’t working yet. Interacting with Android devices remains a pain in the ass. Interacting with iOS devices is basically impossible. The big companies are treating Linux like a third-class citizen.

Should I not be able to get performance to what it was before, I will be migrating back to Windows. I am not alone in this consideration. Right now a whole lot of people are migrating to OS X or Windows to avoid these headaches; they too are tired of having to fight the desktop in order to do real work.

Linux is victorious on the server and mobile spaces, but I now truly don’t expect it to remain more than a plaything for common desktop users. I hope to someday come back to the Linux fold but this won’t probably happen for a few years, when things have changed.