ATI
由于许可协议的原因,ATI 驱动不能整合到 openSUSE 发行版中。这份指南将帮助您正确地安装 ATI 驱动。如果使用 ATI Radeon XPress 200M,或者按本页的指南操作却失败了,请参阅 ATI Radeon Xpress。 |
简单方法
安装专有驱动的简单方法的好处是简单、不需要以重编译内核模块的方式更新内核。请记住标准免费驱动良好地支持许多旧的 ATI 显卡。如果您有这么一张显卡,请考虑继续使用那个驱动。
不幸的是,AMD 不推荐在非 HD 显卡上使用为 10.3 准备的 fglrx 8.41.7 版驱动,现在已知这一版驱动在 AGP 4代和5代的 radeon 上有缺陷 (如 AGP x700,x1300,x1600, 等)。
在使用下面的驱动之前,请尝试使用开源驱动:radeon 运行您的 3D 应用程序。
openSUSE 10.3 和 openSUSE 11.0
您可以使用一键安装 (1-click-install),这将会安装最新版的 fgrlx :
- 打开终端,输入 "sudo aticonfig --initial",配置 X 为使用 ATI 驱动。 This will configure X to use the ATI driver.
- 按住 CTRL+ALT+BACKSPACE (11.0及以后版本快速连按两下,一定要足够快速) 重启 X Window 管理器。请等待3-20秒。或者,您可以直接重启 openSUSE 以达到同样目的。
- 跳过下面的所有步骤开始使用 openSUSE!
参阅:
openSUSE 10.3, 10.2, 10.1
第一步 - 添加软件源
Version: 10.3
|
http://www2.ati.com/suse/10.3 |
Version: 10.2
|
http://www2.ati.com/suse/10.2 |
Version: 10.1
|
http://www2.ati.com/suse/sle10 |
请注意上面的地址不能通过网络浏览器浏览,只能通过支持 YUM / REPO-MO 的包管理器浏览。
第二步 - 安装包
根据您的版本,在 root 终端中运行下面的命令,安装两个包:
Version: 10.3
|
zypper install x11-video-fglrxG01 ati-fglrxG01-kmp-`uname -r | awk -F"-" '{print $NF}'` |
Version: 10.2
|
yast2 --install x11-video-fglrxG01 ati-fglrxG01-kmp-`uname -r | awk -F"-" '{print $NF}'` |
Version: 10.1
|
yast2 --install x11-video-fglrx ati-fglrx-kmp-`uname -r | awk -F"-" '{print $NF}'` |
第三步 - SaX2
在 root 终端中运行下面的命令:
sax2 -r
或者要使其可与 compiz 兼容,在 root 终端中运行下面的命令:(警告,这样会给您的系统带来风险)
sax2 -r 0=fglrx
第四步 - 重启 X
注销您的桌面然后重新登录以重启 X server;或者,冒险地,使用更激烈的方法:Ctrl+Alt+Backspace
第五步 - 检查驱动是否工作
在终端中运行下面的命令:
glxgears
在终端中运行下面的命令测试 3D:
fgl_glxgears
困难方法
困难方法的好处是您可以使用最新版本的驱动。
弃权声明
Thank you to those who have emailed me letting me know they were able to get the drivers working by using this tutorial. --Nick
32位用户
在继续这份指南之前,请确保您已经安装了下列软件包:
- kernel-source
- qt3
- compat
- compat-libstdc++
- libstdc++
- libstdc++-devel
- libgcc
- xorg-x11-libs
- xorg-x11-devel
- Mesa
- Mesa-devel
- fontconfig
- fontconfig-devel
- expat
- freetype
- freetype2
- freetype2-devel
- zlib
- zlib-devel
- gcc
- patch
注意: libdrm 必须是2.3版本 --StephaneZ 18:52, 2007年3月11日(UTC)
用 YaST 检查您的 Kernel-default 和 Kernel-source 包的版本号。两个包的版本号必须一致。如果不一致,请用 YaST 获得最新的内核升级。
64位用户
在继续这份指南之前请确保您已经安装了下列32位软件包,和上面"32位用户"一节中提到的软件包相应的64位版本:
- kernel-source
- compat-32bit
- qt3-32bit
- libstdc++
- libgcc
- xorg-x11-libs-32bit
- xorg-x11-devel-32bit
- Mesa-32bit
- Mesa-devel-32bit
- fontconfig-32bit
- expat-32bit
- freetype2-32bit
- zlib-32bit
- gcc
注意: libdrm 必须是2.3版本 --StephaneZ 18:52, 2007年3月11日(UTC)
可选 - 安装 Xorg 7.2 正式版
如果您使用 openSUSE 10.2 或者您想要升级您的 X 版本到7.2,请按这些步骤操作,然后按常规安装步骤的4.1-5操作。
openSUSE 10.2 自带 Xorg 7.2 RC2
。您可以继续使用 RC2,这不会有什么问题,不过大多数人想要使用最终版本。那么这里有不需要很费力就可以获得最终版本的方法。
注意: ATI 8.35.x 或更低版本驱动不支持 Xorg 7.2。它支持7.1.1和更低版本。
注意: 支持 Xorg 7.2 的 ATI 驱动已经可用,8.41.7 (下载) 适用于 HD 2xxx 显卡,和8.40.4 (下载) 适用于其它显卡(包括 (Mobility) FireGL,在我的笔记本上测试通过)。 --Divinespear 14:55, 2007年10月10日(UTC)
警告: 8.41.7 版驱动在老的显卡上工作时会引起问题。参阅简单方法一节的说明。 --Divinespear 14:59, 2007年10月10日(UTC)
补充说明: 最新版本的驱动(至少是64位驱动)不出现在 ATI Linux 驱动主页(http://ati.amd.com/support/drivers/linux64/linux64-firegl.html) 上。最新版本的驱动可以在 'previous releases' 页面找到: http://ati.amd.com/support/drivers/linux64/radeonprevious-linux64.html。
通过 YaST
在 YaST 中只需添加这个源到安装源。
协议: http (如果不能用请改为 ftp) 服务器: ftp.skynet.be 目录: /pub/software.opensuse.org/xorg72/openSUSE_10.2/
现在打开软件管理(安装软件),选择从源安装,并选中新添加的源。更新所有蓝色的包。或者仅更新与 Xorg 有关的东西。
通过 Zypper
第一步 - 添加源
# zypper service-add http://ftp.skynet.be/pub/software.opensuse.org/xorg72/openSUSE_10.2/ Xorg72 Determining http://ftp.skynet.be/pub/software.opensuse.org/xorg72/openSUSE_10.2/ source type... http://ftp.skynet.be/pub/software.opensuse.org/xorg72/openSUSE_10.2/ is type YUM Added Installation Sources: [x]* Xorg72 (http://ftp.skynet.be/pub/software.opensuse.org/xorg72/openSUSE_10.2/)
第二步 - 刷新源
# zypper refresh ... ... ... Refreshing Xorg72 URI: http://ftp.skynet.be/pub/software.opensuse.org/xorg72/openSUSE_10.2/ DONE ... ... ...
第三步 - 更新系统
注意: 这将会更新所有具有可用更新的系统软件包
# zypper update --type=package --no-confirm --skip-interactive [前往 [1] ,喝杯咖啡再回来吧 ]
注意: 这么做也会容易获得上面提到的 libdrm 2.3。This will also provide easy access to the required libdrm version 2.3 mentioned above. --Ginnsu 01:39, 2007年3月21日(UTC)
推荐 - 为新驱动准备内核
这一步不是必须的,但这么做没有害处。如果您之前已经尝试过安装 ATI 驱动,确保在按4.1-5操作之前先按下列步骤操作过。
在 X 中打开控制台并执行下面的命令:
# su password # cd /usr/src/linux # make mrproper # make cloneconfig # make modules_prepare # make clean
如果您之前尝试过安装驱动,按下面的命令操作,否则,请跳转到4.1-5。
执行命令移除之前的驱动:
# rpm -e $(rpm -qa '*fglrx*')
现在跳转到4.1-5
安装 - 获取并安装 ATI 驱动
在此,您可以使用 www2.ati.com 上的 YUM 源,像这样:
YaST -> 软件 -> 更改安装源 -> 添加
协议: http 服务器名: www2.ati.com 服务器上的目录: suse/10.2 (对于suse11.4,把服务器上的目录改为:suse/11.4)
添加 ATI http 服务器作为附加安装源。 现在使用
YaST -> 软件 -> 安装删除软件
安装 ATI/fglrx 驱动。选择下列软件包:
x11-video-fglrxG01 ati-fglrxG01-kmp-<kernel-flavor>
<kernel-flavor> 取决于您安装的内核。用 "uname -r" 检查已安装的 default/smp/bigsmp 内核。使用 "sax2 -r" 配置 X.Org。
或者
您可以继续阅读下面的说明,手动编译安装驱动包……
第一步 - 获得最新的 ATI 驱动
前往 ATI 的网站 下载最新版的安装程序(installer)
注意: 最新的和所有以前的32位 Linux 驱动都可以在 ATI 网站的这个页面找到,64位的在 这个页面。
第二步 - 生成发行版特定驱动包
您可能想要通过执行命令使用 Sax2 创建默认的 xorg.conf:
# sax2 -a
以根用户身份使用终端运行安装程序(installer)。
# sh ati-driver-installer-8.7-x86.x86_64.run --listpkg
或者使用偷懒的方法
# sh ati*.run --listpkg
这将会列出下列您可以创建驱动的发行版:
SuSE/SLED10-IA32 SuSE/SLES10-IA32 SuSE/SLED10-AMD64 SuSE/SLES10-AMD64 SuSE/SUSE102-IA32 SuSE/SUSE103-IA32 SuSE/SUSE110-IA32 SuSE/SUSE102-AMD64 SuSE/SUSE103-AMD64 SuSE/SUSE110-AMD64
现在将您的发行版本添加到末尾,运行下面的命令:
# sh ati*.run --buildpkg SuSE/SUSE110-IA32
64位的请运行:
# sh ati*.run --buildpkg SuSE/SUSE110-AMD64
ATI 驱动安装程序会在其所在的目录下为您的系统创建一个驱动包。
第三步 - 安装驱动包
如果您是在 runlevel 5 模式下,请在某个(按 Ctrl-Alt-F1 [F1 到 F6]可以进入的)终端中以根用户身份输入下面的命令转到 runlevel 3,或者您可以从 X 的终端中运行 init 3
。
仍然是以根用户身份在终端中输入:
# init 3
这会关闭 X 并带您返回 TTY 1
登陆并切换到含有我们刚刚创建的驱动包的目录。
# cd /您生成 rpm 的目录
安装驱动包
# rpm -Uvh fgl*.rpm
安装结束之后,您需要启动 aticonfig 实用工具
# ldconfig # aticonfig --initial --input=/etc/X11/xorg.conf
注意: 如果您以前尝试过安装 ATI 驱动,rpm 移除命令不总是能够移除上述目录内的安装文件。以防万一您必须手动移除他们或者输入完整的文件名否则您可能遇到冲突文件导致的库错误。--davetharrison 10:44, 2007年4月25日(GMT)
驱动已经安装,现在到第四步。
第四步 - 配置新安装的 ATI 驱动
驱动安装之后需要配置。在您安完驱动之后运行这个命令。
# sax2 -r -m 0=fglrx
这会强制 sax2 使用 fglrx 驱动。设置您的分辨率后保存并退出
注意: 如果您的显卡是 ATI Radeon x1650,那么您可能想要跳过前面的命令,因为 sax2 不会创建正确的设置。您应当在安装驱动之前先运行 sax -a 并且在安装驱动之后运行下面的命令:
# aticonfig --initial input=/etc/x11/xorg.conf
然后您需要自己修改 xorg.conf。
注意:
如果运行 sax2
一片空白,请尝试下面的方法,如果仍然没有用,请按疑难解答一节的步骤操作。
注意:
最新的 ATI 驱动在一些 x1000 显卡(x1400,x1600,x1600 pro)上使用时有问题:
如果载入驱动时 sax 终止,并且您可以在 /var/log/SaX.log 中找到一些这样的内容:
(EE) fglrx(0): PreInitDAL failed (EE) fglrx(0): PreInit failed
请 在终端中禁用 framebuffer。
编辑 /boot/grub/menu.lst
,删除内核(kernel)行中的 vga=xxx
部分。
请参阅 https://bugzilla.novell.com/show_bug.cgi?id=222993
sax2 在 X 中启动它的配置程序。您能在这里做更多的调整,如果您想的话。
禁用混成扩展(Composite Extentions)
启用混成扩展(Composite extensions)在某些情况下会禁用 ATI驱动对 DRI 和3D 加速的支持。
注意: 如果您打算在此工具中使用稍后写到的 Beryl,请跳过此步骤。
解决方法:禁用混成扩展(Composite extension),在 /etc/X11/xorg.conf
文件末尾添加或编辑该文件中下面的几行内容:
Section "Extensions" Option "Composite" "false" EndSection
注意:显然默认是启用,所以删除相关行来禁用混成(Composite)是没有用的。设置项需要显式地设为 false。
xorg.conf 中的其它重要设置
为了得到最好最稳定工作的 fglrx 驱动,请设置 xorg.conf 中 Section "Device" 区的下列选项:
Option "BlockSignalsOnLock" "on" Option "KernelModuleParm" "locked-userpages=0" Option "OpenGLOverlay" "off" Option "UseFastTLS" "2" Option "UseInternalAGPGART" "no" Option "VideoOverlay" "on" # setting this to be "off" may fix tty switch problems? Option "mtrr" "off" Option "no_accel" "no" Option "no_dri" "no" Option "EnablePrivateBackZ" "no" Option "backingstore" "true"
选项 UseFastTLS "2" 是一个重要的参数。fglrx 安装之后最好运行 glxgears 5分钟,然后切换到终端10(Strg-Alt F10)。如果您在终端10上看见关于 fglrx 的和内核 context 0中错误的信息,值"2"会有所帮助。起初它是被调整为"0"的 - 这显然有风险。我的经验来自于一张 Radeon 9600XT 显卡。
注意 如果您有一张 ati radeon x1650 pro 显卡,您可能也想要使用下面的选项:
Option "TexturedVideo" "off"
至少在 openSuse 10.3 上,这个选项修复了一些视频渲染问题和系统卡死问题 - 至少我的系统仍然活着并且 3D 工作正常 :)
第五步 - 重启 / 杀死 fglrx 进程并重启 X
如果您想看看您至今为止的工作是否成功,您不得不确保没有旧的 fglrx 驱动的实例仍在运行。 因此您可以重启,或者,比这更快的,简单地卸载任何当前正在运行的 fglrx 实例:
# lsmod | grep fglrx
弱国此命令有任何输出,您需要 rmmod fglrx 以移除旧的模块。然后再次启动 X11;现存的最新的模块会被载入,xorg.conf 中最新的配置会被读入。
无论什么原因,如果您不能卸载模块,您可以重启
# reboot
在应用两个方法其中一个以后,您应当能使3D起作用了。
测试
为了确认您正运行 ATI 驱动于3D模式而不是 MESA,请在 X 的终端中运行这个命令。
glxinfo
运行结果如下:
quiksilver:~> glxinfo name of display: :0.0 display: :0 screen: 0 direct rendering: Yes server glx vendor string: SGI server glx version string: 1.2 server glx extensions: GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_hyperpipe, GLX_SGIX_swap_barrier, GLX_SGIX_fbconfig, GLX_MESA_copy_sub_buffer client glx vendor string: ATI client glx version string: 1.3 client glx extensions: GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_ARB_get_proc_address, GLX_SGI_video_sync, GLX_ARB_multisample, GLX_ATI_pixel_format_float, GLX_ATI_render_texture GLX extensions: GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_ARB_multisample OpenGL vendor string: ATI Technologies Inc. OpenGL renderer string: RADEON X850 PRO Generic OpenGL version string: 2.0.6286 (8.33.6) OpenGL extensions: GL_ARB_multitexture, GL_EXT_texture_env_add, GL_EXT_compiled_vertex_array, GL_S3_s3tc, GL_ARB_depth_texture, GL_ARB_fragment_program, GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader, GL_ARB_multisample, GL_ARB_occlusion_query, GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_shader_objects, GL_ARB_shading_language_100, GL_ARB_shadow, GL_ARB_shadow_ambient, GL_ARB_texture_border_clamp, GL_ARB_texture_compression, GL_ARB_texture_cube_map, GL_ARB_texture_env_add, GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3, GL_ARB_texture_float, GL_ARB_texture_mirrored_repeat, GL_ARB_texture_rectangle, GL_ARB_transpose_matrix, GL_ARB_vertex_blend, GL_ARB_vertex_buffer_object, GL_ARB_pixel_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ARB_window_pos, GL_ARB_draw_buffers, GL_ATI_draw_buffers, GL_ATI_element_array, GL_ATI_envmap_bumpmap, GL_ATI_fragment_shader, GL_ATI_map_object_buffer, GL_ATI_separate_stencil, GL_ATI_texture_compression_3dc, GL_ATI_texture_env_combine3, GL_ATI_texture_float, GL_ATI_texture_mirror_once, GL_ATI_vertex_array_object, GL_ATI_vertex_attrib_array_object, GL_ATI_vertex_streams, GL_ATIX_texture_env_combine3, GL_ATIX_texture_env_route, GL_ATIX_vertex_shader_output_point_size, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_clip_volume_hint, GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_framebuffer_object, GL_EXT_multi_draw_arrays, GL_EXT_packed_pixels, GL_EXT_point_parameters, GL_EXT_rescale_normal, GL_EXT_secondary_color, GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap, GL_EXT_texgen_reflection, GL_EXT_texture3D, GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp, GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp, GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_vertex_array, GL_EXT_vertex_shader, GL_HP_occlusion_test, GL_NV_blend_square, GL_NV_occlusion_query, GL_NV_texgen_reflection, GL_SGI_color_matrix, GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays glu version: 1.3 glu extensions: GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat ---------------------------------------------------------------------- 0x23 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x24 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x25 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x26 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x27 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 1 0 None 0x28 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 1 0 None 0x29 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 1 0 None 0x2a 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 1 0 None 0x2b 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x2c 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x2d 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x2e 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x2f 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 2 1 None 0x30 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 2 1 None 0x31 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 2 1 None 0x32 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 2 1 None 0x33 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x34 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x35 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x36 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x37 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 4 1 None 0x38 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 4 1 None 0x39 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 4 1 None 0x3a 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 4 1 None 0x3b 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x3c 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x3d 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x3e 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x3f 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 6 1 None 0x40 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 6 1 None 0x41 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 6 1 None 0x42 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 6 1 None 0x43 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x44 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x45 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x46 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x47 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 1 0 None 0x48 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 1 0 None 0x49 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 1 0 None 0x4a 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 1 0 None 0x4b 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x4c 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x4d 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x4e 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x4f 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 2 1 None 0x50 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 2 1 None 0x51 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 2 1 None 0x52 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 2 1 None 0x53 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x54 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x55 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x56 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x57 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 4 1 None 0x58 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 4 1 None 0x59 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 4 1 None 0x5a 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 4 1 None 0x5b 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x5c 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 1 0 None 0x5d 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x5e 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 1 0 None 0x5f 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 6 1 None 0x60 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 6 1 None 0x61 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 6 1 None 0x62 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 6 1 None
注意它是怎么说的:
OpenGL vendor string: ATI Technologies Inc. OpenGL renderer string: RADEON X850 PRO Generic OpenGL version string: 2.0.6286 (8.33.6)
而不是:
OpenGL vendor string: Mesa project: www.mesa3d.org OpenGL renderer string: Mesa GLX Indirect OpenGL version string: 1.2 (1.5 Mesa 6.5.1)
那是您正运行在3D模式的证据。
如果您的 OpenGL vendor string 是: Mesa project... 请按疑难解答中的步骤操作。如果您无论如何都是得到这串信息,下面有为您准备的更多测试。
另一个检查命令是:
fglrxinfo
测试3D请运行:
fgl_glxgears
下面是我测试的结果:
quiksilver:~> fgl_glxgears Using GLX_SGIX_pbuffer 4217 frames in 6.0 seconds = 702.833 FPS 4465 frames in 5.0 seconds = 893.000 FPS 4705 frames in 5.0 seconds = 941.000 FPS 5775 frames in 5.0 seconds = 1155.000 FPS 6706 frames in 5.0 seconds = 1341.200 FPS 6443 frames in 5.0 seconds = 1288.600 FPS 7914 frames in 5.0 seconds = 1582.800 FPS 6078 frames in 5.0 seconds = 1215.600 FPS 6561 frames in 6.0 seconds = 1093.500 FPS
恭喜您现在安装了驱动并正运行于3D模式!如果您没有成功,请按疑难解答中的步骤操作。
使用2007年12月21日发布的8.42.3版 ATI 驱动(至少是这个版本) fgl_glxgears 最初不会工作。原因是事实上安装了两个版本的 libGL.so.1.2,一个来自 fglrx,在 /usr/X11R6/lib,一个来自 Mesa,在 /usr/lib。 这个问题可以按如下方法解决: 切换到 runlevel 3 (init 3),转到 /usr/lib,删除 libGL.so.1.2 (只删除这个!) 并创建一个软链接到 fglrx 的库: ln -s /usr/X11R6/lib/libGL.so.1.2 /usr/lib/libGL.so.1.2. 在那之后,fgl_glxgears 应当能工作了。
疑难解答
如果运行 sax2
卡死或者一片空白,或是您在 OpenGL vendor string 中看到 Mesa,请按这些步骤操作:
确保您已经把 libdrm 升级到2.3版本 --StephaneZ 18:52,2007年3月11日(UTC)
首先查看位于 /var/log/SaX.log 的 sax 日志,看看是什么错误导致了黑屏。(a black screen of death)
同样在/var/log/Xorg.0.log
的 Xorg
日志文件中寻找一下有关 fglrx 模块的错误
>cat /var/log/Xorg.0.log | grep "(EE)"
疑难解答 - 第一步
进入 runlevel 3 并运行:
# cd /usr/src/linux # make mrproper # make cloneconfig # make modules_prepare # make clean
执行下面的命令严格移除以前的驱动:
# rpm -e $(rpm -qa | grep fglrx)
疑难解答 - 第二步
再次重安驱动,运行:
# rpm -Uvh --force fgl*.rpm
疑难解答 - 第三步
使用 ldconfig
和 aticonfig
设置 xorg.conf
,运行:
# ldconfig # aticonfig --initial --input=/etc/X11/xorg.conf
然后请查看 xorg.conf 中的其它重要设置
运行完这两个命令之后,重启并回到 runlevel 3。这您可以通过在启动菜单的命令提示符后面输入 init 3 来实现。
注意: 实际上在启动菜单上直接输入3便能进入 runlevel 3。 --Kane 0:19,2008年12月4日(GMT+8)
疑难解答 - 第四步
现在我们需要确认内核模块在合适的位置:在命令提示符后输入:
# fglrx-kernel-build.sh
接着:
# sax2 -r -m 0=fglrx -b /usr/share/doc/packages/fglrx/sax2-profile
如果上面的命令没有用,请使用这个:
# sax2 -r -m 0=fglrx
注意: 如果 sax2
仍然引起空白屏幕,请把从下面的源里更新 sax2
到最新版本的操作锁定,然后试试再次运行 sax2。
注意: 您可能需要重启以使更改生效。
协议: http 服务器: ftp-linux.cc.gatech.edu 目录: /pub/suse/suse/update/10.2
重新启动机器,希望您回到正轨。请按照本指南的测试一节检查。
如果 sax2 载入屏幕或打开测试屏幕时失败,并且您在 sax.log 文件里看到 "PreInitDAL failed" 这一信息,请查看 PreInitDAL failed 问题
疑难解答 - 更多
更多 ATI 驱动疑难解答步骤来自于已删除的 ATI 驱动页:
--Nick 21:30,2007年4月12日
3D 不工作,即使 fglrx 已经被载入
症状:启动 sax2 中的测试服务时,sax2 崩溃,日志文件中包含 Error: No screens found 这一信息
这个问题是由于开源 Radeon 驱动和 fglrx 不兼容造成的。 运行:
$ lsmod | grep radeon
接着运行:
$ lsmod | grep fglrx
如果两个内核模块都被载入了,您需要首先使用下面的命令移除 radeon 模块:
# modprobe -r radeon
然后,重启您的系统。
对于非特权用户,3D 不工作,但是对于 root,3D 工作
这个问题发生在我在新的 SUSE 10.2 安装上使用 fglrx 8.36.5-1.i386 时,显卡是 ATI Radeon X1300
bash 用户:
LIBGL_DEBUG=verbose glxinfo
寻找像这样的错误:
undefined symbol: __glXFindDRIScreen
从 /usr/lib
移除 libGL.so*
文件,用 /usr/X11R6/lib
的符号链接替代它们。
# ln -s /usr/X11R6/lib/libGL.so libGL.so # ln -s /usr/X11R6/lib/libGL.so.1 libGL.so.1 # ln -s /usr/X11R6/lib/libGL.so.1.2 libGL.so.1.2
您可能不得不也启用 POSIX 共享内存。
[fglrx] API ERROR: could not register entrypoint for...
下载 http://www.ground-impact.com/libGL.so.1.2
替代 /usr/X11R6/lib
中原有的 libGL.so.1.2
以非特权用户运行时 [fgl_glxgears] 报告 "Permission denied"
问题: 以非特权用户运行时产生如下输出:
# fgl_glxgears Using GLX_SGIX_pbuffer FGLTexMgr: open of shared memory object failed (Permission denied) __FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!! FGLTexMgr: open of shared memory object failed (Permission denied) __FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!! FGLTexMgr: open of shared memory object failed (Permission denied) __FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!! FGLTexMgr: open of shared memory object failed (Permission denied) __FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!! FGLTexMgr: open of shared memory object failed (Permission denied) __FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!! FGLTexMgr: open of shared memory object failed (Permission denied) __FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!! FGLTexMgr: open of shared memory object failed (Permission denied) ...
解决方法: 启用 POSIX 共享内存。
尝试将下面的内容添加到 /etc/fstab
:
tmpfs /dev/shm tmpfs defaults 0 0
然后使用 mount:
# mount /dev/shm
注意: This line may appear different then the other lines, but is in the right order.
--StephaneZ 18:33, 2006年12月30日(UTC)
Video Output Driver Xv Fails to play Video
有些导致这一问题的原因是使用 ATI 驱动 或是运行 Xgl
替代 Xorg
解决方法:使用视频输出驱动 g12。
Mplayer: $ mplayer -vo gl2 <file>
GMplayer: $ echo "vo_driver = \"gl2\"" >> .mplayer/gui.conf
Xine: $ echo "video.driver:opengl" >> .xine/config
AIGLX error __driCreateNewScreen
ATI 驱动现在不支持 AIGLX
(除非您有一张老的 ATI pre-r300 显卡),因此请坚持使用 Xorg
或 Xgl
。一旦 ATI 决定开始支持它,本行将被删除。
如果您在 Xorg.0.log
中得到一个像这样的错误
(EE) AIGLX error: dlsym for __driCreateNewScreen_20050727 failed (/usr/lib/dri/fglrx_dri.so: undefined symbol: __driCreateNewScreen_20050727) (EE) AIGLX: reverting to software rendering
解决方法是在 /etc/X11/xorg.conf
中输入
Section "ServerFlags" Option "AIGLX" "off" EndSection
cp: missing destination file operand
当您运行:
# ./ati-driver-installer-8.xx.xx-i386.run –buildpkg SuSE/SUSE100-IA32
您可能得到以此开头的信息:
cp: missing destination file operand after
您需要在命令前添加 LC_ALL=C
来解决这个问题
# LC_ALL=C ./ati-driver-installer-8.xx.xx-i386.run –buildpkg SuSE/SUSE100-IA32
登录后白屏
确认您在 /etc/X11/xorg.conf
中的 BusID
字串写明了您的 PCI:
信息。例如:
Section "Device" Identifier "Device[0]" Driver "fglrx" BusID "PCI:1:0:0" ...
注意:2008年2月1日发布的8.455.2版本修正了这个问题。
2D 慢
如果您不使用 compiz,但是您的系统反应迟钝(比如Firefox载入页面时 X 使 CPU 占用达到最大),请尝试在 /etc/X11/xorg.conf
中添加 Option "XaaNoOffscreenPixmaps"
。
例如:
Section "Device" Identifier "Device[0]" Driver "fglrx" BusID "PCI:1:0:0" Option "XaaNoOffscreenPixmaps" ...
ATI AGP 显卡
如果 fglrx 仍然没有工作,请在 BIOS 中设置 AGP aperture 大小为物理显卡内存大小。
ATI + Beryl + XGL + openSUSE 10.2
我想我很乐意分享怎样让 Beryl 和 ATI 显卡一起工作的方法。
注意: 完成此节之前,请确认您已经完整地按前面的步骤操作过、试验过。
第一步 - 安装 Beryl
在 YaST 中添加这个源到安装源。
协议: http (如果没有用请改为 ftp) 服务器: ftp.skynet.be 目录: /pub/software.opensuse.org/X11:/XGL/openSUSE_10.2/
安装下列快照:
aquamarine-snapshot beryl-core-snapshot beryl-manager-snapshot beryl-plugins-snapshot beryl-settings-snapshot beryl-vidcap-snapshot emerald-snapshot emerald-themes-snapshot
另外您必须忽略 XGL
的依赖问题,移除所有的 compiz
包
第二步 - 配置
使用双显示器的用户需要添加 "Xinerama"
到您的 Xorg 配置以便使 Beryl
工作或修正运行得像蜜糖的系统。
打开位于 /etc/X11/
的 xorg.conf
文件,添加下面的标志:
Section "ServerLayout" Option "Xinerama" "on" EndSection
运行下面的命令(以普通用户身份,而不是 root) 启动 beryl-manager
> beryl-manager
这会载入一个 Ruby 风格的图标到任务管理器。 右击它,在高级 beryl 选项中确认下列内容被选中:
Composite Overlay Window -> "Don't use COW" 或 "use COW" 或 "Automatic" (选择工作得最好的一个) Rendering platform -> Force XGL Binding -> XGL Binding Rendering -> XGL Rendering
现在添加 Beryl
到 KDE
Another composite manager is already running
很可能 KDE 正在运行它自己的混成管理器效果(使用 kompmgr),Beryl 因此不能运行。请打开控制中心,禁用半透明效果以禁用 KDE 窗口效果:
K 菜单 -> 配置桌面(个人设置)。然后前往桌面 -> 窗口行为。
转到最后一个标签,"透明",不选中"使用半透明/阴影"。现在您可以再次开启 beryl-manager
,一切都应当运行良好了。
使 Beryl 自动启动
- 如果使用 KDE:
简单地输入(以普通用户身份,而不是 root):
ln -s /usr/bin/beryl-manager ~/.kde/Autostart/beryl-manager ln -s /usr/bin/beryl ~/.kde/Autostart/beryl
- 如果使用 GNOME:
前往 GNOME 控制中心 -> 会话。转到最后一个标签,"启动程序"。在那里,将下面两个添加到列表中:
beryl-manager beryl
第三步 - 启用 XGL 并重启
前往 YaST -> 系统 -> 系统配置编辑器。
系统配置编辑器 -> Desktop -> Display Manager -> DISPLAYMANAGER_XSERVER.
把 XSERVER 从 Xorg
改为 Xgl
然后单击完成并重启,或者以根用户身份打开终端运行:
# rcxdm restart
或者如果您正在使用 gdm
# rcgdm restart
一旦您回到 X,Beryl 会自动载入,您会看到任务栏上的 Ruby 风格图标。右击它,选择窗口管理器(Window Manager),并单击 Beryl。您会看到表明 Beryl 正在工作的 Beryl 动画。
附加参考
GNOME 下使用 XGL 的用户:
如果 gdm 载入后 X Server 出现问题,并且您收到 "X Server is already running..." 这一消息,您不得不修改 /etc/opt/gnome/gdm/custom.conf 文件: 寻找下面的内容:
[daemon] GdmXserverTimeout=30 #您不得不添加或修改这个值为 30 [servers] 0=inactive #添加或修改 0 的值为 inactive 1=Xgl #添加或修改 1 的值为 Xgl [server-Standard] #像这样修改标准服务设置: name=Xgl command=/usr/bin/Xgl :1 -ac -accel glx=pbuffer -accel xv=pbuffer chooser=false handled=true flexible=true priority=0
--taril
更多安装帮助
如果您觉得这里没有足够的指导;请离开,去浏览 ATI 的帮助列表。
ATI Linux 驱动非官方 Wiki http://wiki.cchtml.com
一个不错的指南(2007-04-20):http://blog.linuxoss.com/2007/04/20/opensuse-102-amdati-drivers-installation/
新的官方 ATI 安装说明(2008年6月27日) https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/linux_cat86-inst.html
在 (open)SUSE 上安装配置 ATI 驱动的官方指南(由 SUSE 维护),请查阅 ATI Installer HOWTO.
安装 rpm 之后,请查看 /usr/share/doc/packages/fglrx/
中的 README.SUSE 文件
回报错误
我们需要您帮助 ATI 更多地改进和稳定驱动
Beryl
备注
如果有人想编辑本页或使本页看起来更好,请尽管按意愿去做。
<keyword>ATI,fglrxinfo,fglrx,beryl,compiz,xgl,beryl-manager,sax2</keyword>