AMD Catalyst

出自 Arch Linux 中文维基

本文內容或本節內容已經過期。

原因: 請提供模板的第一個位置參數以概括原因。 (在Talk:AMD Catalyst討論)

AMD 的顯卡驅動有兩種:一是官方私有驅動 (catalystAUR[損壞的連結:package not found]),二是開源驅動(較舊的顯卡參見 ATI,較新的顯卡參見 AMDGPU)。本文主要介紹私有驅動。

警告: 官方倉庫不再提供 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 或者這個表格

安裝[編輯 | 編輯原始碼]

共有三種途徑安裝 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][失效連結 2020-08-02 ⓘ](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[損壞的連結:package not found] 包能讓 AUR 用戶更為方便。它能構建驅動、內核工具、32位內核工具和 catalyst-hookAUR[損壞的連結:package not found](參見 #工具)。

配置驅動[編輯 | 編輯原始碼]

安裝完畢後,要配置 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啟動時能自動探測大多數選項,但不同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-utils 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[損壞的連結:package not found] 包。這不會引起衝突。

PowerXpress 支持[編輯 | 編輯原始碼]

PowerXpress 技術允許支持雙顯卡功能的筆記本電腦從集成顯卡 (IGP) 切換到獨立顯卡,以延長電池壽命或者實現更好的3D渲染效能。

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

對於 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[損壞的連結:package not found] 是一個 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[損壞的連結:package not found] 包能構建並安裝 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 的信息:參見這裡[失效連結 2020-08-02 ⓘ]

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 的更多信息: 參見這裡[失效連結 2020-08-02 ⓘ]

amdapp-codexl[編輯 | 編輯原始碼]

CodeXL 是一個帶有靜態 OpenCl 內核分析器的 OpenCL and OpenGL 調試器和探查器。它具有 GUI 界面,是在著名的 gdebuggerAUR[損壞的連結:package not found] 基礎上完成的。它只支持 x86_64 系統。

關於 CodeXL 的更多信息:參見這裡[失效連結 2020-08-02 ⓘ]

功能[編輯 | 編輯原始碼]

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[損壞的連結:package not found] 上有一個私有後端(2009年10月),它允許使用 VA-API 的程序通過 XvBA(AMD 設計的 X-Video 比特流加速 API) 函數庫來充分利用擁有 uvd2(第二代通用視頻解碼單元)晶片組的視頻加速功能。

注意: 使用 catalyst-test 或者 catalyst-total 時不需要安裝 xvba-videoAUR[損壞的連結:package not found],因為有已經創建好的符號連結代替。

xvba-video 和支持 XvBA 的軟體仍還在開發,但在大多數情況下它都能很好的工作。 通過 AUR 構建(或通過 Vi0L0 的倉庫直接安裝)專有 xvba-videoAUR[損壞的連結:package not found] 包,若這個版本對你來說有問題,用 libva-xvba-driverAUR[損壞的連結:package not found] 取代;並安裝 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 也能達到此目的,它的主頁是這裡。可通過 amdoverdrivectrlAUR 或 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-generatorAUR[損壞的連結:package not found]catalyst-hookAUR[損壞的連結:package not found]lib32-catalyst-utilsAUR[損壞的連結:package not found] 包(如果你安裝了的話)。

警告:
  • 你也許需要使用 # pacman -Rdd 來移除 catalyst-utilsAUR[損壞的連結:package not found](和/或 lib32-catalyst-utilsAUR[損壞的連結:package not found])因為它(們)包含了圖形庫相關文件,許多包會依賴他們。這些依賴關係將在安裝 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[損壞的連結:package not found] 包,記得關掉它的 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[損壞的連結:package not found] 包。

若錯誤信息為:

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 will not 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。這些步驟可能會有用。

參見[編輯 | 編輯原始碼]