当前位置:  首页  >  服务器技术  >  Linux/unix  >  Linux入门

在Linux下打开DRI(从敏老板的咸菜缸转载)

在Linux下打开DRI(从敏老板的咸菜缸转载)--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
作者:敏老板的咸菜缸

这个帖子是我今天安装Compiz(一个类似Bery的3D桌面环境,但以后可能会被Bery取代)所经历的过程。这其中描述的内容目前只针对我自己的工作环境:X24 + Fedora6 + gnome

Compiz是被包括在Fedora6中的,但原始的安装盘自带的Compiz版本太低,需要更新一下,我习惯先删再安装,以root身份运行:
yum remove compiz

yum install -y compiz

记得这个阶段要联网的。

在Gnome中开启Compiz是这样操作的:
系统->首选项->桌面效果
点击“开启桌面效果”,但报错,说无法运行。

由于Compiz是基于XGL的,我在命令行下运行:

glxgears

正常,齿轮能动,但速度非常慢。
由于linux上的OpenGL是:Mesa,而它很依赖于底层的DirectRenderInterface(DRI)和显卡驱动。

运行命令:
lsmod

能看到
DRM:Radeon

说明显卡驱动正常,那么就是DRI有问题了。
查看
/var/log/Xorg.0.log

发现如下信息:

。。。。
(==) RADEON(0): Using 24 bit depth buffer
(EE) RADEON(0): Static buffer allocation failed. Disabling DRI.
(EE) RADEON(0): At least 9216 kB of video memory needed at this resolution and depth.

。。。。
(WW) RADEON(0): Direct rendering disabled
。。。。

第3行明显说明是由于X24显卡的自带内存(8M)不够导致的,而对显存的需求是由桌面设置的分辨率和色彩数决定的,我目前的是:
1024x768 24bit色
我把24bit色换成16bit,重启XWindow,问题解决。
(这里要提示一下,记得以root身份手工在/etc/X11/xorg.conf文件尾部添加:
Section "DRI"
Group "video"
Mode 0660
EndSection

以确保所有用户都能使用DRI.

由于DRI正常了,这是测试
glxgears
快了许多,再开启
系统->首选项->桌面效果
一切正常了,可以以3D的方式转动桌面,拖拽窗口的效果也生动多了。

真是太高兴了,刚才终于知道问题出在哪里了。
自己作了以下的尝试:
1.[root@localhost /]# ln -s /usr/lib/dri/r300_dri.so /usr/lib/xorg/modules/dri/r300_dri.so

按照上面的说法有可能是我的dri没配置好,但我用上述命令连接的时候,提示文件已经存在,所以应该不是这问题。还有就是我查看了一下/var/log下面的相关文件,看了一下出错信息,dri部分是成功加载了的,不存在说路径不对而加载不了。

2.[root@localhost luyaotang]# LIBGL_DEBUG=verbose glxinfo
name of display: :0.0
libGL: XF86DRIGetClientDriverName: 5.2.0 r300 (screen 0)
libGL: OpenDriver: trying /usr/lib/dri/r300_dri.so
libGL error: dlopen /usr/lib/dri/r300_dri.so failed (/usr/lib/dri/r300_dri.so: undefined symbol: _glapi_get_dispatch)
libGL error: unable to find driver: r300_dri.so
libGL: XF86DRIGetClientDriverName: 5.2.0 r300 (screen 0)
libGL: OpenDriver: trying /usr/lib/dri/r300_dri.so
libGL error: dlopen /usr/lib/dri/r300_dri.so failed (/usr/lib/dri/r300_dri.so: undefined symbol: _glapi_get_dispatch)
libGL error: unable to find driver: r300_dri.so
display: :0 screen: 0
direct rendering: No
server glx vendor string: SGI
server glx version string: 1.2.

那些库文件的加载还是有问题,但不是路径不存在问题,百度了一下,没发现,反而是GOOGLE有发现,其实用Linux的话,Google是很必要的。说fglrx的配置,或者说驱动本身跟我们的radeon有冲突,要卸载。

3.[root@localhost luyaotang]# yum remove kmod-fglrx xorg-x11-drv-fglrx
做了这步之后,发现问题依旧。

4.抱着试试看的态度,在/etc/profile.d/里面把跟fglrx有关的配置移出。
[root@localhost luyaotang]# mv /etc/profile.d/ati-fglrx.sh /btdown/

5.再试了一下,居然好了。
[luyaotang@localhost ~]$ glxinfo |grep direct
libGL warning: 3D driver claims to not support visual 0x4b
direct rendering: Yes
3D的加速已经成功的开启了。

6.测试一下加速分数,不测试不知道,一测笑一笑,居然有3K多,以前没配置好才1K多:
[luyaotang@localhost ~]$ glxgears
libGL warning: 3D driver claims to not support visual 0x4b
15743 frames in 5.0 seconds = 3148.550 FPS
16727 frames in 5.0 seconds = 3345.365 FPS
16730 frames in 5.0 seconds = 3345.780 FPS
16725 frames in 5.0 seconds = 3344.950 FPS
16719 frames in 5.0 seconds = 3343.772 FPS
16729 frames in 5.0 seconds = 3345.648 FPS
16730 frames in 5.0 seconds = 3345.866 FPS
16711 frames in 5.0 seconds = 3342.129 FPS
16729 frames in 5.0 seconds = 3345.748 FPS
/==============================/

/etc/X11/xorg.conf配置文件
Xorg configuration created by system-config-display

Section "ServerLayout"
Identifier "single head configuration"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "Module"
Load "dri"
Load "glx"
Load "drm"
Load "type1"
Load "extmod"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection

Section "Monitor"
Identifier "Monitor0"
HorizSync 30.0 - 80.1
VertRefresh 80.5 - 90.5
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
EndSection

Section "Device"
Identifier "Videocard0"
Driver "radeon"
Option "AGPMode" "8"
Option "EnablePageFlip" "on"
Option "XAANoOffscreenPixmaps" "true"
Option "XaaNoScanlineImageWriteRect"
Option "XaaNoScanlineCPUToScreenColorExpandFill"
BusID "PCI:1:0:0"
Screen 0
Option "DesktopSetup" "single"
Option "VideoOverlay" "on"
Option "OpenGLOverlay" "off"
Option "AddARGBGLXVisuals" "True"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Videocard0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768" "1024x768" "800x600" "800x600" "640x480" "640x480"
EndSubSection
Monitor "Monitor0"
EndSection

Section "Extensions"
Option "Composite" "Enable"
EndSection

Section "DRI"
Mode 0666
EndSection


安装无误后修改xorg.conf:
Section "Module"
# Load "GLcore"
Load "bitmap"
Load "ddc"
Load "dbe"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "type1"
Load "vbe"
EndSection
----------------------------
Section "Device"
Identifier "Intel Corporation Intel Default Card"
Driver "i810"
Option "XAANoOffscreenPixmaps"
BusID "PCI:0:2:0"
EndSection
-------------------------
Section "ServerLayout"
Option "AIGLX" "true"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "Synaptics Touchpad"
EndSection

再修改/etc/gdm/gdm.conf-custom:
[servers]
0=aiglx

[server-aiglx]
name=aiglx server
command=/usr/bin/Xorg-air :0
flexible=true

退出,重新启动gdm
sudo /etc/init.d/gdm restart

OK!不出意外的话你能看见和XGL一样炫的3D桌面了!
吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有