Cant get DRI working with ATI Radeon 7000 and Gentoo Linux
I am trying to get the Direct Rendering Interface working for my ATI Radeon 7000 video card. I have tried everything I can think of and I am still not getting it working. I have followed the complete guide at http://www.gentoo.org/doc/en/dri-howto.xml to no avail. If I 'dmesg | grep drm', I see these errors:
Code:
[drm] Initialized radeon 1.11.0 20020828 on minor 0: ATI Technologies Inc Radeon RV100 QY [Radeon 7000/VE] Code:
drmOpenDevice: node name is /dev/dri/card0 Here is some more information: Xorg version - 6.8.0 ATI Radeon 7000 32MB PCI Gentoo Linux If you need more information, ask me. I will greatly appreciate any help. |
Can you also post the contents of your xorg.conf file? Are you loading the dri module and have you uncommented the DRI section (typically at the bottom of the xorg.conf file)?
ATI cards can be difficult (I've spent more hours than I care to think about wrestling with them) but having the xorg.conf file visible would be a big help -- J.W. |
I am almost 100% positive I have set up everything in my xorg.conf file properly. I have the glx and dri modules loaded, and I tried the ati and radeon drivers for my card. I tried out XFree86 to see if it would work, but nothing, so I am compiling xorg right now. I still have my old config file below
EDIT: I cant get my xorg.conf file posted right now because I dont have the copy+paste functions a GUI gives. Xorg should be done in about an hour or so, I will update this post with my config then. |
I have an Ati Radeon 7000 working under Slackware 10. 0, xorg 6.8.1, kernel 2.6.10-rc2,
so don't panic -- this card does work. Should work under Gentoo also. I've been using it for years now under many kernels. The stock "radeon" driver works under xorg 6.8.x. There is an issue with the Mesa GL I had to work through for 6.8.1. I can help you with that, the kernel settings and the x config file vagueries, but right now, i'm having another beer and playing some quake. Stay calm and keep your seat belt fastened until the captain says it's ok to move about the cabin. doc |
I got xorg re-merged, and edited the config file again to the way the gentoo guide told me too, still the same errors. When I looked at the DRI Wiki, I saw something about if I get "[drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held" in an error message, I didn't configure my kernel properly. I made sure to compile in APG GART support for my AGP chipset and ATI chipsets, though my video card is a PCI card. I don't really know what else to try. Here is my xorg.conf file
Code:
# File generated by xorgconfig. Also, I know the Radeon works under Linux, I have had it with DRI before, this same install even, I just have no idea what happened to it. |
I'd try Option "BusType" "PCI" in the Section "Device" of your config.
...see $man radeon |
The bus type option dosent work, I get the same results. I read the whole radeon man page and anything else I could find on the subject. Nothing. I'm gonna try some stuff with the kernel. Will update if I find anything.
EDIT: I didn't get anything after changing some kernel config options. |
I would try these things:
-- double-check your BIOS settings to be sure the mobo is configured properly for PCI video instead of AGP. -- in the kernel disable any and all framebuffer support so as not to confuse the issue while you debug. --- make sure these kernel configs are in there: Code:
CONFIG_DRM=y Code:
CONFIG_AGP=y Code:
Section "Module" doc |
Well, I'm making some progress now. I went into my kernel, I disabled AGP GART support because my card is PCI, then I enabled the DRM, compilied. I then edited my Modules and Device section to match yours where needed. I rebooted, got back into X fine, but now is where the problem is. I try to run 'glxgears -info -v' and I get all the text showing my GL extensions and I see enough that tells me it is using direct rendering *yes*, but the first frame or two of animation starts, then my system completely hangs. Nothing is responding. I belive it is because the kernel DRM is for an older version of X, but the DRM for my version of X dosent seem to work for me.
|
The problem you are having I struggled with until I finally discovered and fixed it. It's the Mesa 6.1 openGL implementation that comes with xorg 6.8.1. These are the software openGL libs (/usr/lib/libGL*.so, etc) that this card relies on. Newer cards don't use software openGL -- the hardware itself does the rendering, but the Radeon 7000 relies on the Mesa libs. Go here: http://www.mesa3d.org/ and download Mesa 6.2 into your /usr/local/src. Compile and install it following their directions of course and then set LD_LIBRARY_PATH to point into the lib directory you chose to install Mesa 6.2. In my case I installed it into /usr/local/lib/Mesa-6.2. Then, check to make sure that glxgears is pulling in the Mesa libs before you run it:
Code:
ldd `which glxgears` Code:
libGL.so.1 => /usr/local/lib/Mesa-6.2/libGL.so.1 (0xb7dcf000) Your system will not hang if you do this. The next version of xorg should bundle Mesa 6.2 into it which would eliminate the need to do this. 6.1 is buggy and causes hang-ups, as the Mesa site explains. Lemme know how you make out. doc P.S. I am using the same kernel DRM as you: 1.11.0 20020828, that comes with the latest stock 2.6 kernel: 2.6.10-rc2. |
I downloaded Mesa3D 6.2, compiled and installed it. I set LD_LIBRARY_PATH in my .bashrc file, and everything runs fine. The strange thing though is, glxgears runs slower than before, but my OpenGL screensavers run faster, with some pretty bad flicker in between frames. I remember reading that if I have DRM support in my kernel, the DRI will run with bad flicker or not at all. The howto said to use the x11-drm package, so I am going to try that one instead of the one in the kernel.
EDIT: I tried x11-drm, it got rid of the flicker, but seemed a lot buggier, everything ran slower and didn't really look the way it should. I am just going to switch back to the kernel DRM. I geuss I'm fine with the flicker. EDIT: Now it's slow again, still using Mesa 6.2, but it is running slower than it did before. It's slower than it was with software rendering. Someone help :( EDIT: For some reason, it did go back to software rendering. I decided to update my kernel and see if that will solve anything. Anyways, thanks for all your help everyone, especially drphibes! |
Also make sure mtrr (memory type range registers) is configured for your kernel,
as well as the /proc fs. You'll need: Code:
CONFIG_MTRR=y Code:
$ dmesg | grep mtrr Code:
$ cat /proc/mtrr to memory ranges -- essential for video. doc |
I have proc and mtrr enabled in my kernel and they are both working fine. I upgraded my kernel, I don't think it will do much though as it was an update from 2.6.9-gentoo-r1 to 2.6.9-gentoo-r6. I will try anyway though.
|
This is strange, I booted into the new kernel, and I checked for direct rendering, glxinfo reported I ddin't have it. I checked for kernel error messages with DRM, there were none, I checked my Xorg log for errors with the card, there were none. I can't seem to figure out what is going on here. The Xorg log says that it is enabling Direct Rendering too, but glxinfo reports no direct rendering.
|
drphibes,
Maybe I'm a bit out of line here. I am currently running Slackware 9.1, XFree 4.3, with ATI Radeon 7500. I haven't updated the machine for a year and half and recently decided to move to Slackware 10. As I am making my decision, I remember I had hell of a problem with enabling 3D accel. I just can't figure out what I did that I got everything working smoothly. I know Slackware 10 uses Xorg 6.7 with 2.4.26 kernel so not sure if I going to encounter problems. Now here's the thing, I know DRM, DRI, and agpgart are enabled as module in the kernel and here's the following information: $ glxinfo Code:
name of display: :0.0 $ glxgears Code:
5165 frames in 5.0 seconds = 1033.000 FPS $ dmesg Code:
Linux agpgart interface v0.99 (c) Jeff Hartmann Code:
reg00: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1 Now, I was going to play around and get the stable release of Mesa before my migration to Slackware 10, so I compiled Mesa 6.2.1 and, as documented, set the library path to see how it goes... But unfortunately it got slower and for some reason direct rendering got disabled! glxinfo with the new Mesa Code:
name of display: :0.0 Code:
1121 frames in 5.0 seconds = 224.200 FPS |
All times are GMT -5. The time now is 03:52 PM. |