SDB:Radeon

跳转至: 导航, 搜索


Radeon 驱动是针对几乎全部 ATI Radeon 显卡的开源驱动。它在许多方面都比私有 fglrx 驱动要好,虽然 3D 性能差了些。对最新芯片的支持也不是太好。在您继续阅读本文前,请参考HCL:AMD 显卡页面来选择最适合您图形硬件的驱动。

我需要安装 radeon 驱动吗?

  • 若您在有 Radeon 新品啊的计算机上安装了 openSUSE 11.4 或更高版本,radeon 驱动应该已经安装并且在运行中了。您可以在终端中输入:
lsmod | grep radeon

来查看。 若结果是 "radeon" 则该驱动已经安装了。若您已经跑起来了图形界面会话,您可以直接跳去看SDB:Radeon#测试驱动了。

  • 若您已经安装或者曾经尝试安装过私有的 AMD fglrx 驱动,您需要完全移除该驱动,才能回退到 radeon 模块,之后才能继续跟随本文。请继续以下指南。

安装 radeon 驱动

只有您想要从 fglrx(无论成功失败)回退到 radeon 驱动时才需要使用此流程,因为 openSUSE 在大多数情况下会自己安装、配置和使用 radeon 驱动。

准备工作

  • 若您当前的设置是可用的,那么请备份您的 xorg.conf(若有)并留意您正使用的驱动,这样在需要时您可以撤销到能用的配置上来。
  • 在 runlevel 3 下工作,这样您才能够安全地编辑您图形界面的配置:
    • 按下 Ctrl-Alt-F1 切换到 tty1。这将把您带到全屏的文本登录界面。
    • 以普通用户登入
    • 输入 "su" (没有引号 - 然后输入 root 密码)来切换到管理员/root 账户。
    • 输入:
      $ init 3


若有 gflrx 私有驱动则移除它

  • 运行 AMD 提供的卸载脚本。
  • 要是您使用的是一键安装或使用 YaST 或 zypper 从软件源安装的话,可以使用 zypper 卸载掉全部带有 "fglrx" 的软件包。
    • 搜索已安装的 fglrx 软件包
zypper se fglrx
    • 移除全部匹配搜索字符串的软件包:
zypper rm <找到的软件包名>
  • 然后运行以下命令来最后确认一次是否真的移除了全部私有驱动软件包:
rpm -qa | grep fglrx

检查 radeon 是否仍被屏蔽

fglrx 为确保 radeon 不与其冲突而做的准备工作里有一件是屏蔽 radeon 模块以使内核在引导时不会加载它。这个操作的结果是需要被移除的:

rm /etc/modprobe.d/fglrx.conf

或:

rm /etc/modprobe.d/50-fglrx.conf


究竟移除哪个取决于您的 openSUSE 版本。

X11 配置

安装 fglrx 时,aticonfig 创建了 /etc/X11/xorg.conf,其中包含了运行 fglrx 所需的配置细节。为了确保您的系统完全清除了 fglrx,若该文件仍存在的话,您需要将其重命名为例如 "xorg.conf.bak" 来备份该文件。

激活 radeon 驱动/内核模块

加载 radeon 内核模块:

modprobe radeon

并重启您的计算机:

reboot

init 6



测试驱动

要想知道该驱动是否工作正常,可在终端窗口输入以下命令:

glxgears

若一切正常,将会出现一个内有彩色旋转齿轮的窗口,并且每隔五秒钟终端窗口就会显示一次帧率。这样就是安装好了。

出现问题怎么办?

若您试图运行 glxgears 或任何其它基于 OpenGL 的程序并且看到了像这样的错误消息:

X Error of failed request:  BadRequest (invalid request code or no such operation)
  Major opcode of failed request:  135 (GLX)
  Minor opcode of failed request:  19 (X_GLXQueryServerString)
  Serial number of failed request:  17
  Current serial number in output stream:  17

那么多数是 OpenGL 实现或直接渲染出现了问题。请检查以下方面:

  • 确保安装了 "Mesa" 软件包。您可以使用 YaST 查看。
    • 若您没有 Mesa,请安装它,重启 X.org 服务器,并再次运行 glxgears。
  • 在终端中,运行
    glxinfo
并查找/grep 以下信息:
    • direct rendering: 应该是 "Yes"。如果它是 "No" 请检查您的 Xorg 日志获取更多信息。
    • OpenGL version string: 这应该是像 "1.5 Mesa 7.6.1"。若显示像 "fglrx" 或 "ATI" 那么请确保您完全卸载了私有驱动。
  • 看看您有没有 xorg.conf
    • 如果有的话,请考虑移除 /etc/X11/xorg.conf
      • 因为多数情况下 radeon 模块会自动配置您的硬件而无需配置文件
      • 可以尝试把 xorg.conf 重命名为例如 xorg.conf.bak 并重启 X 服务器。若这依然失败,请恢复 xorg.conf.bak 并重启
    • 若您需要保留 xorg.conf:
      • 请确保在 Device 部分下,"Driver" 设为了 "radeon"
      • 请确保存在以下部分。若不存在,请在最下方添加一段:
Section "DRI"
   Group      "video"
   Mode       0660
EndSection
  • 查看您的 xorg 日志 /var/log/Xorg.0.log 或您在那儿能找到的其它任何 xorg 相关日志。这些日志通常提供了很多有用的信息。

若遇到 kernel panic

若在卸载了 fglrx 后重启时您遇到了涉及 radeon 缺失 (错误消息类似 "unable to handle null pointer dereference") 的 kernel panic,这可能是由于 Plymouth 需要 KMS 驱动造成的,这可能被 fglrx 的安装器设没了。要把 radeon 弄会 initrd 以让 Plymouth 运行,请以 root 身份打开 /etc/sysconfig/kernel 并编辑以下行:

NO_KMS_IN_INITRD="no"

再重新启用 KMS 后您需要重新构建 ramdisk,因此请以 root 身份运行:

mkinitrd

手动配置驱动

现如今在大多数情况下全部的 AMD 显卡都是自动配置的。在这些情况下没有需要来进一步配置。然而,当您遇到了您的硬件配置得不好的情况时,您可以尝试手动配置您的显卡。 在本文中手动配置主要发生在 /etc/X11/xorg.conf 中您显卡的 "Device" 部分。 在您继续前,请考虑到这不是零风险的:有些选项可能造成您的 Xorg 服务器崩溃。在您继续往下走前,建议阅读这篇论坛文章

创建一个 xorg.conf

若您没有任何 xorg.conf(openSUSE 11.2 以上版本可能是这样),那么您应该创建一个。

  • 重启您的计算机到 runlevel 3,像前面描述过的那样,这次以普通用户登入
  • 再次输入 "su" (没有引号 - 然后输入 root 密码)来切换到管理员/root 账户。
  • 然后输入以下命令:
    Xorg -configure
  • 这将会在 /root 下创建一个 xorg.conf 。将此文件复制到正确的位置 /etc/X11/xorg.conf
  • 正常重启到图形界面
  • 这时,您原始的 Device 部分应该长这样:
Section "Device"
  BoardName    "R420 JI"
  Driver       "radeon"
  Identifier   "Device[0]"
  VendorName   "ATI"
EndSection

也可以添加一些其它选项。以下是您可能想要折腾或者添加的一些选项。完整选项列表在 radeon 手册页上。

注意: 调整这些设置时请小心从事。它们不是全部都被所有硬件支持的。有些可能会让您的 Xorg 服务器崩溃,因此在做出修改前请备份您的 xorg.conf。可以检查您的硬件是否支持下面提到的选项

BusType

Option       "BusType" "AGP"

该选项的值可以是 "PCI" "AGP" 或 "PCIE"。这应该设为您显卡的总线类型。默认,驱动会尝试自动检测您的总线,但有些时候它也会出错。我自身的经历证明,显式地设置总线类型会显著地提升性能。若设为 "AGP" 或 "PCIE" 导致了问题,您可以将其设为 "PCI" 但您的性能将会有所下降。

AGPMode

Option      "AGPMode" "8"

可接受的值是 1","2","4" 和 "8"。若您有一块 AGP 显卡,这应该设成您显卡支持的最高值,除非这么设置导致系统不稳定。

注意在 xorg.conf 中设置 AGPMode (或在 /etc/X11/xorg.conf.d/ 中) 现在是不支持的了(2013 年 3 月),您需要编辑 /etc/modprobe.d/99-local.conf 并添加
options radeon agpmode等号4
可接受的值有 "1", "2", "4" 和 "8"。注意这取决于您显卡的能力。请记得在改完此文件后运行 mkinitrd 来保存修改。

AccelMethod

Option       "AccelMethod" "XAA"

可以设为 "XAA" 或 "EXA"。XAA 是一种老一些但更加稳定的方法。EXA 是较新的、应该能带来更佳性能的方法。您可以两种都试试,看看那种最适合您。

EnablePageFlip

Option       "EnablePageFlip" "on"

这能够加速 3D 性能,但它默认是关闭的,因为它不能总是工作正常。若您的显卡是 R/RV/RS4XX 或更老的型号,您应该打开它,除非证明打开它给您带来了麻烦。

ColorTiling

Option       "ColorTiling" "on"

开启此选项将提升 3D 性能。默认它应该就是开的。

AccelDFS

Option       "AccelDFS" "on"

在 AGP 显卡上这默认是关闭的,但在其它显卡上默认是打开的。打开它会提升性能,但在某些 AGP 显卡上它会造成问题。


参考

相关文章

外部链接