For the first time since I bought my notebook (over two years ago), I now finally have what I consider a perfect linux install thanks to the r500 support in the xf86-video-ati-drivers.
The biggest advantages over the fglrx driver, when it comes to the r500 cards, are
1. HD video playback using xv without tearing. (Yay!)
2. Smooth Compiz-Fusion with AIGLX.
3. No need to run old kernel versions just because of video driver compatibility!
4. No more proprietary junk in /opt!
Some fglrx driver versions had decent xv, others had decent aiglx support. None of them have worked as well as should be expected.
This is development software which can and probably will mess stuff up for some people. It worked flawlessly for me, but don't try this if you're not willing to spend some time sorting out the quirks.
I started out with a baselayout without X and a vanilla 2.6.26-rc8 with the following config:
To get all the goodies we want and avoid dependency hell, we need to be running a newer version of xorg than the one in portage. The easiest way to to this is by adding the x11 overlay using layman.
The git versions of xf86-video-ati and the xorg components and dependencies have to be unmasked by:
1. Adding the following to /etc/portage/package.keywords
2. Adding the following to /etc/portage/package.unmask
Make sure you have the line VIDEO_CARDS="radeon" in your /etc/make.conf and then install xorg (xf86-video-ati will be pulled in as a dependency)
Edit your /etc/X11/xorg.conf to your liking. I'm using
Start up X and make sure everything seems to work ok
And just like that, two years of frustration come to an end.
To everybody who has ever worked on this driver, thank you, thank you, thank you!
The biggest advantages over the fglrx driver, when it comes to the r500 cards, are
1. HD video playback using xv without tearing. (Yay!)
2. Smooth Compiz-Fusion with AIGLX.
3. No need to run old kernel versions just because of video driver compatibility!
4. No more proprietary junk in /opt!
Some fglrx driver versions had decent xv, others had decent aiglx support. None of them have worked as well as should be expected.
This is development software which can and probably will mess stuff up for some people. It worked flawlessly for me, but don't try this if you're not willing to spend some time sorting out the quirks.
I started out with a baselayout without X and a vanilla 2.6.26-rc8 with the following config:
Code:
CONFIG_AGP=m CONFIG_AGP_INTEL=m CONFIG_DRM_RADEON=m
Code:
layman -a x11
1. Adding the following to /etc/portage/package.keywords
Code:
#### xorg-server dev x11-base/xorg-server ** =x11-libs/libpciaccess-0.10.2 =x11-proto/xproto-7.0.13 =x11-proto/inputproto-9999 =x11-apps/xauth-1.0.3 =x11-libs/libX11-9999 =x11-proto/xproto-9999 =x11-libs/libXrender-0.9.4 =x11-proto/renderproto-0.9.3 =x11-proto/xextproto-7.0.3 =x11-misc/xkeyboard-config-1.3 =x11-apps/xinit-1.0.8-r3 =x11-apps/rgb-1.0.3 =media-libs/mesa-9999 =x11-proto/dri2proto-1.1 =x11-libs/libXext-9999 =x11-proto/xextproto-9999 =x11-libs/xtrans-1.2 =x11-libs/libXi-9999 =x11-libs/pixman-0.11.4 =x11-libs/libXfont-1.3.2 =x11-drivers/xf86-video-ati-9999 =x11-drivers/xf86-input-mouse-9999 =x11-drivers/xf86-input-keyboard-9999 =x11-drivers/xf86-input-evdev-9999 =sys-apps/hal-0.5.11-r1 =dev-python/pyxf86config-0.3.34-r1 =app-misc/hal-info-20080310 =x11-proto/xf86driproto-9999 =x11-libs/libxcb-9999 =dev-lang/python-2.5.2-r5 =x11-proto/xcb-proto-9999 ####
Code:
#### xorg-server dev =x11-proto/dri2proto-1.1 =x11-libs/pixman-0.11.4 =x11-drivers/xf86-video-ati-9999 =x11-libs/libdrm-9999 =media-libs/mesa-9999 =x11-drivers/xf86-input-keyboard-9999 =x11-base/xorg-server-9999 =x11-proto/xproto-9999 =x11-libs/libXext-9999 =x11-libs/libXi-9999 =x11-proto/xextproto-9999 =x11-drivers/xf86-input-mouse-9999 =x11-drivers/xf86-input-evdev-9999 =x11-libs/libX11-9999 =x11-libs/libXft-9999 =media-libs/fontconfig-9999 =x11-proto/inputproto-9999 =x11-proto/xf86driproto-9999 ####
Code:
emerge -av xorg-server
Code:
Section "ServerLayout" Identifier "X.Org Configured" Screen 0 "Screen0" 0 0 InputDevice "Keyboard0" "CoreKeyboard" InputDevice "USB Mouse" "AlwaysCore" EndSection Section "Module" Load "ddc" Load "vbe" Load "GLcore" Load "dbe" Load "dri" Load "extmod" Load "glx" Load "bitmap" Load "freetype" EndSection Section "ServerFlags" Option "AllowMouseOpenFail" "true" Option "IgnoreABI" "on" Option "AIGLX" "true" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "se" Option "XkbVariant" ",winkeys,winkeys" Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll" EndSection Section "InputDevice" Identifier "USB Mouse" Driver "mouse" Option "Device" "/dev/input/mice" Option "SendCoreEvents" "true" Option "Protocol" "IMPS/2" Option "ZAxisMapping" "4 5" Option "Buttons" "5" EndSection Section "Monitor" Identifier "LVDS" Option "VendorName" "Monitor" Option "ModelName" "Generic" Option "DPMS" "true" EndSection Section "Device" Identifier "X1600" Driver "ati" Option "AGPMode" "8" Option "AccelMethod" "EXA" Option "ColorTiling" "on" Option "EnablePageFlip" "true" Option "TripleBuffer" "true" Option "DMAForXv" "true" Option "GARTSize" "64" Option "DynamicClocks" "on" EndSection Section "Screen" Identifier "Screen0" Device "X1600" Monitor "LVDS" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 EndSubSection EndSection Section "DRI" Mode 0666 EndSection Section "Extensions" Option "Composite" "true" Option "DAMAGE" "true" Option "RENDER" "true" EndSection Section "Files" FontPath "/usr/share/fonts/util" FontPath "/usr/share/fonts/encodings" FontPath "/usr/share/fonts/misc" FontPath "/usr/share/fonts/corefonts" FontPath "/usr/share/fonts/default" FontPath "/usr/share/fonts/100dpi" FontPath "/usr/share/fonts/75dpi" FontPath "/usr/share/fonts/default/ghostscript" EndSection
Code:
#dmesg | grep drm [drm] Initialized drm 1.1.0 20060810 [drm] Initialized radeon 1.29.0 20080528 on minor 0 [drm] Loading R500 Microcode #glxinfo | grep direct direct rendering: Yes #xvinfo | grep Adaptor Adaptor #0: "Radeon Textured Video" #grep AIGLX /var/log/Xorg.0.log (**) Option "AIGLX" "true" (**) AIGLX enabled
To everybody who has ever worked on this driver, thank you, thank you, thank you!
Comment