Problems with fglrx
This page discusses issues with the ATI proprietary fglrx display driver.
Contents
Known Troubles and Solutions
No hardware acceleration
If the ATI driver works only without the hardware acceleration, take into consideration that fglrx_dri.so was linked against libstdc++.so.5 which may not be present if your system uses gcc-3.4.
To fix this, compile gcc-3.3.5 and copy libstdc++.so.5* to /usr/lib and update the dynamic linker cache via # ldconfig
.
Another possible cause for broken hardware acceleration (2D and 3D) is the radeonfb framebuffer: Switching to vesafb or vesafb-tng is reported to solve the problem on some systems. Also it has proven helpful to not perform # modprobe fglrx
after boot but to have the module loaded via /etc/modules.autoload/kernel2.x at boottime instead.
Softlink hell
The fglrx installer replaces the standard X.org OpenGL implementation (Mesa) with its own files, potentially causing collisions with the distribution's file and package management. It is best to install the driver via a package built for your distribution, which will typically include the necessary kludges to make things work. See the fglrx page for pointers.
Discussion
If you install the driver and type "fglrxinfo" which shows you are still using the mesa indirect software GL renderer, you likely have some misplaced softlinks. I find this *really* frustrating, and do not know why it occasionally occurs -> I think it has to do with an apt-get upgrade that sometimes replaces these links. Anyway, go to
- cd /usr/X11R6/lib
and list your GL libraries and links
- ls -la *GL*
You should see something like:
- libGL.so -> libGL.so.1.2
and
- libGL.so.1 -> libGL.so.1.2
If you see a link to a mesa library (something like ->libGL.mesa.1.2), then that's your problem! Restore the softlink with a command similar to:
- ln -s <actual file> <softlink name>
e.g.
- ln -s libGL.so.1.2 libGL.so.1
For some reason, this link might "break" later, giving you the software rendering once more. I renamed the mesa library to mesa.bkup, and the system still found it and linked to it despite the name change. If you have to do this a lot, you could write a restoreGL script...
Troubles using software suspend
When the computer resumes from suspend, X only displays a garbled image and the computer is frozen. The problem is acknowledged in ATI's release notes and in knowledge base entry 737-218. Driver version 8.19.10 has "initial support for Suspend and Resume" but is working very nicely for most people (verified on T43p and T42) without vbetool.
If you are using an older version of fglrx, using vbetool to save/restore the video card state before/after suspend worked for some people. If you use Software Suspend 2 (suspend2) scripts, you can simply uncomment EnableVbetool yes in /etc/hibernate/hibernate.conf.
model | distro | kernel | fglrx | PM | success | comments |
---|---|---|---|---|---|---|
T42 | SUSE 9.3 | 2.6.11 | 8.14.13 | swsusp | yes | |
T41p | ??? | 2.6.14 | 8.19.10 | suspend2 2.2-rc9 | yes | needs a small patch |
T42p | Debian | 2.6.10 | Debian packaged | suspend2 | yes | |
T43 | Debian sid | 2.6.14.2 | 8.19.10 | swsusp | yes | works perfectly with 8.19.10 (but not earlier versions!) |
T43 | FC3 | 2.6.14.1 | 8.19.10 | suspend2 2.2-rc9 | yes | needs a small patch |
R50p | ??? | ??? | 8.19.10 | swsusp | yes | |
T43p | Debian sid | 2.6.14 | 8.19.10 | Suspend to RAM | yes | without vbetool or UseDummyXServer, those two break the resume process here |
Troubles with large RAM
Version 8.14.13 (and probably earlier versions) of the driver does not seem to be able to cope with large amounts of RAM: with 512 MB it works, with 1.5 GB it crashes the machine as soon as X is started. The problem is present only if the fglrx kernel module is loaded, but independently of whether (CONFIG_HIGHMEM) is enabled. A workaround is to limit RAM by adding the mem=864m
kernel parameter.
Version 8.16.20 fixes the problem.
Display switching
The switching between internal and external display doesn't work, because the driver blocks messing around with the chipset via ACPI. If you want to use this feature (i.e. during presentations), you should use the VESA server instead (experienced with a R52, Kernel 2.6.11, xorg 6.8.2, fglrx 8.16.20).
Patches
The following patches might be needed for certain versions of fglrx.
- for kernel >= 2.6.13 Missing verify_area bug
V 8.8.25
Beta Testing
The fglrx developers are looking for T Series users to take part in their beta program.
If interested, plese contact mtippett (at) ati.com.
[NOTE: The above email address does not seem to be working any more. I am getting mail delivery notification errors for this email address]