Today’s pain in the ass gold-level sponsors are gentoo, ATI and xorg…
Somehow I initially managed to get ATI drivers working on the [dune] media center, but I’m not sure how – stable kernel and driver do NOT work together. As of today, the ATI-provided [ati-drivers] package does not work – the stable version doesn’t compile with the latest stable [gentoo-sources] kernel, and the soft-masked version doesn’t compile without soft-unmasking half of X.
Well, I opted to soft-unmask half of X, yuck. Here’s what it took in [package.keywords]…

x11-drivers/ati-drivers
x11-apps/ati-drivers-extra
# and deps... sigh...
x11-base/xorg-server
x11-libs/pixman
x11-libs/libpciaccess
x11-proto/xproto
x11-apps/xauth
x11-libs/libXrender
x11-proto/renderproto
x11-proto/xextproto
x11-libs/libXau
x11-libs/libXext
x11-libs/libXfont
x11-proto/inputproto
x11-libs/xtrans
x11-misc/xkeyboard-config
media-libs/mesa
x11-libs/libdrm
x11-libs/libX11
x11-proto/xf86driproto
x11-libs/libXxf86vm
x11-apps/rgb
x11-apps/xinit
x11-proto/randrproto
x11-drivers/xf86-input-keyboard
x11-drivers/xf86-input-mouse
x11-drivers/xf86-input-evdev

When I got done, I lost my 1080p resolution and my mouse and keyboard (!). Digging in, I found that the newer xorg-server autodetects things, and when autodetect is on, it turns off any mouse and keyboard that are specified in xorg.conf. Well… I hadn’t realized up until this point that I wasn’t running HAL (I had it installed but had not yet added it to a run level). Therefore, X would disable my mouse and keyboard specified in xorg.conf, because it expected them to be autodetected. But without hal running, it doesn’t happen. You also have to have the [xf86-input-evdev] package installed and add the [input_devices_evdev] USE flag to [xorg-server] – evdev is what can actually successfully autodetect. Moral of the story: run hal with the latest xorg-server! And run dbus and add users to plugdev group to get hot-plugging.
Next I needed to figure out why I was dropping back to 1600×1200 from 1080p. The xorg log showed this error:

(EE) AIGLX error: fglrx exports no extensions (/usr/lib64/dri/fglrx_dri.so: undefined symbol: __driDriverExtensions)
(EE) AIGLX: reverting to software rendering

This bug indicates that older [ati-drivers] appear to leave broken symlinks that prevent update. Do this:

emerge -C ati-drivers
eselect opengl set xorg-x11 (and remove any files that cause problems)
emerge -av ati-drivers
eselect opengl set ati

Now get your shit together, gentoo… I’d much prefer a stable [ati-drivers]… rrr… I get depressed when “those that hack on linux” cause this much pain to the end user trying to accomplish the most basic tasks… I don’t want to spend so many cycles tweaking and hammering on linux basics… makes me consider a jump to Ubuntu… steady on…

2 Comments

  1. Luca says:

    You may want to give a try to the “autounmask” package.
    The fact gentoo splits application in multiples packages is, indeed, annoying but it’s part of the great Gentoo flexibility.
    autounmask find the exact cut to unmask the required package… and all his dependencies.

    Your problem was actually due to mayor changes in xorg. There’s no easy migration flow.
    That’s why it’s still masked in gentoo.
    A way to keep your X backward compatible is to compile it without the “dbus” use flag.
    Your former xorg.conf will work as in version 1.3.

  2. m says:

    Hey, thanks for the reply Luca!

    Yeah I was having a bad day, and got a little cranky there! rofl. /me loves me gentoo, just got a little bent by all the changes I hit. Linux is an amorphous blob of constantly changing bits, and gentoo does an awesome job of wrangling it all together. In the end, it always makes you smarter, too! 😛

    Thanks for the tips! I will check out autounmask.