Difference between revisions of "AMD Catalyst (简体中文)"

From ArchWiki
Jump to navigation Jump to search
(Mark page as deplicated.)
 
(15 intermediate revisions by 4 users not shown)
Line 7: Line 7:
 
[[ja:AMD Catalyst]]
 
[[ja:AMD Catalyst]]
 
[[ru:AMD Catalyst]]
 
[[ru:AMD Catalyst]]
{{TranslationStatus (简体中文)|AMD_Catalyst|2015-11-05|406475}}
+
{{TranslationStatus (简体中文)|AMD_Catalyst|2016-05-17|434789}}
 
{{Related articles start (简体中文)}}
 
{{Related articles start (简体中文)}}
 
{{Related|ATI (简体中文)}}
 
{{Related|ATI (简体中文)}}
 
{{Related|Xorg (简体中文)}}
 
{{Related|Xorg (简体中文)}}
 
{{Related articles end}}
 
{{Related articles end}}
{{警告|1=
 
Catalyst '''不能''' 支持 4.2 及更高版本的 Linux 内核。Catayst 15.9 官方支持的最高 Linux 内核版本为 3.19。我们通过社区补丁使其支持至 Linux 内核 4.1 版。
 
  
使用不被支持的内核版本或 [[#Xorg repositories|Xorg]] 版本可能导致黑屏或其他异常。
+
AMD 的显卡驱动有两种:一是官方私有驱动 ({{AUR|catalyst}}),二是开源驱动(较旧的显卡参见 [[ATI]],较新的显卡参见 [[AMDGPU]])。本文主要介绍私有驱动。
  
请配置 [[boot loader|引导管理器]] 使用适当版本的内核(例如 {{Pkg|linux-lts}};同时别忘了安装 {{Pkg|linux-lts-headers}})。{{Pkg|linux}} package is not supported at the moment as it serves Linux kernel in version 4.2.x.
+
{{Warning|官方仓库不再提供 Catalyst。 AMD 已经不再更新这个软件包,而且此软件包与最新的 Xorg 不兼容,需要先安装老的 Xorg 才能使用。}}  
Bug 报告请提交至:[http://ati.cchtml.com/show_bug.cgi?id=1189]
 
}}
 
 
 
AMD的显卡驱动有两种:一是官方私有驱动(catalyst,译为催化剂),二是开源驱动(xf86-video-ati).本文主要介绍私有驱动。
 
 
 
AMD曾经将“catalyst”驱动命名为“fglrx” ('''F'''ire'''GL''' and '''R'''adeon '''X'''). 现在虽然名为“catalyst”,但内核模块名称依然为“fglrx.ko”. 因此,下文中任何提及fglrx 都是指“内核模块”,而不是指软件包.
 
  
'''官方仓库不再提供Catalyst。''' Catalyst [https://www.archlinux.org/news/ati-catalyst-support-dropped/ 曾被移出Arch官方支持],原因是对质量与开发速度的不满。该项目于2013年4月被再次丢弃,截止现在还没有进一步的消息.
+
AMD 的 Linux 驱动软件包 ''catalyst'' 驱动曾被命名为 ''fglrx'' ('''F'''ire'''GL''' and '''R'''adeon '''X''')。现在虽然改变了软件包名称,但内核模块文件名依然为以前的 ''fglrx.ko''。因此,下文中任何提及 fglrx 都是指''内核模块'',而'''不是指软件包'''.
  
与开源驱动相比, Catalyst 在2D,3D渲染和电源管理上更胜一筹,但缺乏高效的多显支持.支持设备为 [[wikipedia:Radeon|ATI/AMD Radeon]]显卡,芯片组 R600 及以上(Radeon HD 2xxx或者更新). ''model''名称  (如X1900, HD4850) 与 ''chip''名称  (分别是R580, RV770)间的对照请参见Xorg [http://www.x.org/wiki/RadeonFeature/#index5h2 decoder ring]或者[[wikipedia:Comparison of AMD graphics processing units|这个表格]].
+
与开源驱动相比,Catalyst 在 2D 上表现比较差,在 3D 上与开源驱动差不多,但缺乏高效的多显支持。Catalyst 支持芯片组 R600 及以上(Radeon HD 2xxx 或者更新)的 [[wikipedia:Radeon|ATI/AMD Radeon]] 显卡。''model'' 名称(如 X1900,HD4850)与 ''chip'' 名称(分别是R580,RV770)间的对照请参见 Xorg [http://www.x.org/wiki/RadeonFeature/#index5h2 decoder ring] 或者[[wikipedia:Comparison of AMD graphics processing units|这个表格]]
  
 
== 安装 ==
 
== 安装 ==
  
共有三种途径安装Catalyst。第一种是用[https://aur.archlinux.org/account/Vi0l0/ Vi0L0](Arch非官方Catalyst维护人员)维护的软件库.此库包涵了所有可用的软件包.第二种方式就是通过AUR,Vi0L0提供的PKGBUILDs跟他用于构建他仓库的PKGBUILDs完全一样。最后你还可以直接通过AMD官方下载Catalyst.
+
共有三种途径安装 Catalyst。第一种是用 [https://aur.archlinux.org/account/Vi0l0/ Vi0L0](Arch非官方Catalyst维护人员)维护的软件库。此库包涵了所有可用的软件包。第二种方式就是通过AUR,Vi0L0 提供的 PKGBUILD 跟他用于构建他仓库的 PKGBUILD 完全一样。最后,你还可以直接通过 AMD 官方下载 Catalyst。
  
自Catalyst 12.4, AMD已将针对Radeon HD 5xxx 和 Radeon HD 2xxx, 3xxx and 4xxx 显卡驱动分开开发,因此在你选择何种安装方式之前,应查看你的显卡型号。Radeon HD 2xxx, 3xxx and 4xxx 显卡用 '''legacy'''驱动,Radeon HD 5xxx(以及更新的)用普通Catalyst。但无论你需要哪种驱动,都应安装Catalyst utilities。
+
自 Catalyst 12.4,AMD 已将针对 Radeon HD 5xxx 和 Radeon HD 2xxx,3xxx 与 4xxx 显卡驱动分开开发,因此在你选择何种安装方式之前,应查看你的显卡型号。Radeon HD 2xxx,3xxx 和 4xxx 显卡用 '''legacy'''驱动,Radeon HD 5xxx(以及更新的)用普通 Catalyst。但无论你需要哪种驱动,都应安装 Catalyst utilities。
  
{{注意|你会发现,每种安装方式都会进行的一个相同的操作,无论你采用哪种安装方式,你都应了解一些通用的安装说明。}}
+
{{注意|你会发现,每种安装方式都会进行的一些相同的操作,无论你采用哪种安装方式,你都应了解一些通用的安装说明。}}
  
=== 安装Catalyst ===
+
=== 安装 Catalyst ===
  
 
==== 从非官方软件库 ====
 
==== 从非官方软件库 ====
  
如果你不喜欢通过[[AUR]]来安装,则使用此方法。此软件库由我们的[[User:Vi0L0|Vi0l0]]维护。所有的包都经过签名,所以安全方面无需担心。下文提及的很多其他与AMD显卡有关的包也是由Vi0L0维护。
+
如果你不喜欢通过 [[AUR]] 来安装,则使用此方法。此软件库由我们的非官方 Catalyst 维护者 [[User:Vi0L0|Vi0l0]] 维护。所有的包都经过签名,所以安全方面无需担心。下文提及的很多其他与 AMD 显卡有关的包也是由 Vi0L0 维护。
 +
 
 +
Vi0L0 有三个不同的 Catalyst 软件库:
 +
* [[Unofficial user repositories#catalyst|catalyst]]:Radeon HD 5xxx 及更新的显卡使用的普通 Catalyst 驱动。包含了最新的 (稳定版或者 beta 版) Catalyst。
 +
* ''catalyst-stable'':Radeon HD 5xxx 及更新的显卡使用的普通 Catalyst 驱动。包含了最新的稳定版 Catalyst。
 +
* [[Unofficial user repositories#catalyst-hd234k|catalyst-hd234k]]:Radeon HD 2xxx,3xxx 与 4xxx 显卡使用的 legacy Catalyst 驱动。
  
Vi0L0有三个不同的Catalyst软件库:
+
要启用上述软件库的话,参见 [[Unofficial user repositories (简体中文)]] 中所述方法。记得在 {{ic|pacman.conf}} 中的'''其他软件库之前'''添加相应软件库。
* [[Unofficial user repositories#catalyst|catalyst]]:Radeon HD 5xxx及更新的显卡使用的普通Catalyst驱动。包含了最新的 (稳定版或者beta版) Catalyst.
 
* ''catalyst-stable'':Radeon HD 5xxx及更新的显卡使用的普通Catalyst驱动。包含了最新的稳定版 Catalyst.
 
* [[Unofficial user repositories#catalyst-hd234k|catalyst-hd234k]]:Radeon HD 2xxx, 3xxx and 4xxx显卡使用的legacy Catalyst驱动.
 
  
要启用上述软件库的话,参见[[Unofficial user repositories]]中所述方法. 记得在{{ic|pacman.conf}}中的'''其他软件库之前'''添加相应软件库.
+
{{注意|''catalyst'' 和 ''catalyst-stable'' 软件库的 URL 相同。若要启用 ''catalyst-stable'' ,步骤与启用 ''catalyst'' 相同,并在 {{ic|pacman.conf}} 中将 {{ic|[catalyst]}} 替换成 {{ic|[catalyst-stable]}}。如果你需要某个旧版本,这儿也有并且 URL 也相同(比如 ''catalyst-stable-13.4'')。}}
{{注意|''catalyst''和''catalyst-stable''软件库的URL相同.若要启用''catalyst-stable'',步骤与启用''catalyst''相同,并在{{ic|pacman.conf}}中将{{ic|[catalyst]}}替换成{{ic|[catalyst-stable]}}.如果你需要某个旧版本,这儿也有并且URL也相同,比如''catalyst-stable-13.4''.}}
 
{{警告|
 
* legacy Catalyst不支持Xorg Server 1.17. 要使用此驱动的话,参见 [[#Xorg repositories]] 来回滚到 Xorg Server 1.16.
 
}}
 
  
{{小贴士|有时 catalyst.wirephire.com 因为超出带宽上限而不能提供下载(曾发生过这个问题),或者你到这个服务器的连接很慢.这时,你可以尝试另外的镜像服务器: [http://mirror.rts-informatique.fr/archlinux-catalyst/] (rtsinformatique 提供,法国) 和 [http://mirror.hactar.bz/Vi0L0/] (goll 提供,德国). 不过,这些服务器不保证随时可用.需要的话就反注释掉,多准备一个替代品以防镜像临时不可用也是好习惯.
+
{{小贴士|有时 catalyst.wirephire.com 因为超出带宽上限而不能提供下载(曾发生过这个问题),或者你到这个服务器的连接很慢,这时,你可以尝试另外的镜像服务器:[http://mirror.hactar.bz/Vi0L0/](goll 提供,德国)。不过。这些服务器也不保证随时可用。
 
Repository mirroring can be easily achieved using {{ic|rsync://mirror.rts-informatique.fr::archlinux-catalyst}}.
 
 
}}
 
}}
  
完成后更新pacman数据库并[[pacman|安装]]这些软件包(更多信息参见[[#工具]]):
+
完成后更新 pacman 数据库并[[安装]]这些软件包(更多信息参见[[#工具]]):
  
 
* ''catalyst-hook''
 
* ''catalyst-hook''
Line 69: Line 57:
 
* ''lib32-opencl-catalyst'' - 可选,64-bit系统上32-bit的OpenCL支持
 
* ''lib32-opencl-catalyst'' - 可选,64-bit系统上32-bit的OpenCL支持
  
如果你是一台Intel/AMD双显卡笔记本,参考下这个:
+
{{注意|如果 pacman 询问是否移除 '''libgl''',尽管回答“是”。}}
 
 
* ''catalyst-hook''
 
* ''catalyst-utils-pxp''
 
* ''lib32-catalyst-utils-pxp'' - 可选,64-bit系统上32-bit的OpenGL支持
 
 
 
{{注意|如果pacman询问是否移除'''libgl''',尽管回答"是".}}
 
  
{{警告|软件包catalyst已从Vi0L0的仓库移除,catalyst-hook取而代之.}}
+
{{警告|软件包 catalyst 已从 Vi0L0 的仓库移除,catalyst-hook 取而代之。}}
  
==== 通过AUR安装 ====
+
==== 通过 AUR 安装 ====
  
还可以通过[[AUR]]安装。如果你需为你的电脑进行定制安装,则用此方法。此方法极为繁琐,因为它需要的工作量最大,而且每次内核更新后你得手动更新Catalyst。
+
还可以通过 [[AUR]] 安装。如果你需为你的电脑进行定制安装,则用此方法。此方法极为繁琐,因为它需要的工作量最大,而且每次内核更新后你得手动更新 Catalyst。
  
{{警告|若通过AUR安装 Catalyst, 每次内核更新你都得重新编译Catalyst,否则X将不能启动。}}
+
{{警告|若通过 AUR 安装 Catalyst,每次内核更新你都得重新编译 Catalyst,否则 X '''将不能'''启动。}}
  
在 Vi0L0's 软件库中提到的一切软件包[[AUR]]中也可用::
+
在 Vi0L0 的软件库中提到的一切软件包在 [[AUR]] 中也可用:
 
* {{AUR|Catalyst}}
 
* {{AUR|Catalyst}}
 
* {{AUR|Catalyst-generator}}
 
* {{AUR|Catalyst-generator}}
Line 92: Line 74:
 
* {{AUR|Lib32-catalyst-utils}}
 
* {{AUR|Lib32-catalyst-utils}}
  
AUR还提供些独家软件包。它含有被称为 ''Catalyst-total''的包和一些beta阶段的软件:
+
AUR还提供些独家软件包。它含有被称为 ''Catalyst-total'' 的包和一些 beta 阶段的软件:
 
* {{AUR|Catalyst-total}}
 
* {{AUR|Catalyst-total}}
* {{AUR|Catalyst-total-pxp}}
 
 
* {{AUR|Catalyst-total-hd234k}}
 
* {{AUR|Catalyst-total-hd234k}}
 
* {{AUR|Catalyst-test}}
 
* {{AUR|Catalyst-test}}
  
{{AUR|catalyst-total}}包能让AUR用户更为方便。它能构建驱动、内核工具、32位内核工具和{{AUR|catalyst-hook}}(参见[[#工具]]).
+
{{AUR|catalyst-total}} 包能让 AUR 用户更为方便。它能构建驱动、内核工具、32位内核工具和 {{AUR|catalyst-hook}}(参见 [[#工具]])。
 
 
{{AUR|catalyst-total-pxp}}让Catalyst对powerXpress提供实验性支持。
 
  
 
=== 配置驱动 ===
 
=== 配置驱动 ===
安装完毕后,要配置 X,让其使用Catalyst。要确保fglrx模块在启动阶段加载,而且要禁用[[kernel mode setting]].
+
安装完毕后,要配置 X,让其使用 Catalyst。要确保 fglrx 模块在启动阶段加载,而且要禁用[[Kernel mode setting (简体中文)|内核级显示模式设置]]
  
==== 配置X ====
+
==== 配置 X ====
你需要创建 {{ic|xorg.conf}} 文件来配置X. Catalyst提供了{{ic|aticonfig}}工具来创建和(或)修改此文件。
+
你需要创建 {{ic|xorg.conf}} 文件来配置 X。Catalyst 提供了 {{ic|aticonfig}} 工具来创建和(或)修改此文件。
通过访问{{ic|/etc/ati/amdpcsdb}}文件它几乎能配置显卡的各项参数。了解完整的配置选项{{ic|aticonfig}}可运行:
+
通过访问 {{ic|/etc/ati/amdpcsdb}} 文件它几乎能配置显卡的各项参数。了解完整的 {{ic|aticonfig}} 配置选项可运行:
  
 
  # aticonfig --help | less
 
  # aticonfig --help | less
  
{{警告|在将各项配置参数提交到{{ic|/etc/X11/xorg.conf}}之前使用{{ic|--output}}选项,{{ic|/etc/X11/xorg.conf.d}}中的所有内容都会被覆盖。(Use the {{ic|--output}} option before committing to {{ic|/etc/X11/}} as an {{ic|xorg.conf}} file will override anything in {{ic|/etc/X11/xorg.conf.d/}})}}
+
{{警告|在将各项配置参数提交到 {{ic|/etc/X11/xorg.conf}} 之前使用 {{ic|--output}} 选项,{{ic|/etc/X11/xorg.conf.d}} 中的所有内容都会被覆盖。(Use the {{ic|--output}} option before committing to {{ic|/etc/X11/}} as an {{ic|xorg.conf}} file will override anything in {{ic|/etc/X11/xorg.conf.d/}})}}
 
 
{{注意|如果坚持使用{{ic|xorg.conf.d}}下的新配置文件:为了让{{ic|Device}}部分与{{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}相匹配,则使用{{ic|# aticonfig [...] --output}}.但这有一个缺点,很多依赖xorg.conf的{{ic|aticonfig}}选项都无法使用。}}
+
{{注意|如果坚持使用 {{ic|xorg.conf.d}} 下的新配置文件,使用 {{ic|# aticonfig [...] --output}} 来让 {{ic|Device}} 部分与 {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} 相匹配。但这有一个缺点,很多依赖 xorg.conf 的 {{ic|aticonfig}} 选项都无法使用。}}
  
现在来配置 Catalyst. 若只有一个显示器,运行:
+
现在来配置 Catalyst。若只有一个显示器,运行:
  
 
  # aticonfig --initial
 
  # aticonfig --initial
  
{{注意| 如果对PowerXpress有疑问,安装 {{AUR|catalyst-total-pxp}}.}}
+
注意,若你使用双显示器则使用下面的命令。 此命令会成两个配置文件,第二个显示器的配置文件在第一个前面:
 
 
注意,若你使用双显示器则使用下面的命令。 此命令会成两个配置文件,第二个显示器的配置文件在第一个前面
 
  
 
  # aticonfig --initial=dual-head --screen-layout=above
 
  # aticonfig --initial=dual-head --screen-layout=above
  
{{注意|了解与设置双显有关的更多信息可查看[[#双屏显示]]}}
+
{{注意|了解与设置双显有关的更多信息可查看 [[#双屏显示]]}}
  
你可与[[Xorg#Sample configurations|Sample Xorg.conf]]上的任何一个示例文件进行对照。
+
你可与[[Xorg#Sample configurations|示例 Xorg.conf]]{{Broken section link}} 上的任何一个示例文件进行对照。
  
 
虽然目前的版本的Xorg启动时能自动探测大多数选项,但不同Xorg版本的默认参数可能会有所不同,最好明确指定一些参数.
 
虽然目前的版本的Xorg启动时能自动探测大多数选项,但不同Xorg版本的默认参数可能会有所不同,最好明确指定一些参数.
  
给一个示例配置 (注意) '''仅供参考'''. 标{{ic|#}}必须有,标{{ic|##}}很可能会用到:
+
这里是一个示例配置(包含注释),'''仅供参考'''。标注 {{ic|#}} 是必需的,标注 {{ic|##}} 可能会用到:
  
 
{{hc|/etc/X11/xorg.conf|2=
 
{{hc|/etc/X11/xorg.conf|2=
 
Section "ServerLayout"
 
Section "ServerLayout"
 
         Identifier    "Arch"
 
         Identifier    "Arch"
         Screen      0  "Screen0" 0 0          # 0's are necessary.
+
         Screen      0  "Screen0" 0 0          # 0 这里是必需的
 
EndSection
 
EndSection
 
Section "Module"
 
Section "Module"
Line 148: Line 125:
 
Section "Device"
 
Section "Device"
 
         Identifier  "Card0"
 
         Identifier  "Card0"
         Driver      "fglrx"                        # Essential.
+
         Driver      "fglrx"                        # 必需的
         BusID      "PCI:1:0:0"                    # Recommended if autodetect fails.
+
         BusID      "PCI:1:0:0"                    # 推荐,如果自动探测失败的话
 
         Option      "OpenGLOverlay" "0"            ##
 
         Option      "OpenGLOverlay" "0"            ##
 
         Option      "XAANoOffscreenPixmaps" "false" ##
 
         Option      "XAANoOffscreenPixmaps" "false" ##
Line 160: Line 137:
 
         SubSection "Display"
 
         SubSection "Display"
 
                 Viewport  0 0
 
                 Viewport  0 0
                 Depth    24                        # Should not change from '24'
+
                 Depth    24                        # 不应该改动这里的值 '24'  
                 Modes "1280x1024" "2048x1536"      ## 1st value=default resolution, 2nd=maximum.
+
                 Modes "1280x1024" "2048x1536"      ## 第一个值是默认分辨率,第二个是最大分辨率
 
                 Virtual 1664 1200                  ## (x+64, y) to workaround potential OGL rect. artifacts/
 
                 Virtual 1664 1200                  ## (x+64, y) to workaround potential OGL rect. artifacts/
 
         EndSubSection                              ## fixed in Catalyst 9.8
 
         EndSubSection                              ## fixed in Catalyst 9.8
 
EndSection
 
EndSection
 
Section "DRI"
 
Section "DRI"
         Mode 0666                                  # May help enable direct rendering.
+
         Mode 0666                                  # 也许在启用直接渲染方面有用
 
EndSection
 
EndSection
 
}}
 
}}
  
{{注意|一旦升级Catalyst就要通过后面的方法删除{{ic|amdpcsdb}}文件: 关闭X,删除{{ic|/etc/ati/amdpcsdb}},启动X然后运行{{ic|amdcccle}} -否则{{ic|amdcccle}}将会显示错误的Catalyst版本号}}
+
{{注意|一旦升级 Catalyst 就要这样删除 {{ic|amdpcsdb}} 文件: 关闭 X,删除 {{ic|/etc/ati/amdpcsdb}} ,启动 X 然后运行 {{ic|amdcccle}} - 否则 {{ic|amdcccle}} 将会显示错误的 Catalyst 版本号。}}
  
 
''更多信息参考[https://bbs.archlinux.org/viewtopic.php?id=57084 这里].''
 
''更多信息参考[https://bbs.archlinux.org/viewtopic.php?id=57084 这里].''
  
 
==== 启动时加载模块 ====
 
==== 启动时加载模块 ====
禁用{{ic|radeon}}以防其自动加载. 在{{ic|/etc/modprobe.d/modprobe.conf}}里禁用''radeon'',同时保证它不被{{ic|/etc/modules-load.d/}}里的文件加载. 详见[[kernel modules#Blacklisting]].
+
禁用 {{ic|radeon}} 以防其自动加载。在 {{ic|/etc/modprobe.d/modprobe.conf}} 里禁用''radeon'',同时保证它不被 {{ic|/etc/modules-load.d/}} 里的文件加载。详见 [[Kernel modules (简体中文)#黑名单]]
  
接下来,使模块{{ic|fglrx}}自动加载. 添加{{ic|fglrx}}到{{ic|/etc/modules-load.d/}}下已有的模块文件的新一行,或者创建一个新的模块文件并添加{{ic|fglrx}}.
+
接下来,使模块 {{ic|fglrx}} 自动加载。添加 {{ic|fglrx}} 到 {{ic|/etc/modules-load.d/}} 下已有的模块文件的新一行,或者创建一个新的模块文件并添加 {{ic|fglrx}}
  
==== 禁用KMS ====
+
==== 禁用内核级显示模式设置 ====
  
{{注意|使用{{ic|catalyst-utils-pxp}}或者{{ic|catalyst-total-pxp}}的用户不要这样做,因为intel驱动需要KMS.}}
+
{{注意|使用 PowerXpress 技术的用户不要这样做,因为Intel驱动需要它。}}
  
禁用KMS很重要.由于Catalyst根本不使用[[KMS]],得将其禁用。否则,当系统切换至TTY或在桌面环境下关机时,系统可能会冻结。
+
禁用内核级显示模式设置很重要,Catalyst 根本不使用[[Kernel mode setting (简体中文)|内核级显示模式]]。否则,当系统切换至TTY或在桌面环境下关机时,系统可能会冻结。
  
添加 {{ic|nomodeset}} 到你的 [[kernel parameters|内核参数]].
+
添加 {{ic|nomodeset}} 到你的[[Kernel parameters (简体中文)|内核参数]]
  
 
==== 检查安装是否成功 ====
 
==== 检查安装是否成功 ====
Line 193: Line 170:
 
  $ lsmod | grep fglrx
 
  $ lsmod | grep fglrx
  
若有输出, 则证明安装成功。可以尝试用 {{ic|$ startx}} 或者显示管理器来启动X (参见 [[Xorg#Running]]).
+
若有输出, 则证明安装成功。可以尝试用 {{ic|$ startx}} 或者显示管理器来启动 X(参见 [[Xorg#Running]])。
  
下面的命令可以输出你的显卡型号信息:
+
下面的命令可以输出你的显卡型号信息:
  
 
  $ fglrxinfo
 
  $ fglrxinfo
Line 201: Line 178:
 
运行以下命令检查直接渲染模式是否启用:
 
运行以下命令检查直接渲染模式是否启用:
  
  $ glxinfo | grep direct
+
  $ glxinfo | grep "direct rendering"
  
若显示{{ic|"direct rendering: yes"}},恭喜你,到位了! 若无{{ic|$ glxinfo}}命令,安装{{Pkg|mesa-demos}} package。
+
若显示 {{ic|"direct rendering: yes"}},恭喜你,到位了! 若无 {{ic|$ glxinfo}} 命令,安装 {{Pkg|mesa-demos}} package。
  
{{注意|对于{{ic|glxgears}},你也可以使用:
+
{{注意|对于 {{ic|glxgears}},你也可以使用:
 
  $ fgl_glxgears
 
  $ fgl_glxgears
来测试fglrx.
+
来测试fglrx。
 
}}
 
}}
  
{{警告|最近几版Xorg,库函数路径变了,因此即使安装{{ic|libGL.so}}也不一定能正确人加载。请检查GL是否工作,可阅读"故障排除"段落}}
+
{{警告|最近版本的 Xorg 函数库路径发生了变化,因此即使安装了 {{ic|libGL.so}} 也不一定能被正确加载。请检查图形库是否工作,可阅读 [[#故障排除]]段落。}}
  
=== 自我编译内核 ===
+
=== 自己编译内核 ===
  
在手动编译的内核上,你必须构建你自己的{{ic|catalyst-$kernel}}包.
+
在手动编译的内核上,你必须构建你自己的 {{ic|catalyst-$kernel}} 包。
  
{{注意|如果你讨厌打包或毫无经验,可先阅读[[ABS]]。}}
+
{{注意|如果你讨厌打包或毫无经验,可先阅读 [[Arch Build System (简体中文)]]。}}
  
#从[[AUR|Catalyst]]上获取{{ic|PKGBUILD}} 和 {{ic|catalyst.install}}文件。
+
#从 [[AUR|Catalyst]] 上获取 {{ic|PKGBUILD}} 和 {{ic|catalyst.install}} 文件。
# 编辑PKGBUILD. 两个地方需要修改:
+
# 编辑 PKGBUILD。两个地方需要修改:
## 将{{ic|1=pkgname=catalyst}} 修改为 {{ic|1=pkgname=catalyst-$kernel_name}},{{ic|$kernel_name}}可以随意取(如:custom, mm)。
+
## 将 {{ic|1=pkgname=catalyst}} 修改为 {{ic|1=pkgname=catalyst-$kernel_name}}{{ic|$kernel_name}} 可以随意取(如:custom,mm)。
## 将{{ic|linux}}的依赖修改为{{ic|$kernel_name}}。
+
## 将 {{ic|linux}} 的依赖修改为 {{ic|$kernel_name}}。
# 构建并安装软件包;运行{{ic|makepkg -i}} 和 {{ic|makepkg}},接着运行 {{ic|# pacman -U pkgname.pkg.tar.gz}}
+
# 构建并安装软件包;运行 {{ic|makepkg -i}} 和 {{ic|makepkg}},接着运行 {{ic|# pacman -U pkgname.pkg.tar.gz}}
  
 
{{注意|
 
{{注意|
*如果在安装有多内核的系统上,你必须为所有内核安装 {{AUR|catalyst-utils}} 包。这不会引起冲突.
+
*如果在安装有多内核的系统上,你必须为所有内核安装 {{AUR|catalyst-utils}} 包。这不会引起冲突。
 
 
*{{AUR|catalyst-generator}}能为你自动构建{{ic|<nowiki>catalyst-{kernver}</nowiki>}},因此这些步骤根本就可省略。 请参考[[#工具|工具 部分]].}}
 
  
=== PowerXpress support ===
+
*{{AUR|catalyst-generator}} 能为你自动构建 {{ic|<nowiki>catalyst-{kernver}</nowiki>}},因此这些步骤根本就可省略。请参考 [[#工具]]部分。}}
  
PowerXpress technology 允许支持dual-graphic功能(以前叫做AMD Hybrid CrossFire technology)的笔记本电脑从集成显卡(IGP) 切换到独立显卡,以增加电池寿命或者实现更好的3D渲染效能。
+
=== PowerXpress 支持 ===
  
为了在archlinux上用上这个功能,你j将需要:
+
PowerXpress 技术允许支持双显卡功能的笔记本电脑从集成显卡 (IGP) 切换到独立显卡,以延长电池寿命或者实现更好的3D渲染效能。
* 从  [[AUR]] 获取并编译 {{AUR|catalyst-total-pxp}} 这个软件包,或者
 
* 从 [catalyst] 软件仓库安装 '''catalyst-utils-pxp''' 软件包 (如果需要,还有 lib32-catalyst-utils-pxp)
 
  
对于intel集成显卡的切换,你还需要安装 {{pkg|mesa-libgl}} 软件包和intel的驱动:{{pkg|xf86-video-intel}}
+
如果要在Arch上使用此功能,你将需要:
{{注意|'''对最新的13.1版本的Catalyst(不是Catalyst legacy) ChrisXY 能够兼容最新的 {{pkg|xorg-server}} (版本 1.13.1), {{Pkg|mesa}} 9.0.1 {{pkg|xf86-video-intel}} 2.20.18'''.
+
* 从 [[AUR]] 获取并编译 {{AUR|catalyst-total}} / {{AUR|catalyst-test}} 软件包,或者
 +
* 从 [catalyst] 软件仓库安装 '''catalyst-libgl''' '''catalyst-utils''' 软件包。
  
对于所有版本低于13.1的Catalyst(和任何版本的Catalyst legacy),和新的intel驱动存在一些兼容问题。'''最近的{{pkg|xf86-video-intel}}开发版本是2.20.2-2''',所以你可能必须从Arch软件仓库中的最新版本降级(尽管我们推荐你试验性地使用最新的驱动,因为有可能它在你这里没有问题)
+
对于 Intel 集成显卡的切换,你还需要安装 {{pkg|mesa}} 软件包和 Intel 的驱动:{{pkg|xf86-video-intel}}
  
{{pkg|xf86-video-intel}} 2.20.2-2 只兼容 xorg-server 1.12 并且特它是 '''xorg112 repository'''的一部分. 如果你想使用它,你必须降级xorg-server。具体信息见 [[#Xorg repositories]].}}
+
{{注意|Catalyst 有时不兼容最新的 Intel 驱动程序。如果遇到这种情况,请降级 {{pkg|xf86-video-intel}} xorg-server 软件包到 [[Arch Linux Archive]] 或者 [[#Xorg 软件库]] 上的先前版本。}}
  
 
现在你可以用下面这些命令切换集成显卡和独立显卡:
 
现在你可以用下面这些命令切换集成显卡和独立显卡:
Line 251: Line 225:
 
}}
 
}}
  
Just remember that fglrx needs {{ic|/etc/X11/xorg.conf}} configured for AMD's card with {{ic|fglrx}} inside.
+
请记住 fglrx 需要配置 {{ic|/etc/X11/xorg.conf}} 为包含 {{ic|fglrx}}
要记着对含有 {{ic|fglrx}} 模块的AMD显卡,fglrx需要 {{ic|/etc/X11/xorg.conf}} 这个文件
 
  
 
你也可以用{{ic|pxp_switch_catalyst}} 这个切换脚本完成一些其他有用的操作:
 
你也可以用{{ic|pxp_switch_catalyst}} 这个切换脚本完成一些其他有用的操作:
* Switching {{ic|xorg.conf}} - it will rename {{ic|xorg.conf}} into {{ic|xorg.conf.cat}} (if there is fglrx inside) or {{ic|xorg.conf.oth}} (if there is intel inside) and then it will create a symlink to {{ic|xorg.conf}}, depending on what you chose.
+
* 切换 {{ic|xorg.conf}} - 这将重命名 {{ic|xorg.conf}} {{ic|xorg.conf.cat}}(如果它包含了 fglrx)或者 {{ic|xorg.conf.oth}}(如果它包含了 intel),并且根据你的选择创建一个软链接 {{ic|xorg.conf}}
* Running {{ic|aticonfig --px-Xgpu}}.
+
* 运行 {{ic|aticonfig --px-Xgpu}}.
* Running {{ic|switchlibGL}}.
+
* 运行 {{ic|switchlibGL}}.
* Adding/removing {{ic|fglrx}} into/from {{ic|/etc/modules-load.d/catalyst.conf}}.
+
* 添加/删除 {{ic|fglrx}} /{{ic|/etc/modules-load.d/catalyst.conf}}.
  
Usage:
+
用法:
 
{{bc|1=
 
{{bc|1=
 
# pxp_switch_catalyst amd
 
# pxp_switch_catalyst amd
Line 266: Line 239:
 
}}
 
}}
  
如果你试图在装有intel驱动的设备上运行X图形界面时遇到问题,你可以尝试强制开启"UXA" acceleration: 在{{ic|xorg.conf}}中写{{ic|Option "AccelMethod" "uxa"}},就象这样:
+
如果你试图在 Intel 驱动上运行 X 时遇到问题,你可以尝试强制开启 "UXA" 加速: 在 {{ic|xorg.conf}} 中添加 {{ic|Option "AccelMethod" "uxa"}},就像这样:
 
{{hc|/etc/X11/xorg.conf|2=
 
{{hc|/etc/X11/xorg.conf|2=
 
Section "Device"
 
Section "Device"
Line 277: Line 250:
 
}}
 
}}
  
==== 同时运行两个X server(一个使用Intel驱动, 一个使用 fglrx) ====
+
==== 同时运行两个 X server(一个使用 Intel 驱动,一个使用 fglrx) ====
  
因为fglrx容易崩溃(考虑到PowerXpress),主要X server使用Intel驱动,另一个使用需要3D加速的fglrx驱动是个不错的选择。但是在开启第二个X server的时候,简单地从集成显卡 {{ic|aticonfig}} 或者 {{ic|amdcccle}}切换到独立显卡将引发一系列不正常的bugs。
+
因为 fglrx 容易崩溃(考虑到 PowerXpress),主要 X server 使用 Intel 驱动,另一个使用需要 3D 加速的 fglrx 驱动是个不错的选择。但是在开启第二个 X server 的时候,简单地从集成显卡 {{ic|aticonfig}} 或者 {{ic|amdcccle}} 切换到独立显卡将引发一系列奇怪的问题。
 
   
 
   
为了同时运行两个X server(每个用不同的驱动),你首先需要设置出一个可以和Catalyst一起正常工作的X图形环境,然后把它的 {{ic|xorg.conf}}移动到一个临时的地方(比如{{ic|/etc/X11/xorg.conf.fglrx}})。下次X图形环境启动时,它将默认使用intel驱动来代替fglrx。
+
为了同时运行两个 X server(每个用不同的驱动),你首先需要设置出一个可以和 Catalyst 一起正常工作的 X 图形环境,然后把它的 {{ic|xorg.conf}} 移动到一个临时的地方(比如 {{ic|/etc/X11/xorg.conf.fglrx}})。下次 X 图形环境启动时,它将默认使用 Intel 驱动来代替 fglrx。
  
在开启第二个使用fglrx的X server,只需要在运行X之前,把{{ic|xorg.conf}} 移回合适的地方({{ic|/etc/X11/xorg.conf}})。这个方法甚至允许你在两个运行的X sessions之间来回切换。当你不需要使用fglrx时,再把 {{ic|xorg.conf}} 移动到其他地方。
+
在开启第二个使用 fglrx 的 X server,只需要在运行 X 之前,把 {{ic|xorg.conf}} 移回合适的地方 ({{ic|/etc/X11/xorg.conf}})。这个方法甚至允许你在两个运行的 X 会话之间来回切换。当你不需要使用 fglrx 时,再把 {{ic|xorg.conf}} 移动到其他地方。
  
这种方法唯一的坏处是不能使用intel驱动的3D加速。但它的2D却能完全发挥作用。除此之外,它还能给我们一个非常稳定的桌面环境。
+
这种方法唯一的坏处是不能使用 Intel 驱动的 3D 加速。但它的 2D 却能完全发挥作用。除此之外,它还能给我们一个非常稳定的桌面环境。
  
==== 多显示器的PowerXpress笔记本运行于AMD模式时(pxp_switch_catalyst amd)的问题 ====
+
==== 多显示器的 PowerXpress 笔记本运行于 AMD 模式时 (pxp_switch_catalyst amd) 的问题 ====
当PowerXpress笔记本工作于AMD-only模式时(比如设置全部渲染工作交给独显),你有可能会遇到显示器伪影/重复的情况.这是一个已知的问题,发生于7xxxM系列显卡.
+
当 PowerXpress 笔记本工作于 AMD-only 模式时(比如设置全部渲染工作交给独显),你有可能会遇到显示器伪影/重复的情况。这是一个已知的问题,发生于7xxxM系列显卡。
  
当旋转或者缩放一个显示器时现象会消失,所以你可以使用xrandr来解决这个问题:
+
当旋转或者缩放一个显示器时现象会消失,所以你可以使用 xrandr 来解决这个问题:
  
 
{{bc|1=
 
{{bc|1=
Line 296: Line 269:
 
}}
 
}}
  
== Xorg软件库 ==
+
== Xorg 软件库 ==
Catalyst由于其缓慢的更新而被人大为诟病。因升级Xorg而造成两者不兼容是稀松平常的事。也就意味着Catalyst用户要么自己编译Xorg的包要么使用一个只包含Xorg包的回溯软件库,该库中不提供更新版Xorg以确保兼容性。 Vi0L0提供好几个这样的库.
+
Catalyst 由于其缓慢的更新而被人大为诟病。因升级 Xorg 而造成两者不兼容是稀松平常的事。也就意味着 Catalyst 用户要么自己编译 Xorg 的包要么使用一个只包含 Xorg 包的回溯软件库,该库中不提供更新版 Xorg 以确保兼容性。Vi0L0 提供好几个这样的库。
  
要启用上述软件库的话,参见[[Unofficial user repositories]]中所述方法. 记得在{{ic|pacman.conf}}中的'''其他软件库之前(甚至在你的catalyst仓库前,如果你有的话)'''添加相应软件库(使用和[[Unofficial user repositories#catalyst|catalyst]]库相同的PGP密匙).
+
要启用上述软件库的话,参见 [[Unofficial user repositories]] 中所述方法. 记得在 {{ic|pacman.conf}} 中的'''其他软件库之前(甚至在你的 catalyst 仓库前,如果你有的话)'''添加相应软件库(使用和 [[Unofficial user repositories#catalyst|catalyst]] 库相同的 PGP 密匙)。
 +
 
 +
=== xorg117 ===
 +
Catalyst 不支持 xorg-server 1.18
 +
{{bc|<nowiki>
 +
[xorg117]
 +
Server = http://catalyst.wirephire.com/repo/xorg117/$arch
 +
## Mirrors, if the primary server does not work or is too slow:
 +
#Server = http://mirror.hactar.bz/Vi0L0/xorg117/$arch
 +
</nowiki>}}
  
 
=== xorg116 ===
 
=== xorg116 ===
Catalyst 不支持 xorg-server 1.17
+
Catalyst < 15.7 不支持 xorg-server 1.17
 
{{bc|<nowiki>
 
{{bc|<nowiki>
 
[xorg116]
 
[xorg116]
 
Server = http://catalyst.wirephire.com/repo/xorg116/$arch
 
Server = http://catalyst.wirephire.com/repo/xorg116/$arch
 
## 如果上面那个不行或者太慢的话就换这些镜像站:
 
## 如果上面那个不行或者太慢的话就换这些镜像站:
#Server = http://mirror.rts-informatique.fr/archlinux-catalyst/repo/xorg116/$arch
 
 
#Server = http://mirror.hactar.bz/Vi0L0/xorg116/$arch
 
#Server = http://mirror.hactar.bz/Vi0L0/xorg116/$arch
 
</nowiki>}}
 
</nowiki>}}
Line 318: Line 299:
 
Server = http://catalyst.wirephire.com/repo/xorg115/$arch
 
Server = http://catalyst.wirephire.com/repo/xorg115/$arch
 
## 如果上面那个不行或者太慢的话就换这些镜像站:
 
## 如果上面那个不行或者太慢的话就换这些镜像站:
#Server = http://mirror.rts-informatique.fr/archlinux-catalyst/repo/xorg115/$arch
 
 
#Server = http://mirror.hactar.bz/Vi0L0/xorg115/$arch
 
#Server = http://mirror.hactar.bz/Vi0L0/xorg115/$arch
 
</nowiki>}}
 
</nowiki>}}
Line 329: Line 309:
 
Server = http://catalyst.wirephire.com/repo/xorg114/$arch
 
Server = http://catalyst.wirephire.com/repo/xorg114/$arch
 
## 如果上面那个不行或者太慢的话就换这些镜像站:
 
## 如果上面那个不行或者太慢的话就换这些镜像站:
#Server = http://mirror.rts-informatique.fr/archlinux-catalyst/repo/xorg114/$arch
 
 
#Server = http://mirror.hactar.bz/Vi0L0/xorg114/$arch
 
#Server = http://mirror.hactar.bz/Vi0L0/xorg114/$arch
 
</nowiki>}}
 
</nowiki>}}
Line 340: Line 319:
 
Server = http://catalyst.wirephire.com/repo/xorg113/$arch
 
Server = http://catalyst.wirephire.com/repo/xorg113/$arch
 
## 如果上面那个不行或者太慢的话就换这些镜像站:
 
## 如果上面那个不行或者太慢的话就换这些镜像站:
#Server = http://mirror.rts-informatique.fr/archlinux-catalyst/repo/xorg113/$arch
 
 
#Server = http://mirror.hactar.bz/Vi0L0/xorg113/$arch
 
#Server = http://mirror.hactar.bz/Vi0L0/xorg113/$arch
 
</nowiki>}}
 
</nowiki>}}
Line 351: Line 329:
 
Server = http://catalyst.wirephire.com/repo/xorg112/$arch
 
Server = http://catalyst.wirephire.com/repo/xorg112/$arch
 
## 如果上面那个不行或者太慢的话就换这些镜像站:
 
## 如果上面那个不行或者太慢的话就换这些镜像站:
#Server = http://mirror.rts-informatique.fr/archlinux-catalyst/repo/xorg112/$arch
 
 
#Server = http://mirror.hactar.bz/Vi0L0/xorg112/$arch
 
#Server = http://mirror.hactar.bz/Vi0L0/xorg112/$arch
 
</nowiki>}}
 
</nowiki>}}
Line 358: Line 335:
  
 
=== Catalyst-hook ===
 
=== Catalyst-hook ===
{{AUR|Catalyst-hook}} 是一个 [[systemd]] 服务,它在系统关机或重启后重新构建{{ic|fglrx}}模块(如果需要的话,比如内核升级后).
+
{{AUR|Catalyst-hook}} 是一个 [[systemd]] 服务,它在系统关机或重启后重新构建 {{ic|fglrx}} 模块(如果需要的话,比如内核升级后)。
  
使用之前请保证 {{Grp|base-devel}} 组和 {{Pkg|linux-headers}} 包(对应你的内核)已经安装.
+
使用之前请保证 {{Grp|base-devel}} 组和 {{Pkg|linux-headers}} 包(对应你的内核)已经安装。
  
只需激活{{ic|catalyst-hook.service}}服务即可:
+
只需激活 {{ic|catalyst-hook.service}} 服务即可:
  
 
  # systemctl enable catalyst-hook
 
  # systemctl enable catalyst-hook
 
  # systemctl start catalyst-hook
 
  # systemctl start catalyst-hook
  
你也可以用这个软件包来手动构建{{ic|fglrx}}模块. 在内核更新后运行 {{ic|catalyst_build_module}} 脚本即可:
+
你也可以用这个软件包来手动构建 {{ic|fglrx}} 模块。在内核更新后运行 {{ic|catalyst_build_module}} 脚本即可:
  
 
  # catalyst_build_module all
 
  # catalyst_build_module all
  
'''一些技术细节:'''
+
'''一些技术细节:'''
  
 
The {{ic|catalyst-hook.service}} is stopping the systemd "river" and is forcing systemd to wait until catalyst-hook finishes its job.
 
The {{ic|catalyst-hook.service}} is stopping the systemd "river" and is forcing systemd to wait until catalyst-hook finishes its job.
  
{{ic|catalyst-hook.service}} 调用 {{ic|catalyst_build_module check}} 来检查是否有必要重构建fglrx.
+
{{ic|catalyst-hook.service}} 调用 {{ic|catalyst_build_module check}} 来检查是否有必要重构建fglrx。
  
{{ic|check}} 检查{{ic|fglrx}}模块是否存在:
+
{{ic|check}} 检查 {{ic|fglrx}} 模块是否存在:
  
*不存在,将构建它;
+
*不存在,将构建它;
  
*存在,它将比较两个参数来确定是否有必要重构建{{ic|fglrx}}.
+
*存在,它将比较两个参数来确定是否有必要重构建 {{ic|fglrx}}
  
这里的参数是 {{ic|/usr/lib/modules/<kernel_version>/build/Module.symvers}} 的md5值. (因为我(这里指Vi0L0)发现每一个版本的这个文件都不一样). 第一个参数是现有的 {{ic|Module.symvers}} 文件md5.第二个参数是{{ic|fglrx}}模块构建时 {{ic|Module.symvers}} 文件的md5. 这个参数被{{ic|catalyst_build_module}}脚本编译到{{ic|fglrx}}模块.
+
这里的参数是 {{ic|/usr/lib/modules/<kernel_version>/build/Module.symvers}} 的 md5 值。(因为我(这里指 Vi0L0)发现每一个版本的这个文件都不一样)。第一个参数是现有的 {{ic|Module.symvers}} 文件 md5,第二个参数是 {{ic|fglrx}} 模块构建时 {{ic|Module.symvers}} 文件的 md5。这个参数被 {{ic|catalyst_build_module}} 脚本编译到 {{ic|fglrx}} 模块。
  
如果参数不同,将编译新的{{ic|fglrx}}模块.
+
如果参数不同,将编译新的 {{ic|fglrx}} 模块。
  
check 检查整个 {{ic|/usr/lib/modules/}} 目录 ,为安装的所有内核编译fglrx模块(如果需要的话). 如果没有必要构建或重构建,进程将很快结束.
+
check 检查整个 {{ic|/usr/lib/modules/}} 目录,为安装的所有内核编译 fglrx 模块(如果需要的话)。如果没有必要构建或重构建,进程将很快结束。
  
 
=== Catalyst-generator ===
 
=== Catalyst-generator ===
  
{{AUR|catalyst-generator}}包能构建并安装{{ic|fglrx}}模块,该模块与pacman兼容的{{ic|<nowiki>catalyst-${kernver}</nowiki>}}相适应。与[[#Catalyst-hook]]的区别是必须手动使用此命令,而Catalyst-hook则不需。
+
{{AUR|catalyst-generator}} 包能构建并安装 {{ic|fglrx}} 模块,该模块与 pacman 兼容的 {{ic|<nowiki>catalyst-${kernver}</nowiki>}} 相适应。与 [[#Catalyst-hook]] 的区别是必须手动使用此命令,而 Catalyst-hook 则不需。
  
通过[[makepkg]],它能构建{{ic|<nowiki>catalyst-${kernver}</nowiki>}}二进制包并用[[pacman]]安装。{{ic|<nowiki>${kernver}</nowiki>}} 是软件包的目标内核版本 (例如 catalyst-2.6.35-ARCH 适用于 2.6.35-ARCH 内核).
+
通过 [[makepkg]],它能构建 {{ic|<nowiki>catalyst-${kernver}</nowiki>}} 二进制包并用 [[pacman]] 安装。{{ic|<nowiki>${kernver}</nowiki>}} 是软件包的目标内核版本(例如 catalyst-2.6.35-ARCH 适用于 2.6.35-ARCH 内核)。
  
非特权用户使用{{ic|catalyst_build_module}}来构建并安装{{ic|<nowiki>catalyst-{kernver}</nowiki>}}包。安装时会提示输入root密码。
+
非特权用户使用 {{ic|catalyst_build_module}} 来构建并安装 {{ic|<nowiki>catalyst-{kernver}</nowiki>}} 包。安装时会提示输入 root 密码。
  
简单说一下如何使用此包:
+
简单说一下如何使用此包:
  
# root用户: 使用{{ic|catalyst_build_module remove}}。此举会删除无用的{{ic|<nowiki>catalyst-{kernver}</nowiki>}}包。
+
# root 用户: 使用 {{ic|catalyst_build_module remove}}。此举会删除无用的 {{ic|<nowiki>catalyst-{kernver}</nowiki>}} 包。
# 非特权用户: 使用{{ic|<nowiki>catalyst_build_module ${kernver}</nowiki>}}, {{ic|<nowiki>${kernver}</nowiki>}}是指升级过后的内核版本。也可通过{{ic|catalyst_build_module all}}为所有安装的内核构建{{ic|<nowiki>catalyst-{kernver}</nowiki>}}。
+
# 非特权用户: 使用 {{ic|<nowiki>catalyst_build_module ${kernver}</nowiki>}}{{ic|<nowiki>${kernver}</nowiki>}} 是指升级过后的内核版本。也可通过 {{ic|catalyst_build_module all}} 为所有安装的内核构建 {{ic|<nowiki>catalyst-{kernver}</nowiki>}}。
# 若要删除{{ic|catalyst-generator}}, 在使用{{ic|catalyst_build_module remove_all}}命令删除catalyst-generator之前最好切换到root用户,'''这会删除所有{{ic|<nowiki>catalyst-{kernver}</nowiki>}}包.'''
+
# 若要删除 {{ic|catalyst-generator}},在使用 {{ic|catalyst_build_module remove_all}} 命令删除 catalyst-generator 之前最好切换到 root 用户,'''这会删除所有 {{ic|<nowiki>catalyst-{kernver}</nowiki>}} 包。'''
  
当删除{{ic|Catalyst-generator}}时,{{ic|Catalyst-generator}}不能自动删除那些{{ic|<nowiki>catalyst-{kernver}</nowiki>}}包,这是因为pacman不允许有一个以上的实例同时运行。若在使用{{ic|# pacman -R catalyst-generator}}前忘记运行{{ic|# catalyst_build_module remove_all}},catalyst-generator将会询问删除catalyst-generator自身后要删除哪个{{ic|<nowiki>catalyst-{kernver}</nowiki>}}包。
+
当删除 {{ic|Catalyst-generator}} 时,{{ic|Catalyst-generator}} 不能自动删除那些 {{ic|<nowiki>catalyst-{kernver}</nowiki>}} 包,这是因为 pacman 不允许有一个以上的实例同时运行。若在使用 {{ic|# pacman -R catalyst-generator}} 前忘记运行 {{ic|# catalyst_build_module remove_all}},catalyst-generator 将会询问删除 catalyst-generator 自身后要删除哪个 {{ic|<nowiki>catalyst-{kernver}</nowiki>}} 包。
  
 
Catalyst-generator 是最安全的,最符合KISS原则的,因为:
 
Catalyst-generator 是最安全的,最符合KISS原则的,因为:
  
# 你可以使用非特权用户来构建包;
+
# 你可以使用非特权用户来构建包;
# 它在 fakeroot 环境构建包;
+
# 它在 fakeroot 环境构建包;
# 它不乱丢文件,[[pacman]]知道文件们在哪;
+
# 它不乱丢文件,[[pacman]]知道文件们在哪;
# 你需要做的只是,记得去使用它
+
# 你需要做的只是,记得去使用它
  
{{注意|在构建{{ic|<nowiki>catalyst-{kernver}</nowiki>}}时,若看到下列警告,乃正常情况,不必莫名惊诧:
+
{{注意|在构建 {{ic|<nowiki>catalyst-{kernver}</nowiki>}} 时,如果看到下列警告,这是正常情况,不必惊慌:
  
 
  '''WARNING:''' Package contains reference to $srcdir
 
  '''WARNING:''' Package contains reference to $srcdir
  
  '''WARNING:''' '.pkg' is not a valid archive extension}}
+
  '''WARNING:''' '.pkg' is not a valid archive extension
 +
}}
  
=== OpenCL / OpenGL 开发 ===
+
=== OpenCL OpenGL 开发 ===
  
这几年AMD一直在为OpenCL and OpenGL的开发做一套工具集。
+
这几年 AMD 一直在为 OpenCL 和 OpenGL 的开发做一套工具集。
  
现在AMD在'''"Heterogeneous Computing"'''的旗帜下提供了更多的工具集,幸运的是它们也在Linux下可用。
+
现在 AMD 在 '''"Heterogeneous Computing"''' 的旗帜下提供了更多的工具集,幸运的是它们也在 Linux 下可用。
  
在AUR和 [catalyst] 软件仓库,你可以找到这些代表了AMD最重要工作的工具软件包:
+
在 AUR 和 [catalyst] 软件仓库,你可以找到这些代表了 AMD 最重要工作的工具软件包:
  
 
* {{AUR|amdapp-aparapi}}
 
* {{AUR|amdapp-aparapi}}
* {{AUR|amdapp-sdk}
+
* {{AUR|amdapp-sdk}}
 
* {{AUR|amdapp-codexl}}
 
* {{AUR|amdapp-codexl}}
  
Line 433: Line 411:
  
 
==== amdapp-aparapi ====
 
==== amdapp-aparapi ====
AMD的Aparapi是一个用java实现的API,用于并行地表达图像数据,它同时也是一个能把java字节码翻译成能被OpenCL识别的运行时组件。所以它能够被很多种图形处理器(GPU)执行。如果Aparapi在GPU上不能执行,那将在java的线程池中执行。
+
AMD 的 Aparapi 是一个用 Java 实现的 API,用于并行地表达图像数据,它同时也是一个能把 Java 字节码翻译成能被 OpenCL 识别的运行时组件,所以它能够被很多种图形处理器执行。如果 Aparapi 在 GPU 上不能执行,那将在Java的线程池中执行。
  
更多关于Aparapi的信息:[http://developer.amd.com/tools/heterogeneous-computing/aparapi/ here]。
+
更多关于 Aparapi 的信息:[http://developer.amd.com/tools/heterogeneous-computing/aparapi/ 参见这里]。
  
==== amdapp-sdk (以前的amdstream) ====
+
==== amdapp-sdk (以前的 amdstream) ====
AMD APP 软件开发工具套件,是一个由AMD制作地一套完整的开发平台。它让你能够快速和容易地使用AMD APP技术,使得你的程序得到加速。这个SDK提供了代码实例,技术文档和其他资料,让您可以在你的C\C++程序中使用 OpenCL, Bolt, or C++ AMP等技术实现计算加速。
+
AMD APP 软件开发工具套件,是一个由 AMD 制作地一套完整的开发平台。它让你能够快速和容易地使用 AMD APP 技术,使得你的程序得到加速。这个 SDK 提供了代码实例,技术文档和其他资料,让您可以在你的 C\C++ 程序中使用 OpenCL,Bolt 或 C++ AMP 等技术实现计算加速。
  
从2.8版本开始,amdapp-sdk 提供了 aparapiUtil 和 aparapi 的代码实例。有一个包已经加入到了[catalyst]软件仓库。它依赖于{{AUR|amdapp-aparapi}}。AUR中的软件包让你选择需不需要aparapi's additions。
+
从 2.8 版本开始,amdapp-sdk 提供了 aparapiUtil 和 aparapi 的代码实例。有一个包已经加入到了 [catalyst] 软件仓库。它依赖于 {{AUR|amdapp-aparapi}}。AUR 中的软件包让你选择需不需要 aparapi's additions。
  
2.8 版本没有提供探查功能( Profiler functionality),它已经被移到CodeXL中了。
+
2.8 版本没有提供探查功能 (Profiler functionality),它已经被移到 CodeXL 中了。
  
关于 AMD APP SDK 的更多信息: [http://developer.amd.com/tools/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/ here]。
+
关于 AMD APP SDK 的更多信息: [http://developer.amd.com/tools/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/ 参见这里]。
  
 
==== amdapp-codexl ====
 
==== amdapp-codexl ====
CodeXL 是一个带有静态OpenCl内核分析器的OpenCL and OpenGL调试器和探查器。他具有GUI界面,是在著名的{{AUR|gdebugger}} 基础上完成的。他只支持 x86_64 系统。
+
CodeXL 是一个带有静态 OpenCl 内核分析器的 OpenCL and OpenGL 调试器和探查器。它具有 GUI 界面,是在著名的 {{AUR|gdebugger}}{{Broken package link|{{aur-mirror|gdebugger}}}} 基础上完成的。它只支持 x86_64 系统。
  
关于CodeXL的更多信息: [http://developer.amd.com/tools/heterogeneous-computing/codexl/ here]。
+
关于 CodeXL 的更多信息:[http://developer.amd.com/tools/heterogeneous-computing/codexl/ 参见这里]。
  
 
== 功能 ==
 
== 功能 ==
Line 455: Line 433:
 
=== Tear Free Rendering ===
 
=== Tear Free Rendering ===
  
在'''Catalyst 11.1'''中,很可能是添加了三重缓存和v-sync,''Tear Free Desktop''减少了2D,3D视频应用的屏幕撕裂毛病。但这需要额外的GPU处理。
+
在 '''Catalyst 11.1''' 中,很可能是添加了三重缓存和 v-sync,''Tear Free Desktop'' 减少了 2D,3D 视频应用的屏幕撕裂毛病。但这需要额外的 GPU 处理。
  
要启用'Tear Free Desktop',运行{{ic|amdcccle}},然后设置{{ic|Display Options}} → {{ic|Tear Free}}。
+
要启用 'Tear Free Desktop',运行 {{ic|amdcccle}},然后设置 {{ic|Display Options}}→{{ic|Tear Free}}。
  
或以root身份运行:
+
或以 root 身份运行:
  
 
  # aticonfig --set-pcs-u32=DDX,EnableTearFreeDesktop,1
 
  # aticonfig --set-pcs-u32=DDX,EnableTearFreeDesktop,1
  
若禁用,使用{{ic|amdcccle}}或以root身份运行:
+
若禁用,使用 {{ic|amdcccle}} 或以 root 身份运行:
  
 
  # aticonfig --del-pcs-key=DDX,EnableTearFreeDesktop
 
  # aticonfig --del-pcs-key=DDX,EnableTearFreeDesktop
Line 469: Line 447:
 
=== 视频加速 ===
 
=== 视频加速 ===
  
'''[[wikipedia:Video_Acceleration_API|Video Acceleration API]] (VA API)'''是为基于Linux/UNIX操作系统提供利用GPU加速视频处理的一个开源函数库和应用程序接口规范。启用视频加速后,通过各种入口(VLD, IDCT, Motion Compensation, deblocking)它能加速常用编码标准(MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/WMV3)视频文件的解码过程(俗称硬解)。
+
'''[[wikipedia:Video_Acceleration_API|Video Acceleration API]] (VA API)''' 是为基于 Linux/UNIX 操作系统提供利用 GPU 加速视频处理的一个开源函数库和应用程序接口规范。启用视频加速后,通过各种入口 (VLD, IDCT, Motion Compensation, deblocking) 它能加速常用编码标准 (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/WMV3) 视频文件的解码过程(俗称硬解)。
  
VA-API在{{AUR|xvba-video}}上有一个私有后端(2009年10月), 它允许使用VA-API的程序通过[[wikipedia:XvBA|XvBA (X-Video Bitstream Acceleration API designed by AMD)]]函数库来充分利用拥有uvd2(第二代通用视频解码单元)芯片组的视频加速功能.
+
VA-API 在 {{AUR|xvba-video}}{{Broken package link|{{aur-mirror|xvba-video}}}} 上有一个私有后端(2009年10月),它允许使用 VA-API 的程序通过 [[wikipedia:XvBA|XvBA(AMD 设计的 X-Video 比特流加速 API)]] 函数库来充分利用拥有 uvd2(第二代通用视频解码单元)芯片组的视频加速功能。
  
{{注意|使用 {{ic|catalyst-test}} 或者 {{ic|catalyst-total}} 时不需要安装 {{AUR|xvba-video}} , 因为有已经创建好的符号链接代替.}}
+
{{注意|使用 {{ic|catalyst-test}} 或者 {{ic|catalyst-total}} 时不需要安装 {{AUR|xvba-video}}{{Broken package link|{{aur-mirror|xvba-video}}}},因为有已经创建好的符号链接代替。}}
xvba-video和支持XvBA的软件仍还在开发,'''但在大多数情况下它都能很好的工作'''. 通过AUR构建(或通过Vi0L0的仓库直接安装)专有{{AUR|xvba-video}}包,若这个版本对你来说有问题,用{{AUR|libva-xvba-driver}}取代; 并安装{{AUR|mplayer-vaapi}} and {{Pkg|libva}}。然后将视频播放器的视频输出设置为vaapi:gl:
+
xvba-video 和支持 XvBA 的软件仍还在开发,'''但在大多数情况下它都能很好的工作'''。 通过 AUR 构建(或通过 Vi0L0 的仓库直接安装)专有 {{AUR|xvba-video}}{{Broken package link|{{aur-mirror|xvba-video}}}} 包,若这个版本对你来说有问题,用 {{AUR|libva-xvba-driver}}{{Broken package link|{{aur-mirror|libva-xvba-driver}}}} 取代;并安装 {{AUR|mplayer-vaapi}} {{Pkg|libva}}。然后将视频播放器的视频输出设置为 "vaapi:gl":
  
 
  $ mplayer -vo vaapi:gl movie.avi
 
  $ mplayer -vo vaapi:gl movie.avi
  
此选项可添加到mplayer的配置文件,参考[[MPlayer]]。
+
此选项可添加到 mplayer 的配置文件,参考 [[MPlayer]]。
  
针对 '''smplayer''':
+
针对 '''smplayer'''
  
 
  Options → Preferences → General → Video (tab) → Output driver: User Defined : vaapi:gl
 
  Options → Preferences → General → Video (tab) → Output driver: User Defined : vaapi:gl
Line 487: Line 465:
 
  Options → Preferences → Performance → Threads for decoding: '''1''' (to turn off -lavdopts parameter)
 
  Options → Preferences → Performance → Threads for decoding: '''1''' (to turn off -lavdopts parameter)
  
{{注意|如果启用了Tear Free Desktop,则按下列步骤:
+
{{注意|如果启用了 Tear Free Desktop,则按下列步骤:
 
  Options -> Preferences -> General -> Video (tab) -> Output driver: vaapi
 
  Options -> Preferences -> General -> Video (tab) -> Output driver: vaapi
若视频输出中没有'''vaapi:gl'''选项 - 可使用:
+
若视频输出中没有 '''vaapi:gl''' 选项,可使用 '''vaapi''''''vaapi:gl2''' 或简单的 '''xv(0 - AMD Radeon [[wikipedia:Avivo|AVIVO Video]])'''
'''vaapi''', '''vaapi:gl2''' or 简单的 '''xv(0 - AMD Radeon [[wikipedia:Avivo|AVIVO Video]])'''.
 
 
}}
 
}}
  
针对 '''VLC''':
+
针对 '''VLC'''
  
 
  Tools → Preferences → Input & Codecs → Use GPU accelerated decoding
 
  Tools → Preferences → Input & Codecs → Use GPU accelerated decoding
  
它有助于在'''amdcccle'''中启用v-sync:
+
它有助于在 '''amdcccle''' 中启用 v-sync:
  
 
  3D → More Settings → Wait for vertical refresh = Always On
 
  3D → More Settings → Wait for vertical refresh = Always On
  
{{注意|若使用'''Compiz/KWin''',消除'''画面抖动'''的唯一方法就是切换至'''全屏'''并且 '''关闭Redirected Fullscreen'''。
+
{{注意|若使用 '''Compiz/KWin''',消除'''画面抖动'''的唯一方法就是切换至'''全屏'''并且'''关闭 Redirected Fullscreen'''。
  
使用'''compiz''',需在ccsm的General Options中设置'''Redirected Direct Rendering'''。若此举无效,则将其关闭。'''KWin'''默认关闭此功能,若出现画面抖动则通过{{ic|System Settings}} → {{ic|Desktop Effects}} → {{ic|Advanced}}.}}将"Suspend desktop effects for fullscreen windows"开启或关闭。}}
+
使用 '''compiz''',需在 CCSM 的 General Options 中设置 '''Redirected Direct Rendering'''。若此举无效,则将其关闭。'''KWin''' 默认关闭此功能,若出现画面抖动则通过{{ic|System Settings}} → {{ic|Desktop Effects}} → {{ic|Advanced}} 将 "Suspend desktop effects for fullscreen windows" 开启或关闭。}}
  
=== 显卡/显存频率, 温度, 风扇转速, 超频工具 ===
+
=== 显卡/显存频率,温度,风扇转速,超频工具 ===
  
{{ic|$ aticonfig --od-getclocks}}可以获知当前显卡/显存频率。
+
{{ic|$ aticonfig --od-getclocks}} 可以获知当前显卡/显存频率。
  
{{ic|$ aticonfig --pplib-cmd "get fanspeed 0"}}可以获知风扇转速(显卡);
+
{{ic|$ aticonfig --pplib-cmd "get fanspeed 0"}} 可以获知风扇转速(显卡);
  
{{ic|$ aticonfig --odgt}}可以获知显卡温度。
+
{{ic|$ aticonfig --odgt}} 可以获知显卡温度。
  
{{ic|$ aticonfig --pplib-cmd "set fanspeed 0 50"}}可以设置风扇转速,其中查询索引50代表速度百分比。
+
{{ic|$ aticonfig --pplib-cmd "set fanspeed 0 50"}} 可以设置风扇转速,其中查询索引 50 代表速度百分比。
  
若超频或与之相反,则使用图形工具反而相对容易些,如需要qt的'''ATi Overclocking Utility'''。你可以从[http://kde-apps.org/content/show.php/ATI+Overclock?content=47796 这儿]找到(不过它可能过时了).
+
若超频或与之相反,则使用图形工具反而相对容易些,如需要 qt 的 '''ATi Overclocking Utility'''。你可以从[http://kde-apps.org/content/show.php/ATI+Overclock?content=47796 这儿]找到(不过它可能过时了)。
  
更复杂的{{AUR|amdoverdrivectrl}}也能达到此目的,它的主页是[http://sourceforge.net/projects/amdovdrvctrl here]。可通过[https://aur.archlinux.org/packages.php?ID=45298 AUR]或Vi0L0's非官方软件库构建安装包。
+
更复杂的 {{AUR|amdoverdrivectrl}} 也能达到此目的,它的主页是[http://sourceforge.net/projects/amdovdrvctrl 这里]。可通过 [https://aur.archlinux.org/packages.php?ID=45298 AUR] 或 Vi0L0 的非官方软件库构建安装包。
  
 
=== 双屏显示 ===
 
=== 双屏显示 ===
Line 523: Line 500:
 
==== 介绍 ====
 
==== 介绍 ====
  
{{警告|由于安装方式的不同,并且每种安装方式需要与其相对应进行配置,因此设置双屏显示并没有特定的方法,你必须根据你自己的需要采用相应的步骤。当然可以多尝试几种方法。'''所以,在修改之前,请务必将你现在能正常使用的{{ic|/etc/X11/xorg.conf}}备份,以便遇到问题时可以从命令行恢复.'''}}
+
{{警告|由于安装方式的不同,并且每种安装方式需要与其相对应进行配置,因此设置双屏显示并没有特定的方法,你必须根据你自己的需要采用相应的步骤。当然可以多尝试几种方法。'''所以,在修改之前,请务必将你现在能正常使用的 {{ic|/etc/X11/xorg.conf}} 备份,以便遇到问题时可以从命令行恢复。'''}}
  
* 本节讲述如何配置"BIG Desktop"效果。主要是不同尺寸的屏幕如何通过两个不同的输出接口(DVI + HDMI)共享一个显卡。
+
* 本节讲述如何配置 "BIG Desktop" 效果。主要是不同尺寸的屏幕如何通过两个不同的输出接口 (DVI + HDMI) 共享一个显卡。
  
* Xinerama解决办法有些不便,尤其是不能与XrandR兼容。因为XrandR对于我们所讲的来说是必须的,所以不使用Xinerama。
+
* Xinerama 解决办法有些不便,尤其是不能与 XrandR 兼容。因为 XrandR 对于我们所讲的来说是必须的,所以不使用 Xinerama。
  
* 双头显示能让你有两个不同的会话(一个屏幕一个)。你可以随心所欲地干任何事情,但不能将窗口从一个屏幕移动到另一个屏幕。若只有一个屏幕,你得在Xorg会话里为Server Layout section的每个会话定义鼠标,具体方法查看:
+
* 双头显示能让你有两个不同的会话(一个屏幕一个)。你可以随心所欲地干任何事情,但不能将窗口从一个屏幕移动到另一个屏幕。若只有一个屏幕,你得在 Xorg 会话里为 Server Layout section 的每个会话定义鼠标,具体方法查看:
  
 
[http://support.amd.com/us/kbarticles/Pages/1105-HowCanIConfigureMultip.aspx ATI Documentation]
 
[http://support.amd.com/us/kbarticles/Pages/1105-HowCanIConfigureMultip.aspx ATI Documentation]
Line 535: Line 512:
 
==== ATI Catalyst Control Center ====
 
==== ATI Catalyst Control Center ====
  
ATI的图形工具非常有用,我们将尽可能地使用它。运行下面命令可启用它:
+
ATI 的图形工具非常有用,我们将尽可能地使用它。运行下面命令可启用它:
  
 
  $ {kdesu/gksu} amdcccle
 
  $ {kdesu/gksu} amdcccle
  
{{警告|'''千万不要'''直接使用sudo。 Sudo虽能给予管理员权限,却使用用户账户的信息(如环境变量)。GNOME下使用''gksu'',KDE下使用''kdesu''。}}
+
{{警告|'''千万不要'''直接使用 sudo。 Sudo 虽能给予管理员权限,却使用用户账户的信息(如环境变量)。GNOME 下使用''gksu'',KDE 下使用''kdesu''。}}
  
 
==== 安装 ====
 
==== 安装 ====
  
开始之前,确保你的硬件接插正确,电源开启,而且你得你的硬件属性(2D还是3D屏,屏幕尺寸,刷新率等)。通常情况下,在启动阶段两个显示器都会被识别却不需正确区分先后顺序,而是依赖热插拔功能。尤其在不使用({{ic|/etc/X11/xorg.conf}})配置时。
+
开始之前,确保你的硬件接插正确,电源开启,而且你得你的硬件属性(2D 还是 3D 屏,屏幕尺寸,刷新率等)。通常情况下,在启动阶段两个显示器都会被识别却不需正确区分先后顺序,而是依赖热插拔功能。尤其在不使用 ({{ic|/etc/X11/xorg.conf}}) 配置时。
  
首先要让你的桌面环境和X认识你的显示器。为此,要为你两个显示器生成基本的Xorg配置文件:
+
首先要让你的桌面环境和 X 认识你的显示器。为此,要为你两个显示器生成基本的 Xorg 配置文件:
  
 
  # aticonfig --initial --desktop-setup=horizontal --overlay-on=1
 
  # aticonfig --initial --desktop-setup=horizontal --overlay-on=1
Line 553: Line 530:
 
  # aticonfig --initial=dual-head --screen-layout=left
 
  # aticonfig --initial=dual-head --screen-layout=left
  
{{注意|{{ic|overlay}}非常重要,因为它能让两个显示器拥有1种(多种)像素。
+
{{注意|{{ic|overlay}} 非常重要,因为它能让两个显示器拥有 1 种(多种)像素。
{{提示|运行{{ic|aticonfig --help}}了解所有可用的命令。}}
+
{{提示|运行 {{ic|aticonfig --help}} 了解所有可用的命令。}}
  
现在可编辑基本的Xorg配置文件(如:添加分辨率)。分辨率一定要正确,尤其是使用不同尺寸的显示器。分辨率在"Screen" section:
+
现在可编辑基本的 Xorg 配置文件(如:添加分辨率)。分辨率一定要正确,尤其是使用不同尺寸的显示器。分辨率在 "Screen" section:
  
 
   SubSection "Display"
 
   SubSection "Display"
Line 563: Line 540:
 
   EndSubSection
 
   EndSubSection
  
这以后就不需手动编辑{{ic|xorg.conf}},而ATI的图形化工具。重启X,确保正确支持两个显示器和识别屏幕分辨率(两个屏幕相互独立而不是完全一样。
+
这以后就不需手动编辑 {{ic|xorg.conf}},而使用 ATI 的图形化工具。重启 X,确保正确支持两个显示器和识别屏幕分辨率(两个屏幕相互独立而不是完全一样)。
  
 
==== 设置 ====
 
==== 设置 ====
  
现在只需以root身份启动ATI控制中心,在显示菜单设置你需要的选项(下拉菜单中的小箭头)。设置好后重启X就大功造成(你和我都可松口气了,这段翻译有点难度,呵呵)!
+
现在只需以 root 身份启动 ATI 控制中心,在显示菜单设置你需要的选项(下拉菜单中的小箭头)。设置好后重启 X 就大功告成了!
  
重启X之前,不要忘了核实{{ic|xorg.conf}}。主要是核实"Display"下的"Screen"节, 在"Virtual"行里,两个显示器的分辨率应该一样。"Server Layout"节则是剩下的参数。
+
重启 X 之前,不要忘了核实 {{ic|xorg.conf}}。主要是核实 "Display" 下的 "Screen" 节,在 "Virtual" 行里,两个显示器的分辨率应该一样。"Server Layout" 节则是剩下的参数。
  
 
== 卸载 ==
 
== 卸载 ==
  
你可能会因为catalyst不工作或者是想试试开源驱动而要卸载掉catalyst:移除 {{ic|catalyst}} 和 {{ic|catalyst-utils}} 包. 当然你也应该移除 {{AUR|catalyst-generator}}, {{AUR|catalyst-hook}} 和 {{AUR|lib32-catalyst-utils}} 包(如果你安装了的话).
+
你可能会因为 catalyst 不工作或者是想试试开源驱动而要卸载掉 catalyst:移除 {{ic|catalyst}} 和 {{ic|catalyst-utils}} 包。当然你也应该移除 {{AUR|catalyst-generator}}{{AUR|catalyst-hook}} 和 {{AUR|lib32-catalyst-utils}} 包(如果你安装了的话)。
  
 
{{警告|
 
{{警告|
*你也许需要使用 {{ic|# pacman -Rdd}} 来移除 {{AUR|catalyst-utils}} (和/或 {{AUR|lib32-catalyst-utils}}) 因为它(们)包含了 ''gl'' 相关文件,许多包会依赖他们. 这些依赖关系将在安装{{Pkg|xf86-video-ati}}时被满足.
+
*你也许需要使用 {{ic|# pacman -Rdd}} 来移除 {{AUR|catalyst-utils}}(和/或 {{AUR|lib32-catalyst-utils}})因为它(们)包含了''图形库''相关文件,许多包会依赖他们。这些依赖关系将在安装 {{Pkg|xf86-video-ati}} 时被满足。
*你也许会需要移除 {{ic|/etc/profile.d/ati-flgrx.sh}} 和 {{ic|/etc/profile.d/lib32-catalyst}} (如果他们存在), 否则 {{ic|r600_dri.so}} 将会载入失败,你将得不到3D支持.}}
+
*你也许会需要移除 {{ic|/etc/profile.d/ati-flgrx.sh}} 和 {{ic|/etc/profile.d/lib32-catalyst}}(如果他们存在),否则 {{ic|r600_dri.so}} 将会载入失败,你将得不到3D支持。}}
  
{{注意|你应该从 {{ic|/etc/pacman.conf}} 移除非官方仓库,然后运行 {{ic|# pacman -Syu}}, 因为那些仓库包含过时的Xorg包(为了兼容{{ic|catalyst}}),而 {{Pkg|xf86-video-ati}} 包需要来自[[Official repositories|官方仓库]]的最新的Xorg包.}}
+
{{注意|你应该从 {{ic|/etc/pacman.conf}} 移除非官方仓库,然后运行 {{ic|# pacman -Syu}},因为那些仓库包含过时的 Xorg 包(为了兼容 {{ic|catalyst}}),而 {{Pkg|xf86-video-ati}} 包需要来自[[Official repositories (简体中文)|官方仓库]]的最新的 Xorg 包。}}
  
按如下步骤:
+
按如下步骤:
  
* 如果你有 {{ic|/etc/modprobe.d/blacklist-radeon.conf}} ,删除文件或者注释掉文件中的{{ic|blacklist radeon}}.
+
* 如果你有 {{ic|/etc/modprobe.d/blacklist-radeon.conf}},删除文件或者注释掉文件中的 {{ic|blacklist radeon}}
* 如果你在 {{ic|/etc/modules-load.d}} 下有配置文件要在启动时载入 {{ic|fglrx}} 模块, 删除掉或者注释掉 {{ic|fglrx}} 那一行.
+
* 如果你在 {{ic|/etc/modules-load.d}} 下有配置文件要在启动时载入 {{ic|fglrx}} 模块,删除掉或者注释掉 {{ic|fglrx}} 那一行。
* 记住删除/备份 {{ic|/etc/X11/xorg.conf}}.
+
* 记住删除/备份 {{ic|/etc/X11/xorg.conf}}
* 如果安装了 {{AUR|catalyst-hook}} 包,记得关掉它的systemd服务的自启动.
+
* 如果安装了 {{AUR|catalyst-hook}} 包,记得关掉它的 systemd 服务的自启动。
* 如果你在 [[kernel parameters|内核参数]] 中指定了{{ic|nomodeset}}而现在你打算使用KMS,那么删除{{ic|nomodeset}}.
+
* 如果你在[[kernel parameters|内核参数]]中指定了 {{ic|nomodeset}} 而现在你打算使用 KMS,那么删除 {{ic|nomodeset}}
  
 
* 安装另一个驱动之前记得'''重启''' .
 
* 安装另一个驱动之前记得'''重启''' .
Line 593: Line 570:
 
== 故障排除 ==
 
== 故障排除 ==
  
若能启动到命令行,问题很可能出在{{ic|/etc/X11/xorg.conf}}
+
若能启动到命令行,问题很可能出在 {{ic|/etc/X11/xorg.conf}}
  
可阅读{{ic|/var/log/Xorg.0.log}}或通过下列命令查找线索:
+
可阅读 {{ic|/var/log/Xorg.0.log}} 或通过下列命令查找线索:
  
 
  $ grep '(EE)' /var/log/Xorg.0.log
 
  $ grep '(EE)' /var/log/Xorg.0.log
 
  $ grep '(WW)' /var/log/Xorg.0.log
 
  $ grep '(WW)' /var/log/Xorg.0.log
  
若看不懂显示的是什么东东,请先搜索论坛,没有结果的话,可将其提交到[https://bbs.archlinux.org/viewtopic.php?pid=1166052#p1166052/ thread specific to ATI/AMD],注意要提交两者显示的信息。
+
如果不能理解输出的内容,请先搜索论坛,没有结果的话,可将其提交到[https://bbs.archlinux.org/viewtopic.php?pid=1166052#p1166052/ 这里],注意要提交两者显示的信息。
  
 
=== 运行 atieventsd.service 失败 ===
 
=== 运行 atieventsd.service 失败 ===
从 [[official repositories_(简体中文)|官方仓库]] 安装 {{Pkg|acpid}}. 启用并运行acpid[[Daemon_(简体中文)|守护进程]].
+
从[[official repositories_(简体中文)|官方仓库]]安装 {{Pkg|acpid}}.启用并运行 acpid [[Daemon_(简体中文)|守护进程]]
  
如果还不行, 编辑 {{ic|/usr/lib/systemd/system/atieventsd.service}} ,把 {{ic|acpid.socket}} 改成 {{ic|acpid.service}}.
+
如果还不行,编辑 {{ic|/usr/lib/systemd/system/atieventsd.service}},把 {{ic|acpid.socket}} 改成 {{ic|acpid.service}}
  
 
=== 无法打开 fglrx_dri.so ===
 
=== 无法打开 fglrx_dri.so ===
Line 614: Line 591:
  
 
=== 启动 GDM 失败 ===
 
=== 启动 GDM 失败 ===
降级 {{pkg|xorg-server}} 或者试试其它 [[Display manager_(简体中文)|显示管理器]] 比如 [[LightDM]].
+
降级 {{pkg|xorg-server}} 或者试试其它[[Display manager_(简体中文)|显示管理器]]比如 [[LightDM]]
  
 
=== 在Wine上3D应用冻结 ===
 
=== 在Wine上3D应用冻结 ===
若在Wine上3D应用挂起,禁用TLS。使用{{ic|aticonfig}}或编辑{{ic|/etc/X11/xorg.conf}}。使用{{ic|aticonfig}}:
+
若在Wine上3D应用挂起,禁用TLS。使用 {{ic|aticonfig}} 或编辑 {{ic|/etc/X11/xorg.conf}}。使用 {{ic|aticonfig}}
  
 
  # aticonfig --tls=off
 
  # aticonfig --tls=off
  
或以root身份打开{{ic|/etc/X11/xorg.conf}},在''Device''段添加{{ic|Option "UseFastTLS" "off"}}。
+
或以 root 身份打开 {{ic|/etc/X11/xorg.conf}},在 ''Device'' 段添加 {{ic|Option "UseFastTLS" "off"}}。
  
只需来个二选一,然后重启X让其生效。
+
只需选择其中一种方式,然后重启 X 让其生效。
  
 
=== 视频颜色不正常 ===
 
=== 视频颜色不正常 ===
  
仍然使用{{ic|vaapi:gl}}来防止画面抖动,但这样不会有视频加速:
+
仍然使用 {{ic|vaapi:gl}} 来防止画面抖动,但这样不会有视频加速:
  
* 不使用{{ic|-vo vaapi}}运行'''mplayer'''。
+
* 不使用 {{ic|-vo vaapi}} 运行 '''mplayer'''。
  
* 若是'''smplayer''',在Options → Preferences → Advanced → Options for MPlayer → Options:中删除{{ic|-vo vaapi}}。
+
* 若是 '''smplayer''',在 Options → Preferences → Advanced → Options for MPlayer → Options:中删除 {{ic|-vo vaapi}}。
  
此后还可以启动'''smplayer'''的截屏功能。
+
此后还可以启动 '''smplayer''' 的截屏功能。
  
 
=== KWin 与混成 ===
 
=== KWin 与混成 ===
  
根据你的显卡,在OpenGL和XRender渲染方式中选择一种更快的。
+
根据你的显卡,在 OpenGL 和 XRender 渲染方式中选择一种更快的。
在某些情况下,XRender还可以解决一些人为的错误(比如调整命令行大小)。
+
在某些情况下,XRender 还可以解决一些人为的错误(比如调整命令行大小)。
  
=== 重启或启动x后,黑屏并且一直不退出 ===
+
=== 重启或启动 X 后,黑屏并且一直不退出 ===
  
检查在启动加载器的内核参数行是否添加了{{ic|nomodeset}}(参考 [[#禁用KMS]])。
+
检查在启动加载器的内核参数行是否添加了 {{ic|nomodeset}}(参考 [[#禁用内核级显示模式设置]])。
你如果在使用legacy驱动 ({{ic|catalyst-hd234k}}) 黑屏的话, 尝试降级 xorg-server 到 1.12 (使用 [[#xorg112]] 库).
+
你如果在使用 legacy 驱动 ({{ic|catalyst-hd234k}}) 黑屏的话, 尝试降级 xorg-server 到 1.12(使用 [[#xorg112]] 库)。
  
==== 错误的ACPI硬件调用 ====
+
==== 错误的 ACPI 硬件调用 ====
  
出现此种错误很可能是fglrx模块与系统的ACPI硬件调用配合不够默契而自身禁用,屏幕也就不会有输出。
+
出现此种错误很可能是 fglrx 模块与系统的 ACPI 硬件调用配合不够默契而自身禁用,屏幕也就不会有输出。
  
果真那样,运行:
+
如果是那样的话,运行:
  
 
  $ aticonfig --acpi-services=off
 
  $ aticonfig --acpi-services=off
  
=== 注销后KDM消失 ===
+
=== 注销后 KDM 消失 ===
  
若使用Catalyst,当注销后你会获取tty1这个控制台而不是KDM的欢迎界面。每次注销后你必须让kdm重启X服务器. 将标题为{{ic|[X-:*-Core]}}段里下面行前的注释删掉:
+
若使用 Catalyst,当注销后你会获取 tty1 这个控制台而不是 KDM 的欢迎界面。每次注销后你必须让 kdm 重启 X 服务器。将标题为 {{ic|[X-:*-Core]}} 段里下面行前的注释删掉:
  
 
  {{hc|/usr/share/config/kdm/kdmrc|2=
 
  {{hc|/usr/share/config/kdm/kdmrc|2=
Line 663: Line 640:
 
   
 
   
  
当前注销KDE后KDM就会出现。
+
当前注销 KDE 后 KDM 就会出现。
  
 
=== 直接渲染无效 ===
 
=== 直接渲染无效 ===
  
{{警告|在安装或升级catalyst后却没重启系统,也有可能出现此种错误,因为系统需要加载fglrx.ko模块来让驱动正常工作。}}
+
{{警告|在安装或升级 catalyst 后却没重启系统,也有可能出现此种错误,因为系统需要加载 fglrx.ko 模块来让驱动正常工作。}}
若直接渲染有问题,运行:
+
若直接渲染有问题,运行:
  
 
  $ LIBGL_DEBUG=verbose glxinfo > /dev/null
 
  $ LIBGL_DEBUG=verbose glxinfo > /dev/null
Line 674: Line 651:
 
从此命令输出的第一行至末尾都与直接渲染无效有关,且非常详细。
 
从此命令输出的第一行至末尾都与直接渲染无效有关,且非常详细。
  
常见错误提示和解决办法:
+
常见错误提示和解决办法:
  
 
  libGL error: XF86DRIQueryDirectRenderingCapable returned false
 
  libGL error: XF86DRIQueryDirectRenderingCapable returned false
  
* Ensure that you are loading the correct agp modules for your AGP chipset before you load the {{ic|fglrx}} kernel module. To determine which agp modules you will need, run {{ic|# hwdetect --show-agp}}. Then open your {{ic|/etc/modules-load.d/fglrx.conf}} and add the agp module on a line '''before''' the {{ic|fglrx}} line.
+
* 若使用 AGP 的芯片组,确保加载 fglrx 模块之前加载正确的 agp 模块。要确定哪些 agp 模块,运行 {{ic|hwdetect --show-agp}},然后打开 {{ic|/etc/modules-load.d/fglrx.conf}},将 agp 模块添加到 fglrx '''之前'''。
* 若使用AGP的芯片组,确保加载fglrx模块之前加载正确的agp模块。要确定哪些agp模块,运行{{ic|hwdetect --show-agp}},然后打开{{ic|/etc/modules-load.d}}下的{{ic|fglrx.conf}},将agp模块添加到fglrx行'''之前'''。
 
  
 
  libGL error: failed to open DRM: Operation not permitted
 
  libGL error: failed to open DRM: Operation not permitted
Line 689: Line 665:
 
  libGL error: unable to find driver: fglrx_dri.so
 
  libGL error: unable to find driver: fglrx_dri.so
  
* 某些软件未正确安装。在错误提示中,若路径为{{ic|/usr/X11R6/lib/modules/dri/fglrx_dri.so}},彻底注销,然后重新登录。若使用图形化的登录管理器(gdm, kdm, xdm),确保每次登录时{{ic|/etc/profile}}都会被读取。将{{ic|source /etc/profile}}添加到{{ic|~/.xsession}}或{{ic|~/.xinitrc}}通过都达到以上目的(不同的登录管理器修改的文件不一样)。
+
* 某些软件未正确安装。在错误提示中,若路径为 {{ic|/usr/X11R6/lib/modules/dri/fglrx_dri.so}},彻底注销,然后重新登录。若使用图形化的登录管理器 (gdm, kdm, xdm),确保每次登录时 {{ic|/etc/profile}} 都会被读取。将 {{ic|source /etc/profile}} 添加到 {{ic|~/.xsession}} 或 {{ic|~/.xinitrc}} 通过都达到以上目的(不同的登录管理器修改的文件不一样)。
  
* 若路径为{{ic|/usr/lib/xorg/modules/dri/fglrx_dri.so}},试着重装{{AUR|catalyst}}包。
+
* 若路径为 {{ic|/usr/lib/xorg/modules/dri/fglrx_dri.so}},试着重装 {{AUR|catalyst}} 包。
  
若错误信息为:
+
若错误信息为:
  
 
  fglrx: libGL version undetermined - OpenGL module is using glapi fallback
 
  fglrx: libGL version undetermined - OpenGL module is using glapi fallback
  
可能是因为系统装了多个版本的{{ic|libGL.so}}.下面的命令应该得到这样的回显:
+
可能是因为系统装了多个版本的 {{ic|libGL.so}}。下面的命令应该得到这样的回显:
  
 
{{hc|$ locate libGL.s|
 
{{hc|$ locate libGL.s|
Line 705: Line 681:
 
/usr/lib/libGL.so.1.2}}
 
/usr/lib/libGL.so.1.2}}
  
系统应只有3个libGL.so文件,若不止(例如{{ic|/usr/X11R6/lib/libGL.so.1.2}}),则将其删除。
+
系统应只有 3 个 libGL.so 文件,若不止(例如 {{ic|/usr/X11R6/lib/libGL.so.1.2}}),则将其删除。
  
若使用X11R7且系统中有下列文件,系统并不会给出任何错误提示,一定要将他们删除:
+
若使用 X11R7 且系统中有下列文件,系统并不会给出任何错误提示,一定要将他们删除:
  
 
  /usr/X11R6/lib/libGL.so.1.2
 
  /usr/X11R6/lib/libGL.so.1.2
Line 716: Line 692:
 
==== 视频播放不能从休眠状态中恢复 ====
 
==== 视频播放不能从休眠状态中恢复 ====
  
若启动了framebuffer,Catalyst不能从挂机状态中恢复。在[[kernel parameters|内核参数]]中添加 {{ic|1=vga=0}} 可禁用framebuffer。
+
若启动了 framebuffer,Catalyst 不能从挂机状态中恢复。在[[Kernel parameters (简体中文)|内核参数]]中添加 {{ic|1=vga=0}} 可禁用 framebuffer。
  
其他加载器,参考[[#禁用KMS]]。
+
对于其他启动加载器,参考 [[#禁用内核级显示模式设置]]。
  
 
=== 系统冻结或硬件锁死 ===
 
=== 系统冻结或硬件锁死 ===
  
* 过去,{{ic|radeonfb}}的framebuffer驱动很容易导致这个问题。若内核编译时启用对radeonfb的支持,应换内核看是否能解决此问题。
+
* 过去,{{ic|radeonfb}} 的 framebuffer 驱动很容易导致这个问题。若内核编译时启用对 radeonfb 的支持,应该更换内核看是否能解决此问题。
  
* 若退出桌面环境(关机、挂机和切换到tty等)时系统冻结,很可能忘记禁用KMS。(参见 [[#禁用KMS]])
+
* 若退出桌面环境(关机、挂机和切换到 tty 等)时系统冻结,很可能是忘记禁用 KMS。(参见 [[#禁用内核级显示模式设置]]
  
 
=== 硬件冲突 ===
 
=== 硬件冲突 ===
  
当和某些版本的nForce3芯片组一起使用时,Radeon不能3D加速。目前虽还未找到具体原因,但有资料表明: indicate that it may be possible to get acceleration with this combination of hardware by booting  with the drivers from 先用nVIDIA驱动启动到Windows然后再重启系统就可能获得3D加速。在root控制台使用下列命令可识别此问题(会得到与下列相似(使用基于nForce3系统)的输出:):
+
当和某些版本的 nForce3 芯片组一起使用时,Radeon 显卡没有 3D 加速。目前虽还未找到具体原因,但有资料表明,先启动到 Windows 然后再重启系统就可能可以从 nVIDIA 驱动获得 3D 加速。在 root 控制台使用下列命令可识别此问题(会得到与下列相似(使用基于 nForce3 系统)的输出):
  
 
{{hc|<nowiki>$ dmesg | grep agp</nowiki>|
 
{{hc|<nowiki>$ dmesg | grep agp</nowiki>|
Line 736: Line 712:
 
}}
 
}}
  
或者还有下面的命令得到如下的回显:
+
或者还有下面的命令得到如下的回显:
  
 
  {{hc|<nowiki>$ tail -n 100 /var/log/Xorg.0.log | grep agp</nowiki>|
 
  {{hc|<nowiki>$ tail -n 100 /var/log/Xorg.0.log | grep agp</nowiki>|
 
  (EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_ENODEV"}}
 
  (EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_ENODEV"}}
  
则就有问题。
+
则表明有问题。
  
有些资料说在某些情形下降级主板的BIOS可能有助于解决问题,但注意此方法并不是在各种情况下都适用,而且'''方法不对则很可能让显卡报废。'''
+
有些资料表明在某些情形下降级主板的 BIOS 可能有助于解决问题,但注意此方法可能并不在各种情况下都适用,而且'''降级失败很可能让硬件报废,请谨慎。'''
  
参考[http://bugzilla.kernel.org/show_bug.cgi?id=6350 这个错误报告]。
+
参见[http://bugzilla.kernel.org/show_bug.cgi?id=6350 这个错误报告]。
  
 
=== 播放视频时系统短时间死机 ===
 
=== 播放视频时系统短时间死机 ===
  
使用Catalyst可导致此问题。
+
当用 mplayer,若不定时出现几秒到几分钟的死机。查看日志,若有与下面相似的信息:
 
 
当用mplayer,若不定时出现几秒到几分钟的死机。查看日志,若有与下面相似的信息:
 
  
 
{{hc|/var/log/messages.log|2=
 
{{hc|/var/log/messages.log|2=
Line 766: Line 740:
 
}}
 
}}
  
给内核参数添加{{ic|nopat}}和/或{{ic|nomodeset}}到[[kernel parameters|内核参数]]应该能行
+
给内核参数添加 {{ic|nopat}} 和/或 {{ic|nomodeset}} 到[[Kernel parameters (简体中文)|内核参数]]应该能解决问题。
  
 
=== "aticonfig: No supported adaptaters detected" ===
 
=== "aticonfig: No supported adaptaters detected" ===
Line 776: Line 750:
 
}}
 
}}
  
可以在{{ic|etc/X11/xorg.conf}}中设置device,或者复制以前的能工作的 {{ic|/etc/ati/control}} 文件 (推荐 - 这也能解决水印的问题),这可能让Catalyst正常工作.
+
可以在 {{ic|etc/X11/xorg.conf}} 中设置 device,或者复制以前的能工作的 {{ic|/etc/ati/control}} 文件(推荐 - 这也能解决水印的问题),这可能让 Catalyst 正常工作。
  
从AMD下载先前版本的fglrx,使用{{ic|--extract driver}}参数运行. 文件将提取到{{ic|driver/common/etc/ati/control}}. 用它覆盖原来的control文件后重启X. 你可以试试不同版本的.
+
从 AMD 下载先前版本的 fglrx,使用 {{ic|--extract driver}} 参数运行。文件将提取到 {{ic|driver/common/etc/ati/control}},用它覆盖原来的 control 文件后重启 X。你可以试试不同的版本。
  
设置型号的方法:在{{ic|/etc/X11/xorg.conf}}将device段设置为:
+
设置型号的方法:在 {{ic|/etc/X11/xorg.conf}} 将 device 段设置为:
  
 
{{hc|/etc/X11/xorg.conf|
 
{{hc|/etc/X11/xorg.conf|
Line 789: Line 763:
 
}}
 
}}
  
此处{{ic|****}}为设备型号(6870 for the HD 6870的显卡为6870,APU E-350为6310,通过网络是很容易查到的).
+
此处 {{ic|****}} 为设备型号(HD 6870 的显卡为 6870,APU E-350 为 6310,通过网络是很容易查到的)。
  
Xorg启动后很可能使用{{ic|amdcccle}}而不是{{ic|aticonfig}}。这里会有一个"AMD不支持硬件"水印。
+
Xorg 启动后很可能使用 {{ic|amdcccle}} 而不是 {{ic|aticonfig}}。这里会有一个“AMD不支持硬件”水印。
  
用下面脚本可将此水印删除:
+
用下面脚本可将此水印删除:
  
 
  #!/bin/sh
 
  #!/bin/sh
Line 803: Line 777:
 
然后重启。
 
然后重启。
  
=== 让chromium支持WebGL ===
+
=== 让 chromium 支持 WebGL ===
  
在Google的Chromium/Chrome浏览器里,Linux的Catalyst驱动被列入了黑名单。参见 [[Chromium#WebGL]] .
+
在 Google 的 Chromium/Chrome 浏览器里,Linux 的 Catalyst 驱动被列入了黑名单。参见 [[Chromium#WebGL]]
  
=== 用Adobe的flashplugin观看flash,画面迟滞或冻结 ===
+
=== 用 Adobe 的 flashplugin 观看 flash,画面迟滞或冻结 ===
  
编辑:
+
编辑:
  
 
{{hc|/etc/adobe/mms.cfg|2=
 
{{hc|/etc/adobe/mms.cfg|2=
Line 816: Line 790:
 
}}
 
}}
  
如果你使用KDE,请确保 系统设置->工作空间外观与行为->桌面效果->高级 里,"为全屏窗口挂起桌面特效" 没有勾选.
+
如果你使用 KDE,请确保 系统设置->工作空间外观与行为->桌面效果->高级 里,“为全屏窗口挂起桌面特效”没有勾选。
  
=== GNOME3中移动窗口延迟/很慢 ===
+
=== GNOME3 中移动窗口延迟/很慢 ===
你可以试试这么做,有报告称大多数情况下此方法有效。
+
你可以试试这么做,有报告称大多数情况下此方法有效。
  
将下面行添加到{{ic|~/.profile}}或{{ic|/etc/profile}}:
+
将下面行添加到 {{ic|~/.profile}} 或 {{ic|/etc/profile}}
  
 
  export CLUTTER_VBLANK=none
 
  export CLUTTER_VBLANK=none
  
重启X或操作系统。
+
重启 X 或操作系统。
  
=== 在1920x1080分辨率下不能全屏(欠扫描,屏幕周围有黑边) ===
+
=== 在 1920x1080 分辨率下不能全屏(欠扫描,屏幕周围有黑边) ===
  
这经常会在使用HDMI连接显示器/电视时发生.
+
这经常会在使用 HDMI 连接显示器/电视时发生。
  
这似乎是AMD/ATI为适应所有HDTV的一项新功能,可以在amdccle中调整.
+
这似乎是 AMD/ATI 为适应所有 HDTV 的一项新功能,可以在 amdccle 中调整。
  
使用amdcccle(图形界面)你可以选择要修改的显示输出,将欠扫描设置成0% (aticonfig默认15%欠扫描). (至少)版本14.10有时也会出现显示调整的下面没有欠扫描的滑块的情况.(It is possible as well that the underscan slider won't show under the display's adjustments, as sometimes in (at least) version 14.10.)
+
使用 amdcccle(图形界面)你可以选择要修改的显示输出,将欠扫描设置成 0%(aticonfig 默认 15% 欠扫描)。(至少)版本 14.10 有时也会出现显示调整的下面没有欠扫描的滑块的情况。(It is possible as well that the underscan slider won't show under the display's adjustments, as sometimes in (at least) version 14.10.)
  
这不是永久的配置,重启X,重启系统,挂起后唤醒甚至切换tty之后都会失效.
+
这不是永久的配置,重启 X,重启系统,挂起后唤醒甚至切换 tty 之后都会失效。
  
要使这成为永久配置的话,你需要以root身份在console下使用aticonfig来调整欠扫描设置,或者手动编辑 {{ic|/etc/ati/amdpcsdb}} (也是以root身份)
+
要使这成为永久配置的话,你需要以 root 身份在 console 下使用 aticonfig 来调整欠扫描设置,或者手动编辑 {{ic|/etc/ati/amdpcsdb}} (也是以 root 身份)
  
'''用aticonfig的方法:'''
+
'''用 aticonfig 的方法:'''
 
   
 
   
 
  # aticonfig --set-pcs-u32=MCIL,DigitalHDTVDefaultUnderscan,0
 
  # aticonfig --set-pcs-u32=MCIL,DigitalHDTVDefaultUnderscan,0
  
改变设置后重启.
+
改变设置后重启。
 
   
 
   
新版本的话(比如12.11), 要是ccc总不能保存过扫描设置,你可以试试:
+
新版本的话(比如 12.11),要是 ccc 总不能保存过扫描设置,你可以试试:
 
   
 
   
 
  # aticonfig --set-pcs-u32=MCIL,TVEnableOverscan,0
 
  # aticonfig --set-pcs-u32=MCIL,TVEnableOverscan,0
  
'''手动编辑/etc/ati/amdpcsdb的方法:'''
+
'''手动编辑 /etc/ati/amdpcsdb 的方法:'''
 
   
 
   
 
在 {{ic|[AMDPCSROOT/SYSTEM/MCIL]}} 之下的任意位置添加
 
在 {{ic|[AMDPCSROOT/SYSTEM/MCIL]}} 之下的任意位置添加
Line 855: Line 829:
 
  # DigitalHDTVDefaultUnderscan=V0
 
  # DigitalHDTVDefaultUnderscan=V0
  
新版本的话(比如12.11), 要是ccc总不能保存过扫描设置,你可以试试:
+
新版本的话(比如 12.11), 要是 ccc 总不能保存过扫描设置,你可以试试:
 
在 {{ic|[AMDPCSROOT/SYSTEM/MCIL]}} 之下找到这一行
 
在 {{ic|[AMDPCSROOT/SYSTEM/MCIL]}} 之下找到这一行
 
   
 
   
Line 864: Line 838:
 
  # TVEnableOverscan=V0
 
  # TVEnableOverscan=V0
  
改变设置后重启.
+
改变设置后重启。
 
   
 
   
{{note|也许你会发现,无论你怎么干,登录/注销/重启后, {{ic|/etc/ati/amdpcsdb}} 总是被覆写/还原, 于是你的修改就不见了 _(:з」∠)_.(You might find that the file /etc/ati/amdpcsdb will be overwritten and revert no matter what you do as user or as root even with log in/log out/reboot, ergo the modification will not stick.)
+
{{注意|也许你会发现,无论你怎么做,登录/注销/重启后,{{ic|/etc/ati/amdpcsdb}} 总是被覆写/还原,于是你的修改就丢失了。
所以你得在fgrlx没运行的时候改它.
+
所以你需要在 fglrx 没运行的时候改它。
可以试着重启进入什么不需要运行fgrlx的"安全模式"什么的,或者是直接进console模式}}
+
可以试着重启进入某些不需要运行 fglrx 的、直接启动到控制台的"安全模式"}}
 
   
 
   
'''应对措施:'''
+
'''应对措施:'''
要是因某些原因你不想动ATI的配置文件,你可以设置面板的位置与分辨率来规避问题
+
要是因某些原因你不想动 ATI 的配置文件,你可以设置面板的位置与分辨率来规避问题
以普通用户运行:
+
以普通用户运行:
 
   
 
   
 
  # aticonfig --set-dispattrib=DISPLAYTYPE,positionX:0
 
  # aticonfig --set-dispattrib=DISPLAYTYPE,positionX:0
Line 879: Line 853:
 
  # aticonfig --set-dispattrib=DISPLAYTYPE,sizeY:1080
 
  # aticonfig --set-dispattrib=DISPLAYTYPE,sizeY:1080
  
{{ic|DISPLAYTYPE}}代表你想改的显示器,比如"dfp9".
+
{{ic|DISPLAYTYPE}} 代表你想改的显示器,比如 "dfp9"
用如下命令获得你的 {{ic|DISPLAYTYPE}} :
+
用如下命令获得你的 {{ic|DISPLAYTYPE}}
  
 
  # xrandr --current
 
  # xrandr --current
  
如果没启用RandR的话,你可以用这个:
+
如果没启用 RandR 的话,你可以用这个:
 
   
 
   
 
  # aticonfig --query-monitor
 
  # aticonfig --query-monitor
  
也许需要用显示开关或 DISPLAY 变量来设置适当的显示/屏幕(比如 :0.1).
+
也许需要用显示开关或 DISPLAY 变量来设置适当的显示/屏幕(比如 :0.1)。
  
这将告诉你目前哪一个显示正连接着或断开着,以及它的详情
+
这将告诉你目前哪一个显示正连接着或断开着,以及它的详情
 
   
 
   
这个应对措施不是永久配置,不过是个让面板及上边内容看起来合适的方便快捷的方法
+
这个应对措施不是永久配置,不过是个让面板及上边内容看起来合适的方便快捷的方法
  
{{note|新版驱动不应再使用{{ic|<nowiki>aticonfig --set-pcs-val=MCIL,DigitalHDTVDefaultUnderscan,0</nowiki>}}, ATI声明过这已被弃用并即将被移除.}}
+
{{注意|新版驱动不应再使用 {{ic|<nowiki>aticonfig --set-pcs-val=MCIL,DigitalHDTVDefaultUnderscan,0</nowiki>}},ATI 声明过这已被弃用并即将被移除。}}
  
用 {{ic|<nowiki>aticonfig --help | grep set-pcs-val</nowiki>}} 来阅读ATI的说明.
+
用 {{ic|<nowiki>aticonfig --help | grep set-pcs-val</nowiki>}} 来阅读 ATI 的说明。
  
=== 双屏设置: 关于加速,OpenGL,合成,效能的一般问题 ===
+
=== 双屏设置:关于加速,OpenGL,合成,效能的一般问题 ===
试着禁用 xinerama 和 xrandr12. 如下:
+
试着禁用 xinerama 和 xrandr12。如下:
  
输入:
+
输入:
 
  # aticonfig --initial
 
  # aticonfig --initial
 
  # aticonfig --set-pcs-str="DDX,EnableRandR12,FALSE"
 
  # aticonfig --set-pcs-str="DDX,EnableRandR12,FALSE"
然后重启系统. 在 {{ic|/etc/X11/xorg.conf}} 中检查 xinerama 是不是被禁用了, 如果没有,禁用它,然后重启系统.( In /etc/X11/xorg.conf check that xinerama is disabled, if it's not disable it and reboot your system. )
+
然后重启系统。在 {{ic|/etc/X11/xorg.conf}} 中检查 xinerama 是不是被禁用了,如果没有,禁用它,然后重启系统。( In /etc/X11/xorg.conf check that xinerama is disabled, if it's not disable it and reboot your system. )
  
接下来运行{{ic|amdcccle}},如下: amdcccle→显示管理→多屏幕显示→以display(s) 2多屏显示桌面(amdcccle->display manager->multi-display->multidisplay desktop with display(s) 2. ).
+
接下来运行 {{ic|amdcccle}},在 amdcccle->display manager->multi-display->multidisplay desktop 中选择显示 2。
  
再次重启,再按你的想法设置显示.
+
再次重启,再按你的想法设置显示。
  
=== 禁用VariBright功能 ===
+
=== 禁用 VariBright 功能 ===
[http://support.hp.com/vn-en/document/c02848104 Vari-Bright] 动态调整显示面板用电量以节能.
+
[http://support.hp.com/vn-en/document/c02848104 Vari-Bright] 动态调整显示面板用电量以节能。
输入以下命令以禁用 VariBright:
+
输入以下命令以禁用 VariBright:
 
  # aticonfig --set-pcs-u32=MCIL,PP_UserVariBrightEnable,0
 
  # aticonfig --set-pcs-u32=MCIL,PP_UserVariBrightEnable,0
  
=== Hybrid/PowerXpress: 关掉独立GPU ===
+
=== Hybrid/PowerXpress:关掉独立 GPU ===
当你使用 {{AUR|catalyst-total-pxp}} 或 catalyst-utils-pxp 时,你也许会发现切换到集成GPU时,独立GPU仍在工作,又耗电又使得系统温度很高.
+
如果你使用支持 PowerXpress 的 Catalyst 软件包,你也许会发现切换到集显时,独显仍在工作,又耗电又使得系统温度很高。
  
对于集显是intel的话你可以通过 {{ic|vgaswitcheroo}} 来关掉独立GPU.
+
如果集显是 Intel 的话,你可以通过 {{ic|vgaswitcheroo}} 来关掉独立 GPU。
不过很不幸有些时候不行...
+
很不幸的是有些时候不行。
  
然后这时你可以试试 {{Pkg|acpi_call}}. MrDeepPurple准备好了脚本来完成这个任务.脚本在启动和恢复系统的时候通过systemd服务调用.
+
然后这时你可以试试 {{Pkg|acpi_call}}。MrDeepPurple 准备好了脚本来完成这个任务。脚本在启动和恢复系统的时候通过 systemd 服务运行。
这是他的脚本:
+
这是他的脚本:
 
  #!/bin/sh
 
  #!/bin/sh
 
  libglx=$(/usr/lib/fglrx/switchlibglx query)
 
  libglx=$(/usr/lib/fglrx/switchlibglx query)
Line 930: Line 904:
 
  fi
 
  fi
  
=== 从X会话切换到TTY黑屏/低分辨率TTY ===
+
=== 从 X 会话切换到 TTY 黑屏/低分辨率 TTY ===
接受这个"功能"吧,这出现在catalys 13.2 beta,解决方法是使用{{ic|1=vga=}}内核选项,比如{{ic|1=vga=792}}。
+
接受这个“功能”吧,这出现在 Catalyst 13.2 beta,解决方法是使用 {{ic|1=vga=}} 内核选项,比如 {{ic|1=vga=792}}。
 
使用
 
使用
 
  $ hwinfo --framebuffer
 
  $ hwinfo --framebuffer
 
来得到支持的分辨率列表
 
来得到支持的分辨率列表
选择最适合你的分辨率,粘贴到启动引导器的内核行,比如 {{ic|1=vga=0x03d4}}
+
选择最适合你的分辨率,粘贴到启动引导器的内核行,比如 {{ic|1=vga=0x03d4}}
  
=== 从X会话切换到TTY黑屏,背光并没有关闭 ===
+
=== 从 X 会话切换到 TTY 黑屏,背光并没有关闭 ===
使用 [[uvesafb]] 作为 framebuffer 驱动. 而且, {{ic|uvesafb}} 可以为 TTY 设置任意分辨率.
+
使用 [[uvesafb]] 作为 framebuffer 驱动。而且,{{ic|uvesafb}} 可以为 TTY 设置任意分辨率。
  
=== 切换TTY后切换回X会话时,只有一个带鼠标的黑屏 ===
+
=== 切换 TTY 后切换回 X 会话时,只有一个带鼠标的黑屏 ===
如果你遇到了这个bug的话,试着添加
+
如果你遇到了这个 bug 的话,试着添加
 
  Option      "XAANoOffscreenPixmaps" "true"
 
  Option      "XAANoOffscreenPixmaps" "true"
到你的 xorg.conf 的 'Device' 部分.
+
到你的 xorg.conf 的 'Device' 部分。
  
同时, 确认已安装有 [[Polkit#Authentication agents|polkit 认证代理]] 并正在运行, 因为这种情况可能会在某程序想要请求密码但没有认证代理来显示密码对话框时出现.
+
同时,确认已安装有 [[Polkit#Authentication agents|polkit 认证代理]]并正在运行,因为这种情况可能会在某程序想要请求密码但没有认证代理来显示密码对话框时出现。
  
=== 30 FPS / Tear-Free / V-Sync bug ===
+
=== 30 FPS / 防撕裂 / 垂直同步 bug ===
这个Bug发生于Catalyst 13.6 beta, 到现在(13.9)还没修复.
+
这个 Bug 发生于 Catalyst 13.6 beta,到现在 (13.9) 还没修复。
  
激活 "Tear Free"(防撕裂) 功能之后,所有新启动的OpenGL程序都出现延迟,常表现为只有30 FPS,复合桌面环境也是.("After enabling "Tear Free" functionality every freshly started OpenGL application is lagging, often generates only 30 FPS, it also touches composited desktop.")
+
激活 "Tear Free"(防撕裂)功能之后,所有新启动的 OpenGL 程序都出现延迟,常表现为只有 30 FPS,合成桌面环境也是。
  
M132找到一个解决方法.在 "AMD Catalyst Control Center" (amdcccle) 里完成这些操作:
+
M132 找到一个解决方法。在 "AMD Catalyst Control Center" (amdcccle) 里完成这些操作:
  
  1. 开启 Tear-Free, 这将设置 3D V-Sync 为"总是开启".
+
  1. 开启 Tear-Free,这将设置 3D V-Sync 为“总是开启”。
  2. 设置 3D V-Sync 为"总是关闭".
+
  2. 设置 3D V-Sync 为“总是关闭”。
  3. 确认 Tear-Free 仍为"开启".
+
  3. 确认 Tear-Free 仍为“开启”。
  4. 重启X/重登录.
+
  4. 重启 X/重登录。
  
这在KDE 4.11.x下有效.M132的建议: "试着关闭 "Detect refresh rate" ,并为复合插件("Composite plugin")指定显示器刷新率."
+
这在 KDE 4.11.x 下有效。M132 的建议:“试着关闭 "Detect refresh rate",并为合成器指定显示器刷新率。”
  
 
=== 背光调节不起效 ===
 
=== 背光调节不起效 ===
如果你的背光调节有问题, 你可以试试:
+
如果你的背光调节有问题,你可以试试:
 
  # aticonfig --set-pcs-u32=MCIL,PP_PhmUseDummyBackEnd,1
 
  # aticonfig --set-pcs-u32=MCIL,PP_PhmUseDummyBackEnd,1
一些用户报告说这导致FPS降低.要恢复默认的话:
+
一些用户报告说这导致 FPS 降低。要恢复默认的话:
 
  # aticonfig --set-pcs-u32=MCIL,PP_PhmUseDummyBackEnd,0
 
  # aticonfig --set-pcs-u32=MCIL,PP_PhmUseDummyBackEnd,0
 
[http://ati.cchtml.com/show_bug.cgi?id=711 更多信息见此]
 
[http://ati.cchtml.com/show_bug.cgi?id=711 更多信息见此]
  
===  使用 plasma 时 Chromium 出现毛刺(glitching) ===
+
===  使用 plasma 时 Chromium 出现 glitching ===
添加 --disable-gpu 参数来启动 chromium, 比如,对 /usr/share/applications/chromium.desktop, 改成这样:
+
添加 --disable-gpu 参数来启动 chromium,比如,对 /usr/share/applications/chromium.desktop,改成这样:
 
  # cat /usr/share/applications/chromium.desktop | grep -i exec
 
  # cat /usr/share/applications/chromium.desktop | grep -i exec
 
  Exec=chromium %U --disable-gpu
 
  Exec=chromium %U --disable-gpu
 +
 +
=== Xorg 崩溃 ===
 +
 +
==== 不支持的 Xorg 版本 ====
 +
 +
当 Linux 内核版本受支持而 Xorg 版本不受支持时,Xorg 也许会崩溃,而你可能会得到如此的错误信息:
 +
 +
(WW) fglrx: No matching Device section for instance (BusID PCI:0@0:17:0) found
 +
(...)
 +
/usr/bin/Xorg.bin: symbol lookup error: /usr/lib/xorg/modules/drivers/fglrx_drv.so: undefined symbol: GlxInitVisuals2D
 +
xinit: giving up
 +
xinit: unable to connect to X server: Connection refused
 +
xinit: server error
 +
 +
比如,fglrx 15.20.3 不支持 Xorg 1.17。
 +
 +
你应该降级你的 Xorg。[https://gist.github.com/anonymous/9ea8d3774f7afce3a605 这些步骤]可能会有用。
  
 
== 参见 ==
 
== 参见 ==

Latest revision as of 03:17, 30 August 2017

翻译状态: 本文是英文页面 AMD_Catalyst翻译,最后翻译时间:2016-05-17,点击这里可以查看翻译后英文页面的改动。

AMD 的显卡驱动有两种:一是官方私有驱动 (catalystAUR),二是开源驱动(较旧的显卡参见 ATI,较新的显卡参见 AMDGPU)。本文主要介绍私有驱动。

Warning: 官方仓库不再提供 Catalyst。 AMD 已经不再更新这个软件包,而且此软件包与最新的 Xorg 不兼容,需要先安装老的 Xorg 才能使用。

AMD 的 Linux 驱动软件包 catalyst 驱动曾被命名为 fglrx (FireGL and Radeon X)。现在虽然改变了软件包名称,但内核模块文件名依然为以前的 fglrx.ko。因此,下文中任何提及 fglrx 都是指内核模块,而不是指软件包.

与开源驱动相比,Catalyst 在 2D 上表现比较差,在 3D 上与开源驱动差不多,但缺乏高效的多显支持。Catalyst 支持芯片组 R600 及以上(Radeon HD 2xxx 或者更新)的 ATI/AMD Radeon 显卡。model 名称(如 X1900,HD4850)与 chip 名称(分别是R580,RV770)间的对照请参见 Xorg decoder ring 或者这个表格

Contents

安装

共有三种途径安装 Catalyst。第一种是用 Vi0L0(Arch非官方Catalyst维护人员)维护的软件库。此库包涵了所有可用的软件包。第二种方式就是通过AUR,Vi0L0 提供的 PKGBUILD 跟他用于构建他仓库的 PKGBUILD 完全一样。最后,你还可以直接通过 AMD 官方下载 Catalyst。

自 Catalyst 12.4,AMD 已将针对 Radeon HD 5xxx 和 Radeon HD 2xxx,3xxx 与 4xxx 显卡驱动分开开发,因此在你选择何种安装方式之前,应查看你的显卡型号。Radeon HD 2xxx,3xxx 和 4xxx 显卡用 legacy驱动,Radeon HD 5xxx(以及更新的)用普通 Catalyst。但无论你需要哪种驱动,都应安装 Catalyst utilities。

注意: 你会发现,每种安装方式都会进行的一些相同的操作,无论你采用哪种安装方式,你都应了解一些通用的安装说明。

安装 Catalyst

从非官方软件库

如果你不喜欢通过 AUR 来安装,则使用此方法。此软件库由我们的非官方 Catalyst 维护者 Vi0l0 维护。所有的包都经过签名,所以安全方面无需担心。下文提及的很多其他与 AMD 显卡有关的包也是由 Vi0L0 维护。

Vi0L0 有三个不同的 Catalyst 软件库:

  • catalyst:Radeon HD 5xxx 及更新的显卡使用的普通 Catalyst 驱动。包含了最新的 (稳定版或者 beta 版) Catalyst。
  • catalyst-stable:Radeon HD 5xxx 及更新的显卡使用的普通 Catalyst 驱动。包含了最新的稳定版 Catalyst。
  • catalyst-hd234k:Radeon HD 2xxx,3xxx 与 4xxx 显卡使用的 legacy Catalyst 驱动。

要启用上述软件库的话,参见 Unofficial user repositories (简体中文) 中所述方法。记得在 pacman.conf 中的其他软件库之前添加相应软件库。

注意: catalystcatalyst-stable 软件库的 URL 相同。若要启用 catalyst-stable ,步骤与启用 catalyst 相同,并在 pacman.conf 中将 [catalyst] 替换成 [catalyst-stable]。如果你需要某个旧版本,这儿也有并且 URL 也相同(比如 catalyst-stable-13.4)。
提示: 有时 catalyst.wirephire.com 因为超出带宽上限而不能提供下载(曾发生过这个问题),或者你到这个服务器的连接很慢,这时,你可以尝试另外的镜像服务器:[1](goll 提供,德国)。不过。这些服务器也不保证随时可用。

完成后更新 pacman 数据库并安装这些软件包(更多信息参见#工具):

  • catalyst-hook
  • catalyst-utils
  • catalyst-libgl
  • opencl-catalyst - 可选,OpenCL支持
  • lib32-catalyst-utils - 可选,64-bit系统上32-bit的OpenGL支持
  • lib32-catalyst-libgl - 可选,64-bit系统上32-bit的OpenGL支持
  • lib32-opencl-catalyst - 可选,64-bit系统上32-bit的OpenCL支持
注意: 如果 pacman 询问是否移除 libgl,尽管回答“是”。
警告: 软件包 catalyst 已从 Vi0L0 的仓库移除,catalyst-hook 取而代之。

通过 AUR 安装

还可以通过 AUR 安装。如果你需为你的电脑进行定制安装,则用此方法。此方法极为繁琐,因为它需要的工作量最大,而且每次内核更新后你得手动更新 Catalyst。

警告: 若通过 AUR 安装 Catalyst,每次内核更新你都得重新编译 Catalyst,否则 X 将不能启动。

在 Vi0L0 的软件库中提到的一切软件包在 AUR 中也可用:

AUR还提供些独家软件包。它含有被称为 Catalyst-total 的包和一些 beta 阶段的软件:

catalyst-totalAUR 包能让 AUR 用户更为方便。它能构建驱动、内核工具、32位内核工具和 catalyst-hookAUR(参见 #工具)。

配置驱动

安装完毕后,要配置 X,让其使用 Catalyst。要确保 fglrx 模块在启动阶段加载,而且要禁用内核级显示模式设置

配置 X

你需要创建 xorg.conf 文件来配置 X。Catalyst 提供了 aticonfig 工具来创建和(或)修改此文件。 通过访问 /etc/ati/amdpcsdb 文件它几乎能配置显卡的各项参数。了解完整的 aticonfig 配置选项可运行:

# aticonfig --help | less
警告: 在将各项配置参数提交到 /etc/X11/xorg.conf 之前使用 --output 选项,/etc/X11/xorg.conf.d 中的所有内容都会被覆盖。(Use the --output option before committing to /etc/X11/ as an xorg.conf file will override anything in /etc/X11/xorg.conf.d/)
注意: 如果坚持使用 xorg.conf.d 下的新配置文件,使用 # aticonfig [...] --output 来让 Device 部分与 /etc/X11/xorg.conf.d/20-radeon.conf 相匹配。但这有一个缺点,很多依赖 xorg.conf 的 aticonfig 选项都无法使用。

现在来配置 Catalyst。若只有一个显示器,运行:

# aticonfig --initial

注意,若你使用双显示器则使用下面的命令。 此命令会成两个配置文件,第二个显示器的配置文件在第一个前面:

# aticonfig --initial=dual-head --screen-layout=above
注意: 了解与设置双显有关的更多信息可查看 #双屏显示

你可与示例 Xorg.conf[broken link: invalid section] 上的任何一个示例文件进行对照。

虽然目前的版本的Xorg启动时能自动探测大多数选项,但不同Xorg版本的默认参数可能会有所不同,最好明确指定一些参数.

这里是一个示例配置(包含注释),仅供参考。标注 # 是必需的,标注 ## 可能会用到:

/etc/X11/xorg.conf
Section "ServerLayout"
        Identifier     "Arch"
        Screen      0  "Screen0" 0 0          # 0 这里是必需的
EndSection
Section "Module"
        Load [...]
        [...]
EndSection
Section "Monitor"
        Identifier   "Monitor0"
        ...
EndSection
Section "Device"
        Identifier  "Card0"
        Driver      "fglrx"                         # 必需的
        BusID       "PCI:1:0:0"                     # 推荐,如果自动探测失败的话
        Option      "OpenGLOverlay" "0"             ##
        Option      "XAANoOffscreenPixmaps" "false" ##
EndSection
Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth    24
        SubSection "Display"
                Viewport   0 0
                Depth     24                        # 不应该改动这里的值 '24' 
                Modes "1280x1024" "2048x1536"       ## 第一个值是默认分辨率,第二个是最大分辨率
                Virtual 1664 1200                   ## (x+64, y) to workaround potential OGL rect. artifacts/
        EndSubSection                               ## fixed in Catalyst 9.8
EndSection
Section "DRI"
        Mode 0666                                   # 也许在启用直接渲染方面有用
EndSection
注意: 一旦升级 Catalyst 就要这样删除 amdpcsdb 文件: 关闭 X,删除 /etc/ati/amdpcsdb ,启动 X 然后运行 amdcccle - 否则 amdcccle 将会显示错误的 Catalyst 版本号。

更多信息参考这里.

启动时加载模块

禁用 radeon 以防其自动加载。在 /etc/modprobe.d/modprobe.conf 里禁用radeon,同时保证它不被 /etc/modules-load.d/ 里的文件加载。详见 Kernel modules (简体中文)#黑名单

接下来,使模块 fglrx 自动加载。添加 fglrx/etc/modules-load.d/ 下已有的模块文件的新一行,或者创建一个新的模块文件并添加 fglrx

禁用内核级显示模式设置

注意: 使用 PowerXpress 技术的用户不要这样做,因为Intel驱动需要它。

禁用内核级显示模式设置很重要,Catalyst 根本不使用内核级显示模式。否则,当系统切换至TTY或在桌面环境下关机时,系统可能会冻结。

添加 nomodeset 到你的内核参数

检查安装是否成功

重启电脑并登录, 运行下列命令可查看fglrx是否正确运行:

$ lsmod | grep fglrx

若有输出, 则证明安装成功。可以尝试用 $ startx 或者显示管理器来启动 X(参见 Xorg#Running)。

下面的命令可以输出你的显卡型号信息:

$ fglrxinfo

运行以下命令检查直接渲染模式是否启用:

$ glxinfo | grep "direct rendering"

若显示 "direct rendering: yes",恭喜你,到位了! 若无 $ glxinfo 命令,安装 mesa-demos package。

注意: 对于 glxgears,你也可以使用:
$ fgl_glxgears

来测试fglrx。

警告: 最近版本的 Xorg 函数库路径发生了变化,因此即使安装了 libGL.so 也不一定能被正确加载。请检查图形库是否工作,可阅读 #故障排除段落。

自己编译内核

在手动编译的内核上,你必须构建你自己的 catalyst-$kernel 包。

注意: 如果你讨厌打包或毫无经验,可先阅读 Arch Build System (简体中文)
  1. Catalyst 上获取 PKGBUILDcatalyst.install 文件。
  2. 编辑 PKGBUILD。两个地方需要修改:
    1. pkgname=catalyst 修改为 pkgname=catalyst-$kernel_name$kernel_name 可以随意取(如:custom,mm)。
    2. linux 的依赖修改为 $kernel_name
  3. 构建并安装软件包;运行 makepkg -imakepkg,接着运行 # pacman -U pkgname.pkg.tar.gz
注意:
  • 如果在安装有多内核的系统上,你必须为所有内核安装 catalyst-utilsAUR 包。这不会引起冲突。
  • catalyst-generatorAUR 能为你自动构建 catalyst-{kernver},因此这些步骤根本就可省略。请参考 #工具部分。

PowerXpress 支持

PowerXpress 技术允许支持双显卡功能的笔记本电脑从集成显卡 (IGP) 切换到独立显卡,以延长电池寿命或者实现更好的3D渲染效能。

如果要在Arch上使用此功能,你将需要:

  • AUR 获取并编译 catalyst-totalAUR / catalyst-testAUR 软件包,或者
  • 从 [catalyst] 软件仓库安装 catalyst-libglcatalyst-utils 软件包。

对于 Intel 集成显卡的切换,你还需要安装 mesa 软件包和 Intel 的驱动:xf86-video-intel

注意: Catalyst 有时不兼容最新的 Intel 驱动程序。如果遇到这种情况,请降级 xf86-video-intel 与 xorg-server 软件包到 Arch Linux Archive 或者 #Xorg 软件库 上的先前版本。

现在你可以用下面这些命令切换集成显卡和独立显卡:

# aticonfig --px-igpu    #for integrated GPU
# aticonfig --px-dgpu    #for discrete GPU

请记住 fglrx 需要配置 /etc/X11/xorg.conf 为包含 fglrx

你也可以用pxp_switch_catalyst 这个切换脚本完成一些其他有用的操作:

  • 切换 xorg.conf - 这将重命名 xorg.confxorg.conf.cat(如果它包含了 fglrx)或者 xorg.conf.oth(如果它包含了 intel),并且根据你的选择创建一个软链接 xorg.conf
  • 运行 aticonfig --px-Xgpu.
  • 运行 switchlibGL.
  • 添加/删除 fglrx 到/从 /etc/modules-load.d/catalyst.conf.

用法:

# pxp_switch_catalyst amd
# pxp_switch_catalyst intel

如果你试图在 Intel 驱动上运行 X 时遇到问题,你可以尝试强制开启 "UXA" 加速: 在 xorg.conf 中添加 Option "AccelMethod" "uxa",就像这样:

/etc/X11/xorg.conf
Section "Device"
        Identifier  "Intel Graphics"
        Driver      "intel"
        #Option      "AccelMethod"  "sna"
        Option      "AccelMethod"  "uxa"
        #Option      "AccelMethod"  "xaa"
EndSection

同时运行两个 X server(一个使用 Intel 驱动,一个使用 fglrx)

因为 fglrx 容易崩溃(考虑到 PowerXpress),主要 X server 使用 Intel 驱动,另一个使用需要 3D 加速的 fglrx 驱动是个不错的选择。但是在开启第二个 X server 的时候,简单地从集成显卡 aticonfig 或者 amdcccle 切换到独立显卡将引发一系列奇怪的问题。

为了同时运行两个 X server(每个用不同的驱动),你首先需要设置出一个可以和 Catalyst 一起正常工作的 X 图形环境,然后把它的 xorg.conf 移动到一个临时的地方(比如 /etc/X11/xorg.conf.fglrx)。下次 X 图形环境启动时,它将默认使用 Intel 驱动来代替 fglrx。

在开启第二个使用 fglrx 的 X server,只需要在运行 X 之前,把 xorg.conf 移回合适的地方 (/etc/X11/xorg.conf)。这个方法甚至允许你在两个运行的 X 会话之间来回切换。当你不需要使用 fglrx 时,再把 xorg.conf 移动到其他地方。

这种方法唯一的坏处是不能使用 Intel 驱动的 3D 加速。但它的 2D 却能完全发挥作用。除此之外,它还能给我们一个非常稳定的桌面环境。

多显示器的 PowerXpress 笔记本运行于 AMD 模式时 (pxp_switch_catalyst amd) 的问题

当 PowerXpress 笔记本工作于 AMD-only 模式时(比如设置全部渲染工作交给独显),你有可能会遇到显示器伪影/重复的情况。这是一个已知的问题,发生于7xxxM系列显卡。

当旋转或者缩放一个显示器时现象会消失,所以你可以使用 xrandr 来解决这个问题:

xrandr --output HDMI1 --left-of LVDS1 --primary --scale 1x1 --output LVDS1 --scale 1.0001x1.0001

Xorg 软件库

Catalyst 由于其缓慢的更新而被人大为诟病。因升级 Xorg 而造成两者不兼容是稀松平常的事。也就意味着 Catalyst 用户要么自己编译 Xorg 的包要么使用一个只包含 Xorg 包的回溯软件库,该库中不提供更新版 Xorg 以确保兼容性。Vi0L0 提供好几个这样的库。

要启用上述软件库的话,参见 Unofficial user repositories 中所述方法. 记得在 pacman.conf 中的其他软件库之前(甚至在你的 catalyst 仓库前,如果你有的话)添加相应软件库(使用和 catalyst 库相同的 PGP 密匙)。

xorg117

Catalyst 不支持 xorg-server 1.18

[xorg117]
Server = http://catalyst.wirephire.com/repo/xorg117/$arch
## Mirrors, if the primary server does not work or is too slow:
#Server = http://mirror.hactar.bz/Vi0L0/xorg117/$arch

xorg116

Catalyst < 15.7 不支持 xorg-server 1.17

[xorg116]
Server = http://catalyst.wirephire.com/repo/xorg116/$arch
## 如果上面那个不行或者太慢的话就换这些镜像站:
#Server = http://mirror.hactar.bz/Vi0L0/xorg116/$arch

xorg115

Catalyst < 14.9 不支持 xorg-server 1.16

[xorg115]
Server = http://catalyst.wirephire.com/repo/xorg115/$arch
## 如果上面那个不行或者太慢的话就换这些镜像站:
#Server = http://mirror.hactar.bz/Vi0L0/xorg115/$arch

xorg114

Catalyst < 14.1 不支持 xorg-server 1.15.

[xorg114]
Server = http://catalyst.wirephire.com/repo/xorg114/$arch
## 如果上面那个不行或者太慢的话就换这些镜像站:
#Server = http://mirror.hactar.bz/Vi0L0/xorg114/$arch

xorg113

Catalyst < 13.6 不支持 xorg-server 1.14.

[xorg113]
Server = http://catalyst.wirephire.com/repo/xorg113/$arch
## 如果上面那个不行或者太慢的话就换这些镜像站:
#Server = http://mirror.hactar.bz/Vi0L0/xorg113/$arch

xorg112

Catalyst < 12.10 和 Catalyst Legacy 不支持 xorg-server 1.13.

[xorg112]
Server = http://catalyst.wirephire.com/repo/xorg112/$arch
## 如果上面那个不行或者太慢的话就换这些镜像站:
#Server = http://mirror.hactar.bz/Vi0L0/xorg112/$arch

工具

Catalyst-hook

Catalyst-hookAUR 是一个 systemd 服务,它在系统关机或重启后重新构建 fglrx 模块(如果需要的话,比如内核升级后)。

使用之前请保证 base-devel 组和 linux-headers 包(对应你的内核)已经安装。

只需激活 catalyst-hook.service 服务即可:

# systemctl enable catalyst-hook
# systemctl start catalyst-hook

你也可以用这个软件包来手动构建 fglrx 模块。在内核更新后运行 catalyst_build_module 脚本即可:

# catalyst_build_module all

一些技术细节:

The catalyst-hook.service is stopping the systemd "river" and is forcing systemd to wait until catalyst-hook finishes its job.

catalyst-hook.service 调用 catalyst_build_module check 来检查是否有必要重构建fglrx。

check 检查 fglrx 模块是否存在:

  • 不存在,将构建它;
  • 存在,它将比较两个参数来确定是否有必要重构建 fglrx

这里的参数是 /usr/lib/modules/<kernel_version>/build/Module.symvers 的 md5 值。(因为我(这里指 Vi0L0)发现每一个版本的这个文件都不一样)。第一个参数是现有的 Module.symvers 文件 md5,第二个参数是 fglrx 模块构建时 Module.symvers 文件的 md5。这个参数被 catalyst_build_module 脚本编译到 fglrx 模块。

如果参数不同,将编译新的 fglrx 模块。

check 检查整个 /usr/lib/modules/ 目录,为安装的所有内核编译 fglrx 模块(如果需要的话)。如果没有必要构建或重构建,进程将很快结束。

Catalyst-generator

catalyst-generatorAUR 包能构建并安装 fglrx 模块,该模块与 pacman 兼容的 catalyst-${kernver} 相适应。与 #Catalyst-hook 的区别是必须手动使用此命令,而 Catalyst-hook 则不需。

通过 makepkg,它能构建 catalyst-${kernver} 二进制包并用 pacman 安装。${kernver} 是软件包的目标内核版本(例如 catalyst-2.6.35-ARCH 适用于 2.6.35-ARCH 内核)。

非特权用户使用 catalyst_build_module 来构建并安装 catalyst-{kernver} 包。安装时会提示输入 root 密码。

简单说一下如何使用此包:

  1. root 用户: 使用 catalyst_build_module remove。此举会删除无用的 catalyst-{kernver} 包。
  2. 非特权用户: 使用 catalyst_build_module ${kernver}${kernver} 是指升级过后的内核版本。也可通过 catalyst_build_module all 为所有安装的内核构建 catalyst-{kernver}
  3. 若要删除 catalyst-generator,在使用 catalyst_build_module remove_all 命令删除 catalyst-generator 之前最好切换到 root 用户,这会删除所有 catalyst-{kernver} 包。

当删除 Catalyst-generator 时,Catalyst-generator 不能自动删除那些 catalyst-{kernver} 包,这是因为 pacman 不允许有一个以上的实例同时运行。若在使用 # pacman -R catalyst-generator 前忘记运行 # catalyst_build_module remove_all,catalyst-generator 将会询问删除 catalyst-generator 自身后要删除哪个 catalyst-{kernver} 包。

Catalyst-generator 是最安全的,最符合KISS原则的,因为:

  1. 你可以使用非特权用户来构建包;
  2. 它在 fakeroot 环境构建包;
  3. 它不乱丢文件,pacman知道文件们在哪;
  4. 你需要做的只是,记得去使用它
注意: 在构建 catalyst-{kernver} 时,如果看到下列警告,这是正常情况,不必惊慌:
WARNING: Package contains reference to $srcdir
WARNING: '.pkg' is not a valid archive extension

OpenCL 和 OpenGL 开发

这几年 AMD 一直在为 OpenCL 和 OpenGL 的开发做一套工具集。

现在 AMD 在 "Heterogeneous Computing" 的旗帜下提供了更多的工具集,幸运的是它们也在 Linux 下可用。

在 AUR 和 [catalyst] 软件仓库,你可以找到这些代表了 AMD 最重要工作的工具软件包:

APP 这个缩写代表 Accelerated Parallel Processing(加速并行处理)。

amdapp-aparapi

AMD 的 Aparapi 是一个用 Java 实现的 API,用于并行地表达图像数据,它同时也是一个能把 Java 字节码翻译成能被 OpenCL 识别的运行时组件,所以它能够被很多种图形处理器执行。如果 Aparapi 在 GPU 上不能执行,那将在Java的线程池中执行。

更多关于 Aparapi 的信息:参见这里

amdapp-sdk (以前的 amdstream)

AMD APP 软件开发工具套件,是一个由 AMD 制作地一套完整的开发平台。它让你能够快速和容易地使用 AMD APP 技术,使得你的程序得到加速。这个 SDK 提供了代码实例,技术文档和其他资料,让您可以在你的 C\C++ 程序中使用 OpenCL,Bolt 或 C++ AMP 等技术实现计算加速。

从 2.8 版本开始,amdapp-sdk 提供了 aparapiUtil 和 aparapi 的代码实例。有一个包已经加入到了 [catalyst] 软件仓库。它依赖于 amdapp-aparapiAUR。AUR 中的软件包让你选择需不需要 aparapi's additions。

2.8 版本没有提供探查功能 (Profiler functionality),它已经被移到 CodeXL 中了。

关于 AMD APP SDK 的更多信息: 参见这里

amdapp-codexl

CodeXL 是一个带有静态 OpenCl 内核分析器的 OpenCL and OpenGL 调试器和探查器。它具有 GUI 界面,是在著名的 gdebuggerAUR[broken link: archived in aur-mirror] 基础上完成的。它只支持 x86_64 系统。

关于 CodeXL 的更多信息:参见这里

功能

Tear Free Rendering

Catalyst 11.1 中,很可能是添加了三重缓存和 v-sync,Tear Free Desktop 减少了 2D,3D 视频应用的屏幕撕裂毛病。但这需要额外的 GPU 处理。

要启用 'Tear Free Desktop',运行 amdcccle,然后设置 Display OptionsTear Free

或以 root 身份运行:

# aticonfig --set-pcs-u32=DDX,EnableTearFreeDesktop,1

若禁用,使用 amdcccle 或以 root 身份运行:

# aticonfig --del-pcs-key=DDX,EnableTearFreeDesktop

视频加速

Video Acceleration API (VA API) 是为基于 Linux/UNIX 操作系统提供利用 GPU 加速视频处理的一个开源函数库和应用程序接口规范。启用视频加速后,通过各种入口 (VLD, IDCT, Motion Compensation, deblocking) 它能加速常用编码标准 (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/WMV3) 视频文件的解码过程(俗称硬解)。

VA-API 在 xvba-videoAUR[broken link: archived in aur-mirror] 上有一个私有后端(2009年10月),它允许使用 VA-API 的程序通过 XvBA(AMD 设计的 X-Video 比特流加速 API) 函数库来充分利用拥有 uvd2(第二代通用视频解码单元)芯片组的视频加速功能。

注意: 使用 catalyst-test 或者 catalyst-total 时不需要安装 xvba-videoAUR[broken link: archived in aur-mirror],因为有已经创建好的符号链接代替。

xvba-video 和支持 XvBA 的软件仍还在开发,但在大多数情况下它都能很好的工作。 通过 AUR 构建(或通过 Vi0L0 的仓库直接安装)专有 xvba-videoAUR[broken link: archived in aur-mirror] 包,若这个版本对你来说有问题,用 libva-xvba-driverAUR[broken link: archived in aur-mirror] 取代;并安装 mplayer-vaapiAURlibva。然后将视频播放器的视频输出设置为 "vaapi:gl":

$ mplayer -vo vaapi:gl movie.avi

此选项可添加到 mplayer 的配置文件,参考 MPlayer

针对 smplayer

Options → Preferences → General → Video (tab) → Output driver: User Defined : vaapi:gl
Options → Preferences → General → Video (tab) → Double buffering on
Options → Preferences → General → General → Screenshots → Turn screenshots off
Options → Preferences → Performance → Threads for decoding: 1 (to turn off -lavdopts parameter)
注意: 如果启用了 Tear Free Desktop,则按下列步骤:
Options -> Preferences -> General -> Video (tab) -> Output driver: vaapi

若视频输出中没有 vaapi:gl 选项,可使用 vaapivaapi:gl2 或简单的 xv(0 - AMD Radeon AVIVO Video)

针对 VLC

Tools → Preferences → Input & Codecs → Use GPU accelerated decoding

它有助于在 amdcccle 中启用 v-sync:

3D → More Settings → Wait for vertical refresh = Always On
注意: 若使用 Compiz/KWin,消除画面抖动的唯一方法就是切换至全屏并且关闭 Redirected Fullscreen。 使用 compiz,需在 CCSM 的 General Options 中设置 Redirected Direct Rendering。若此举无效,则将其关闭。KWin 默认关闭此功能,若出现画面抖动则通过System SettingsDesktop EffectsAdvanced 将 "Suspend desktop effects for fullscreen windows" 开启或关闭。

显卡/显存频率,温度,风扇转速,超频工具

$ aticonfig --od-getclocks 可以获知当前显卡/显存频率。

$ aticonfig --pplib-cmd "get fanspeed 0" 可以获知风扇转速(显卡);

$ aticonfig --odgt 可以获知显卡温度。

$ aticonfig --pplib-cmd "set fanspeed 0 50" 可以设置风扇转速,其中查询索引 50 代表速度百分比。

若超频或与之相反,则使用图形工具反而相对容易些,如需要 qt 的 ATi Overclocking Utility。你可以从这儿找到(不过它可能过时了)。

更复杂的 amdoverdrivectrlAUR 也能达到此目的,它的主页是这里。可通过 AUR 或 Vi0L0 的非官方软件库构建安装包。

双屏显示

介绍

警告: 由于安装方式的不同,并且每种安装方式需要与其相对应进行配置,因此设置双屏显示并没有特定的方法,你必须根据你自己的需要采用相应的步骤。当然可以多尝试几种方法。所以,在修改之前,请务必将你现在能正常使用的 /etc/X11/xorg.conf 备份,以便遇到问题时可以从命令行恢复。
  • 本节讲述如何配置 "BIG Desktop" 效果。主要是不同尺寸的屏幕如何通过两个不同的输出接口 (DVI + HDMI) 共享一个显卡。
  • Xinerama 解决办法有些不便,尤其是不能与 XrandR 兼容。因为 XrandR 对于我们所讲的来说是必须的,所以不使用 Xinerama。
  • 双头显示能让你有两个不同的会话(一个屏幕一个)。你可以随心所欲地干任何事情,但不能将窗口从一个屏幕移动到另一个屏幕。若只有一个屏幕,你得在 Xorg 会话里为 Server Layout section 的每个会话定义鼠标,具体方法查看:

ATI Documentation

ATI Catalyst Control Center

ATI 的图形工具非常有用,我们将尽可能地使用它。运行下面命令可启用它:

$ {kdesu/gksu} amdcccle
警告: 千万不要直接使用 sudo。 Sudo 虽能给予管理员权限,却使用用户账户的信息(如环境变量)。GNOME 下使用gksu,KDE 下使用kdesu

安装

开始之前,确保你的硬件接插正确,电源开启,而且你得你的硬件属性(2D 还是 3D 屏,屏幕尺寸,刷新率等)。通常情况下,在启动阶段两个显示器都会被识别却不需正确区分先后顺序,而是依赖热插拔功能。尤其在不使用 (/etc/X11/xorg.conf) 配置时。

首先要让你的桌面环境和 X 认识你的显示器。为此,要为你两个显示器生成基本的 Xorg 配置文件:

# aticonfig --initial --desktop-setup=horizontal --overlay-on=1

# aticonfig --initial=dual-head --screen-layout=left

{{注意|overlay 非常重要,因为它能让两个显示器拥有 1 种(多种)像素。

提示: 运行 aticonfig --help 了解所有可用的命令。

现在可编辑基本的 Xorg 配置文件(如:添加分辨率)。分辨率一定要正确,尤其是使用不同尺寸的显示器。分辨率在 "Screen" section:

 SubSection "Display"
    Depth     24
    Modes     "X-resolution screen 1xY-resolution screen 1" "Xresolution screen 2xY-resolution screen 2"
 EndSubSection

这以后就不需手动编辑 xorg.conf,而使用 ATI 的图形化工具。重启 X,确保正确支持两个显示器和识别屏幕分辨率(两个屏幕相互独立而不是完全一样)。

设置

现在只需以 root 身份启动 ATI 控制中心,在显示菜单设置你需要的选项(下拉菜单中的小箭头)。设置好后重启 X 就大功告成了!

重启 X 之前,不要忘了核实 xorg.conf。主要是核实 "Display" 下的 "Screen" 节,在 "Virtual" 行里,两个显示器的分辨率应该一样。"Server Layout" 节则是剩下的参数。

卸载

你可能会因为 catalyst 不工作或者是想试试开源驱动而要卸载掉 catalyst:移除 catalystcatalyst-utils 包。当然你也应该移除 catalyst-generatorAURcatalyst-hookAURlib32-catalyst-utilsAUR 包(如果你安装了的话)。

警告:
  • 你也许需要使用 # pacman -Rdd 来移除 catalyst-utilsAUR(和/或 lib32-catalyst-utilsAUR)因为它(们)包含了图形库相关文件,许多包会依赖他们。这些依赖关系将在安装 xf86-video-ati 时被满足。
  • 你也许会需要移除 /etc/profile.d/ati-flgrx.sh/etc/profile.d/lib32-catalyst(如果他们存在),否则 r600_dri.so 将会载入失败,你将得不到3D支持。
注意: 你应该从 /etc/pacman.conf 移除非官方仓库,然后运行 # pacman -Syu,因为那些仓库包含过时的 Xorg 包(为了兼容 catalyst),而 xf86-video-ati 包需要来自官方仓库的最新的 Xorg 包。

按如下步骤:

  • 如果你有 /etc/modprobe.d/blacklist-radeon.conf,删除文件或者注释掉文件中的 blacklist radeon
  • 如果你在 /etc/modules-load.d 下有配置文件要在启动时载入 fglrx 模块,删除掉或者注释掉 fglrx 那一行。
  • 记住删除/备份 /etc/X11/xorg.conf
  • 如果安装了 catalyst-hookAUR 包,记得关掉它的 systemd 服务的自启动。
  • 如果你在内核参数中指定了 nomodeset 而现在你打算使用 KMS,那么删除 nomodeset
  • 安装另一个驱动之前记得重启 .

故障排除

若能启动到命令行,问题很可能出在 /etc/X11/xorg.conf

可阅读 /var/log/Xorg.0.log 或通过下列命令查找线索:

$ grep '(EE)' /var/log/Xorg.0.log
$ grep '(WW)' /var/log/Xorg.0.log

如果不能理解输出的内容,请先搜索论坛,没有结果的话,可将其提交到这里,注意要提交两者显示的信息。

运行 atieventsd.service 失败

官方仓库安装 acpid.启用并运行 acpid 守护进程

如果还不行,编辑 /usr/lib/systemd/system/atieventsd.service,把 acpid.socket 改成 acpid.service

无法打开 fglrx_dri.so

创建从 /usr/lib/xorg/modules/dri/fglrx_dri.so/usr/X11R6/lib64/modules/dri/fglrx_dri.so 或其它需要路径的链接:

# mkdir -p /usr/X11R6/lib64/modules/dri
# ln -s /usr/lib/xorg/modules/dri/fglrx_dri.so /usr/X11R6/lib64/modules/dri/fglrx_dri.so

启动 GDM 失败

降级 xorg-server 或者试试其它显示管理器比如 LightDM

在Wine上3D应用冻结

若在Wine上3D应用挂起,禁用TLS。使用 aticonfig 或编辑 /etc/X11/xorg.conf。使用 aticonfig

# aticonfig --tls=off

或以 root 身份打开 /etc/X11/xorg.conf,在 Device 段添加 Option "UseFastTLS" "off"

只需选择其中一种方式,然后重启 X 让其生效。

视频颜色不正常

仍然使用 vaapi:gl 来防止画面抖动,但这样不会有视频加速:

  • 不使用 -vo vaapi 运行 mplayer
  • 若是 smplayer,在 Options → Preferences → Advanced → Options for MPlayer → Options:中删除 -vo vaapi

此后还可以启动 smplayer 的截屏功能。

KWin 与混成

根据你的显卡,在 OpenGL 和 XRender 渲染方式中选择一种更快的。 在某些情况下,XRender 还可以解决一些人为的错误(比如调整命令行大小)。

重启或启动 X 后,黑屏并且一直不退出

检查在启动加载器的内核参数行是否添加了 nomodeset(参考 #禁用内核级显示模式设置)。 你如果在使用 legacy 驱动 (catalyst-hd234k) 黑屏的话, 尝试降级 xorg-server 到 1.12(使用 #xorg112 库)。

错误的 ACPI 硬件调用

出现此种错误很可能是 fglrx 模块与系统的 ACPI 硬件调用配合不够默契而自身禁用,屏幕也就不会有输出。

如果是那样的话,运行:

$ aticonfig --acpi-services=off

注销后 KDM 消失

若使用 Catalyst,当注销后你会获取 tty1 这个控制台而不是 KDM 的欢迎界面。每次注销后你必须让 kdm 重启 X 服务器。将标题为 [X-:*-Core] 段里下面行前的注释删掉:

/usr/share/config/kdm/kdmrc
TerminateServer=True


当前注销 KDE 后 KDM 就会出现。

直接渲染无效

警告: 在安装或升级 catalyst 后却没重启系统,也有可能出现此种错误,因为系统需要加载 fglrx.ko 模块来让驱动正常工作。

若直接渲染有问题,运行:

$ LIBGL_DEBUG=verbose glxinfo > /dev/null

从此命令输出的第一行至末尾都与直接渲染无效有关,且非常详细。

常见错误提示和解决办法:

libGL error: XF86DRIQueryDirectRenderingCapable returned false
  • 若使用 AGP 的芯片组,确保加载 fglrx 模块之前加载正确的 agp 模块。要确定哪些 agp 模块,运行 hwdetect --show-agp,然后打开 /etc/modules-load.d/fglrx.conf,将 agp 模块添加到 fglrx 行之前
libGL error: failed to open DRM: Operation not permitted
libGL error: reverting to (slow) indirect rendering
libGL: OpenDriver: trying /usr/lib/xorg/modules/dri//fglrx_dri.so
libGL error: dlopen /usr/lib/xorg/modules/dri//fglrx_dri.so failed
(/usr/lib/xorg/modules/dri//fglrx_dri.so: cannot open shared object file: No such file or directory)
libGL error: unable to find driver: fglrx_dri.so
  • 某些软件未正确安装。在错误提示中,若路径为 /usr/X11R6/lib/modules/dri/fglrx_dri.so,彻底注销,然后重新登录。若使用图形化的登录管理器 (gdm, kdm, xdm),确保每次登录时 /etc/profile 都会被读取。将 source /etc/profile 添加到 ~/.xsession~/.xinitrc 通过都达到以上目的(不同的登录管理器修改的文件不一样)。
  • 若路径为 /usr/lib/xorg/modules/dri/fglrx_dri.so,试着重装 catalystAUR 包。

若错误信息为:

fglrx: libGL version undetermined - OpenGL module is using glapi fallback

可能是因为系统装了多个版本的 libGL.so。下面的命令应该得到这样的回显:

$ locate libGL.s

/usr/lib/libGL.so
/usr/lib/libGL.so.1
/usr/lib/libGL.so.1.2

系统应只有 3 个 libGL.so 文件,若不止(例如 /usr/X11R6/lib/libGL.so.1.2),则将其删除。

若使用 X11R7 且系统中有下列文件,系统并不会给出任何错误提示,一定要将他们删除:

/usr/X11R6/lib/libGL.so.1.2
/usr/X11R6/lib/libGL.so.1

休眠问题

视频播放不能从休眠状态中恢复

若启动了 framebuffer,Catalyst 不能从挂机状态中恢复。在内核参数中添加 vga=0 可禁用 framebuffer。

对于其他启动加载器,参考 #禁用内核级显示模式设置

系统冻结或硬件锁死

  • 过去,radeonfb 的 framebuffer 驱动很容易导致这个问题。若内核编译时启用对 radeonfb 的支持,应该更换内核看是否能解决此问题。

硬件冲突

当和某些版本的 nForce3 芯片组一起使用时,Radeon 显卡没有 3D 加速。目前虽还未找到具体原因,但有资料表明,先启动到 Windows 然后再重启系统就可能可以从 nVIDIA 驱动获得 3D 加速。在 root 控制台使用下列命令可识别此问题(会得到与下列相似(使用基于 nForce3 系统)的输出):

$ dmesg | grep agp
     agpgart: Detected AGP bridge 0
     agpgart: Setting up Nforce3 AGP.
     agpgart: aperture base > 4G

或者还有下面的命令得到如下的回显:

$ tail -n 100 /var/log/Xorg.0.log | grep agp
 (EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_ENODEV"

则表明有问题。

有些资料表明在某些情形下降级主板的 BIOS 可能有助于解决问题,但注意此方法可能并不在各种情况下都适用,而且降级失败很可能让硬件报废,请谨慎。

参见这个错误报告

播放视频时系统短时间死机

当用 mplayer,若不定时出现几秒到几分钟的死机。查看日志,若有与下面相似的信息:

/var/log/messages.log
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
Nov 28 18:31:56 pandemonium [<f8bc628c>] ? ip_firegl_ioctl+0x1c/0x30 [fglrx]
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
Nov 28 18:31:56 pandemonium [<c0197038>] ? vfs_ioctl+0x78/0x90
Nov 28 18:31:56 pandemonium [<c01970b7>] ? do_vfs_ioctl+0x67/0x2f0
Nov 28 18:31:56 pandemonium [<c01973a6>] ? sys_ioctl+0x66/0x70
Nov 28 18:31:56 pandemonium [<c0103ef3>] ? sysenter_do_call+0x12/0x33
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
Nov 28 18:31:56 pandemonium =======================

给内核参数添加 nopat 和/或 nomodeset内核参数应该能解决问题。

"aticonfig: No supported adaptaters detected"

若得到:

# aticonfig --initial
aticonfig: No supported adapters detected

可以在 etc/X11/xorg.conf 中设置 device,或者复制以前的能工作的 /etc/ati/control 文件(推荐 - 这也能解决水印的问题),这可能让 Catalyst 正常工作。

从 AMD 下载先前版本的 fglrx,使用 --extract driver 参数运行。文件将提取到 driver/common/etc/ati/control,用它覆盖原来的 control 文件后重启 X。你可以试试不同的版本。

设置型号的方法:在 /etc/X11/xorg.conf 将 device 段设置为:

/etc/X11/xorg.conf
Section "Device"
        Identifier "ATI radeon ****"
        Driver     "fglrx"
EndSection

此处 **** 为设备型号(HD 6870 的显卡为 6870,APU E-350 为 6310,通过网络是很容易查到的)。

Xorg 启动后很可能使用 amdcccle 而不是 aticonfig。这里会有一个“AMD不支持硬件”水印。

用下面脚本可将此水印删除:

#!/bin/sh
DRIVER=/usr/lib/xorg/modules/drivers/fglrx_drv.so
for x in $(objdump -d $DRIVER|awk '/call/&&/EnableLogo/{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6}'); do
 sed -i "s/$x/\x90\x90\x90\x90\x90/g" $DRIVER
done

然后重启。

让 chromium 支持 WebGL

在 Google 的 Chromium/Chrome 浏览器里,Linux 的 Catalyst 驱动被列入了黑名单。参见 Chromium#WebGL

用 Adobe 的 flashplugin 观看 flash,画面迟滞或冻结

编辑:

/etc/adobe/mms.cfg
#EnableLinuxHWVideoDecode=1
OverrideGPUValidation=true

如果你使用 KDE,请确保 系统设置->工作空间外观与行为->桌面效果->高级 里,“为全屏窗口挂起桌面特效”没有勾选。

GNOME3 中移动窗口延迟/很慢

你可以试试这么做,有报告称大多数情况下此方法有效。

将下面行添加到 ~/.profile/etc/profile

export CLUTTER_VBLANK=none

重启 X 或操作系统。

在 1920x1080 分辨率下不能全屏(欠扫描,屏幕周围有黑边)

这经常会在使用 HDMI 连接显示器/电视时发生。

这似乎是 AMD/ATI 为适应所有 HDTV 的一项新功能,可以在 amdccle 中调整。

使用 amdcccle(图形界面)你可以选择要修改的显示输出,将欠扫描设置成 0%(aticonfig 默认 15% 欠扫描)。(至少)版本 14.10 有时也会出现显示调整的下面没有欠扫描的滑块的情况。(It is possible as well that the underscan slider won't show under the display's adjustments, as sometimes in (at least) version 14.10.)

这不是永久的配置,重启 X,重启系统,挂起后唤醒甚至切换 tty 之后都会失效。

要使这成为永久配置的话,你需要以 root 身份在 console 下使用 aticonfig 来调整欠扫描设置,或者手动编辑 /etc/ati/amdpcsdb (也是以 root 身份)

用 aticonfig 的方法:

# aticonfig --set-pcs-u32=MCIL,DigitalHDTVDefaultUnderscan,0

改变设置后重启。

新版本的话(比如 12.11),要是 ccc 总不能保存过扫描设置,你可以试试:

# aticonfig --set-pcs-u32=MCIL,TVEnableOverscan,0

手动编辑 /etc/ati/amdpcsdb 的方法:

[AMDPCSROOT/SYSTEM/MCIL] 之下的任意位置添加

# DigitalHDTVDefaultUnderscan=V0

新版本的话(比如 12.11), 要是 ccc 总不能保存过扫描设置,你可以试试: 在 [AMDPCSROOT/SYSTEM/MCIL] 之下找到这一行

# TVEnableOverscan=V1

然后把它变成

# TVEnableOverscan=V0

改变设置后重启。

注意: 也许你会发现,无论你怎么做,登录/注销/重启后,/etc/ati/amdpcsdb 总是被覆写/还原,于是你的修改就丢失了。

所以你需要在 fglrx 没运行的时候改它。

可以试着重启进入某些不需要运行 fglrx 的、直接启动到控制台的"安全模式"。

应对措施: 要是因某些原因你不想动 ATI 的配置文件,你可以设置面板的位置与分辨率来规避问题 以普通用户运行:

# aticonfig --set-dispattrib=DISPLAYTYPE,positionX:0
# aticonfig --set-dispattrib=DISPLAYTYPE,positionY:0
# aticonfig --set-dispattrib=DISPLAYTYPE,sizeX:1920
# aticonfig --set-dispattrib=DISPLAYTYPE,sizeY:1080

DISPLAYTYPE 代表你想改的显示器,比如 "dfp9"。 用如下命令获得你的 DISPLAYTYPE

# xrandr --current

如果没启用 RandR 的话,你可以用这个:

# aticonfig --query-monitor

也许需要用显示开关或 DISPLAY 变量来设置适当的显示/屏幕(比如 :0.1)。

这将告诉你目前哪一个显示正连接着或断开着,以及它的详情

这个应对措施不是永久配置,不过是个让面板及上边内容看起来合适的方便快捷的方法

注意: 新版驱动不应再使用 aticonfig --set-pcs-val=MCIL,DigitalHDTVDefaultUnderscan,0,ATI 声明过这已被弃用并即将被移除。

aticonfig --help | grep set-pcs-val 来阅读 ATI 的说明。

双屏设置:关于加速,OpenGL,合成,效能的一般问题

试着禁用 xinerama 和 xrandr12。如下:

输入:

# aticonfig --initial
# aticonfig --set-pcs-str="DDX,EnableRandR12,FALSE"

然后重启系统。在 /etc/X11/xorg.conf 中检查 xinerama 是不是被禁用了,如果没有,禁用它,然后重启系统。( In /etc/X11/xorg.conf check that xinerama is disabled, if it's not disable it and reboot your system. )

接下来运行 amdcccle,在 amdcccle->display manager->multi-display->multidisplay desktop 中选择显示 2。

再次重启,再按你的想法设置显示。

禁用 VariBright 功能

Vari-Bright 动态调整显示面板用电量以节能。 输入以下命令以禁用 VariBright:

# aticonfig --set-pcs-u32=MCIL,PP_UserVariBrightEnable,0

Hybrid/PowerXpress:关掉独立 GPU

如果你使用支持 PowerXpress 的 Catalyst 软件包,你也许会发现切换到集显时,独显仍在工作,又耗电又使得系统温度很高。

如果集显是 Intel 的话,你可以通过 vgaswitcheroo 来关掉独立 GPU。 很不幸的是有些时候不行。

然后这时你可以试试 acpi_call。MrDeepPurple 准备好了脚本来完成这个任务。脚本在启动和恢复系统的时候通过 systemd 服务运行。 这是他的脚本:

#!/bin/sh
libglx=$(/usr/lib/fglrx/switchlibglx query)
modprobe acpi_call
if [ "$libglx" = "intel" ]; then
    echo '\_SB.PCI0.PEG0.PEGP._OFF' > /proc/acpi/call
fi

从 X 会话切换到 TTY 黑屏/低分辨率 TTY

接受这个“功能”吧,这出现在 Catalyst 13.2 beta,解决方法是使用 vga= 内核选项,比如 vga=792。 使用

$ hwinfo --framebuffer

来得到支持的分辨率列表 选择最适合你的分辨率,粘贴到启动引导器的内核行,比如 vga=0x03d4

从 X 会话切换到 TTY 黑屏,背光并没有关闭

使用 uvesafb 作为 framebuffer 驱动。而且,uvesafb 可以为 TTY 设置任意分辨率。

切换 TTY 后切换回 X 会话时,只有一个带鼠标的黑屏

如果你遇到了这个 bug 的话,试着添加

Option      "XAANoOffscreenPixmaps" "true"

到你的 xorg.conf 的 'Device' 部分。

同时,确认已安装有 polkit 认证代理并正在运行,因为这种情况可能会在某程序想要请求密码但没有认证代理来显示密码对话框时出现。

30 FPS / 防撕裂 / 垂直同步 bug

这个 Bug 发生于 Catalyst 13.6 beta,到现在 (13.9) 还没修复。

激活 "Tear Free"(防撕裂)功能之后,所有新启动的 OpenGL 程序都出现延迟,常表现为只有 30 FPS,合成桌面环境也是。

M132 找到一个解决方法。在 "AMD Catalyst Control Center" (amdcccle) 里完成这些操作:

1. 开启 Tear-Free,这将设置 3D V-Sync 为“总是开启”。
2. 设置 3D V-Sync 为“总是关闭”。
3. 确认 Tear-Free 仍为“开启”。
4. 重启 X/重登录。

这在 KDE 4.11.x 下有效。M132 的建议:“试着关闭 "Detect refresh rate",并为合成器指定显示器刷新率。”

背光调节不起效

如果你的背光调节有问题,你可以试试:

# aticonfig --set-pcs-u32=MCIL,PP_PhmUseDummyBackEnd,1

一些用户报告说这导致 FPS 降低。要恢复默认的话:

# aticonfig --set-pcs-u32=MCIL,PP_PhmUseDummyBackEnd,0

更多信息见此

使用 plasma 时 Chromium 出现 glitching

添加 --disable-gpu 参数来启动 chromium,比如,对 /usr/share/applications/chromium.desktop,改成这样:

# cat /usr/share/applications/chromium.desktop | grep -i exec
Exec=chromium %U --disable-gpu

Xorg 崩溃

不支持的 Xorg 版本

当 Linux 内核版本受支持而 Xorg 版本不受支持时,Xorg 也许会崩溃,而你可能会得到如此的错误信息:

(WW) fglrx: No matching Device section for instance (BusID PCI:0@0:17:0) found
(...)
/usr/bin/Xorg.bin: symbol lookup error: /usr/lib/xorg/modules/drivers/fglrx_drv.so: undefined symbol: GlxInitVisuals2D
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

比如,fglrx 15.20.3 不支持 Xorg 1.17。

你应该降级你的 Xorg。这些步骤可能会有用。

参见