ATI drivers fakes- Impossible to run 3D on ATI Radeon 9550
Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Well, then I load the fglrx module with 'modprobe fglrx' without problems but seems to be not used as I can guess after lsmod. Of course agpgart and amd64_agp modules have been previosly loaded and seems to be used properly. Then I reboot my X and the system always crash when X server try to start.
I have tried different versions of the ATI drivers (8.16, 8,18 , 8.20. I have tried with different kernel versions (2.4.20, 2.4.23, 2.4.32 (seems AGP 8x doesn't work on 2.4 versions), 2.6.9-667 and 2.6.10 with same results. I have tried compiling the agp as module and built-in with same results. It seems fglrx module has a conflict with the kernel agpgart (built-in or module).
I've found this to be highly distro-dependent - consider a switch. I've only ever managed it in Mandriva LE 2005 and in Ubuntu. In the latter it was as simple as doing
apt-get install xorg-drivers-fglrx
to select the fglrx driver. The restricted kernel modules were already installed for me.
I could never get it working in non-paid Mandriva, Debian pure, Slackware, FC etc etc. I've never managed to do it with ATI's own installer/rpm's outside of Mandriva, even when they claim to have successfully installed.
Unless you're firmly attached to FC, then why not hunt around for a distro that you find easier for this? That's the beauty of Linux
Last edited by shamrock_uk; 01-19-2006 at 07:20 AM.
Thanks for the reply. I am not sure if the problem is related with the kernel version, and consequently with the agpgart module, or related with ati driver (fglrx kernel module). Since I have tested under red hat 9.0 with Xfree86 4.3 instead of Xorg and the problem continues being the same: system crash when try to start the X server.
I have read in another post very similar to this, that the problem could be a conflict with the libGL of the Mesa package or could be related to the kernel version. Since I have amd64_agp, I don't know if a I have to apply a patch to the firegl_public.c file before building the fglrx kernel module.
But I cannot undestand why disabling the agpgart module (Linux kernel), loading the fglrx-module and enabling the option 'UseInternalAGPGART', the problem continues being present. Because with this configuration, the 3D rendering is supposed to run using the ati driver agpgart module and not interfering with any other modules of the distro.
Now I am waiting for a official reply from ATI Customer Care section.
Tomorrow I will test 2.6.15 kernel version and will post the results.
Be sure to post the result of fglrxinfo when you post the results. Also,
the output of mount | grep "shm" may be helpful.
These will ensure the driver installed correctly.
However, from what I read, the problem looks like the same problem I have (although it could just be showing the same issues). If the only problem is that the X server doesn't start on boot, it may be a problem with your desktop manager not playing nice with ATI. To check, try booting in runlevel 3 and running the command startx. If your desktop loads properly, with proper 3d support, then this is definately a problem with the desktop manager. (Unfortunately I still have this problem, and don't know how to solve it)
I have disabled my desktop manager so I boot directly into runlevel 3 and execute 'startx' manually with the same result: X server crash and system freeze.
The result of mount | grep "shm" is 'tmpfs on /dev/shm type tmpfs (rw)'.
Then I downloaded 2.6.15-1 kernel, compiled it with the options commented above, compile the fglrx driver and kernel module again, load agpgart, amd64_agp and fglrx, and modified the xorg.conf as shown before. The result: system crash when starting the X.
But what I am really surprised is that the 'fglrxinfo' always give me the same result, like if ATI driver was not installed, or this driver conflicts with the mesa package that comes with the xorg enviroment. This is the fglrxinfo output:
The fact is that if I try to install the ati driver from the rpm package, it gives me a warning about the conflict I have mentioned, although the driver build process goes OK as I can guess in fglrx-install.log:
LD [M] /lib/modules/fglrx/build_mod/firegl_agpgart/fglrx_agp.o
Building modules, stage 2.
*** Warning: "verify_area" [/lib/modules/fglrx/build_mod/firegl_agpgart/fglrx_agp.ko] undefined!
LD [M] /lib/modules/fglrx/build_mod/firegl_agpgart/fglrx_agp.ko
make: Leaving directory `/usr/src/linux-22.214.171.124'
AGPGART build succeeded with return value 0
finished compiling for fglrx_agp
duplicating results into driver repository...
- creating symlink
- recreating module dependency list
- trying a sample load of the kernel modules
I have always used Red Hat or Fedora, but I have no problem to test another distros. The reason why I am angry for is that ATI doesn't attack the problem. They receive the money and give you the back.
I agree with you. I will never by an ATI product again.
Definetely is a conflict with the DRI kernel module. If a disable the option 'Load "dri" of the 'Modules' Section in the xorg.conf file, The X server start (without 3d Rendering). If the module is loaded, the system crash.
Well at least you were able to compile the fglrx_agp module my installation wouldn't even give me that. After having to download a new kernel (126.96.36.199) and then compile and download and install the ati-drivers I just decided to go to Windows again, everything works and its all good. When using the drivers my X just hung it was so pathetic thatjust running fglrxinfo froze X, and shutting down the computer meant pressing the reset button. And trying to use the internal GART module for the drivers was next to impossible because it won't compile for me so screw it, I am playing games on Windows without having to wast time compiling.
ATI 9600 PRO AIW
I had to use kernel 188.8.131.52 because its the only one that supports my P4M800 CE chipsets on AGPGART but I would stay with the stock 2.6.12-15mdk kernel if the fglrx would compile the fglrx_agp but lord knows thats a one in a million thing. I am not going to purchase a new motherboard to use one videocard.
Last edited by webterractive; 01-22-2006 at 06:20 PM.
Finally what is really incredible is that after applying a patch to the 'firegl_public.c' file (patch: line 2624 -> replace #IF 0 by #IF LINUX_VERSION_CODE >= 02060f ), compile and install, the results appears to be the same except that the system is not frozen. So I decided to access to the Xorg.log file through SSH from another computer when the system appears to be frozen, and the AGP was running!, but I cannot see anything cause I have no X server running (black screen). This is my log:
(II) fglrx(0): [drm] DRM interface version 1.0
(II) fglrx(0): [drm] created "fglrx" driver at busid "PCI:1:0:0"
(II) fglrx(0): [drm] added 8192 byte SAREA at 0x22935000
(II) fglrx(0): [drm] mapped SAREA 0x22935000 to 0xf6d11000
(II) fglrx(0): [drm] framebuffer handle = 0xd0000000
(II) fglrx(0): [drm] added 1 reserved context for kernel
(II) fglrx(0): DRIScreenInit done
(II) fglrx(0): Kernel Module Version Information:
(II) fglrx(0): Name: fglrx
(II) fglrx(0): Version: 8.20.8
(II) fglrx(0): Date: Dec 6 2005
(II) fglrx(0): Desc: ATI FireGL DRM kernel module
(II) fglrx(0): Kernel Module version matches driver.
(II) fglrx(0): Kernel Module Build Time Information:
(II) fglrx(0): Build-Kernel UTS_RELEASE: 2.6.9-1.667
(II) fglrx(0): Build-Kernel MODVERSIONS: yes
(II) fglrx(0): Build-Kernel __SMP__: no
(II) fglrx(0): Build-Kernel PAGE_SIZE: 0x1000
(II) fglrx(0): [drm] register handle = 0xfbe00000
(II) fglrx(0): [agp] Mode=0x1f000a1a bridge: 0x1106/0x3188
(II) fglrx(0): [agp] AGP v1/2 disable mask 0x00000000
(II) fglrx(0): [agp] AGP v3 disable mask 0x00000000
(II) fglrx(0): [agp] enabling AGP with mode=0x1f000b1a
(II) fglrx(0): [agp] AGP protocol is enabled for graphics board. (cmd=0x1f000312)
(II) fglrx(0): [agp] graphics chipset has AGP v3.0 (native mode)
(II) fglrx(0): [drm] ringbuffer size = 0x00100000 bytes
(II) fglrx(0): [drm] DRM buffer queue setup: nbufs = 100 bufsize = 65536
(II) fglrx(0): [drm] texture shared area handle = 0x22d81000
(II) fglrx(0): shared FSAAScale=1
(II) fglrx(0): DRI initialization successfull!
(II) fglrx(0): FBADPhys: 0xd0000000 FBMappedSize: 0x00501000
(II) fglrx(0): Splitting WC range: base: 0xd0000000, size: 0x501000
(II) fglrx(0): Splitting WC range: base: 0xd0400000, size: 0x101000
(==) fglrx(0): Write-combining range (0xd0500000,0x1000)
(==) fglrx(0): Write-combining range (0xd0400000,0x101000)
(==) fglrx(0): Write-combining range (0xd0000000,0x501000)
(II) fglrx(0): FBMM initialized for area (0,0)-(1024,1281)
(II) fglrx(0): FBMM auto alloc for area (0,0)-(1024,768) (front color buffer - assumption)
(==) fglrx(0): Backing store disabled
(==) fglrx(0): Silken mouse enabled
(==) fglrx(0): Using hardware cursor (scanline 768)
(II) fglrx(0): Largest offscreen area available: 1024 x 505
(**) Option "dpms"
(**) fglrx(0): DPMS enabled
(II) fglrx(0): Using XFree86 Acceleration Architecture (XAA)
Screen to screen bit blits
Solid filled rectangles
8x8 mono pattern filled rectangles
Setting up tile and stipple cache:
24 128x128 slots
(II) fglrx(0): Acceleration enabled
(II) fglrx(0): X context handle = 0x00000001
(II) fglrx(0): [DRI] installation complete
ok, this means the ATI drivers didn't install at all. It's a very common problem. It's not actually ATI's fault so much as the default drivers. MESA simply refuses to move out of the way for ATI. I've heard some very creative methods for doing so, but the simplest way is to use the --force option with the rpm. You'll want to install from the rpm again, but this time:
If all goes well that should take care of the MESA drivers. again, check with fglrxinfo. (Also make sure you have kernel source, gcc, and POSIX shared memory; these are common issues mentioned on the ATI website)
Having said that, it's not clear whether it's the DRI problem screwing up the ATI drivers, or the ATI drivers screwing up the DRI module.
When MESA refuses to leave like this, the bottom line is this: I hope you enjoy the time you spend at your computer unsure of what's going on. You'll probably get it eventually, but either with somthing ridiculously comlex or something ridiculously simple. Having said that, let's see if we can't take care of the problem.
First, take care of the "basics". i.e. Make sure ATI is finding what it wants.
POSIX shared memory:
To enable POSIX Shared Memory on your system, perform the following as root:
1. Add the following line to /etc/fstab (if it isn't there already): tmpfs /dev/shm tmpfs defaults 0 0
2. Mount shared memory as follows: mount /dev/shm
3. Issue the following command to check that it mounted properly: mount | grep "shm"
If the mount was successful, then the following output (or similar) should appear:
tmpfs on /dev/shm type tmpfs (rw)
AGP modules: (As I understand it, your AGP issues extend beyond this solution, and you've probably already tried, but I'm including it anyways.. This could well be the reason MESA won't leave, but I don't know for sure)
This issue can be worked around as follows:
1. First make sure that agpgart is loading properly.
2. To find out which AGP controller your motherboard uses, issue the following command: lspci | grep AGP
3. To find a list of AGP related kernel modules installed on your machine, issue the following command and look for a module (*.ko file) that suits your AGP Controller: ls /lib/modules/`uname -r`/kernel/drivers/char/agp
4. Use the modprobe command (as root) to load the module. For example: On a motherboard using a VIAŽ AGP Controller, you would load the via-agp.ko using modprobe as follows (notice that the trailing .ko is omitted): modprobe via-agp
Check the modprobe manpage for more information on loading kernel modules.
5. To verify that the AGP module is already loaded, run lsmod as root. With the X server running and the connection established, the usage count of this module must be greater than zero.
--ATI website (again)
Kernel Source and gcc:
I group these two because the fix is generally the same. Make sure you have the appropriate packages installed. And update gcc if necessary
Next, assuming that didn't help any, we're going to try to remove MESA.
Remove any MESA rpms:
Ok, I'm not highly familiar with the rpm command, as most of my package work is done with RpmDrake. Obviously, FC does things different than Mandrake. If you have some GUI to check for any MESA packages, do so. Otherwise, check the man page for rpm to look up the command to find any packages.
Once you've found the appropriate package (if it exists as such) the following command will hopefully remove it. Immediately after, install the ati driver.
rpm -e xorg-x11-Mesa-libGL-6.8.1-12
Obviously changing the package name as appropriate.
If things are going to be remotely friendly, this will have worked to remove MESA (possibly leaving/creating numerous other problems, but taking care of the existance of MESA
Remove MESA Manually:
If you reach this point, then I feel for you. I'm not entirely sure how to do this properly, but I recall reading a post once where someone found and deleted all the MESA related files (probably altering some too). I'm going to search for it now .................
Ok, not the post I read before, but this thread offers a suggestion (for an older ATI driver, but the goal is still to remove MESA...
First of all I have to say thanks all of you for your interest in my post and your help.
In reply to your suggestions:
I have checked that POSIX memory is enabled and mounted as tmpfs /dev/shm... in fstab and checked later with 'mount | grep 'shm''.
I have checked which ids my AGP chipset. As I can get from lspci is:
VT8385 (AGP K8T800). But the module amd64_agp is the only module that load itself on booting. Then I am not sure if this is the module I have to use. I have not beeing able to find if this is the rigth one. Any idea ?
I have also tried to uninstall mesa driver with thr rpm command, but there are a lot of dependencies, so I don't know if this is going to work forcing uninstall.
I am not sure that you are right. As you can see the output from dmesg:
Linux agpgart interface v0.101 (c) Dave Jones
agpgart: Detected AGP bridge 0
agpgart: AGP aperture is 64M @ 0xcc000000
AGP aperture is exactly the same as the BIOS is set. I am going to run the script 'testagpgart.c' and will post the results.