使用 HWE 升级至 14.0.4.5 后 AMD 显卡出现问题

使用 HWE 升级至 14.0.4.5 后 AMD 显卡出现问题

我收到安装最新 Ubuntu 的提示HWE(硬件支持堆栈)

升级 HWE 提示

我没有多想,就点击了安装。重启后,我注意到以下问题:

  • 我的第二台显示器是黑的,只显示鼠标指针,没有其他任何东西。
  • 有很多图形闪烁

我正在使用 AMD 显卡:

$ lspci | grep VGA
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Caicos XTX [Radeon HD 8490 / R5 235X OEM]

这是我的机器重新启动后的状态:

$ uname -r
4.4.0-38-generic

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:    14.04
Codename:   trusty

$ dpkg -l | egrep "utopic|vivid|wily|xenial"
ii  linux-generic-lts-utopic                    3.16.0.77.68                                          amd64        Complete Generic Linux kernel and headers
ii  linux-generic-lts-xenial                    4.4.0.38.28                                           amd64        Complete Generic Linux kernel and headers
ii  linux-headers-generic-lts-utopic            3.16.0.77.68                                          amd64        Generic Linux kernel headers
ii  linux-headers-generic-lts-xenial            4.4.0.38.28                                           amd64        Generic Linux kernel headers
ii  linux-image-generic-lts-utopic              3.16.0.77.68                                          amd64        Generic Linux kernel image
ii  linux-image-generic-lts-xenial              4.4.0.38.28                                           amd64        Generic Linux kernel image

$ dpkg -l | grep fglrx
ii  fglrx-amdcccle-updates                      2:15.201-0ubuntu0.14.04.1                             amd64        Catalyst Control Center for the AMD graphics accelerators
ii  fglrx-updates                               2:15.201-0ubuntu0.14.04.1                             amd64        Video driver for the AMD graphics accelerators
ii  fglrx-updates-core                          2:15.201-0ubuntu0.14.04.1                             amd64        Minimal video driver for the AMD graphics accelerators

$ fglrxinfo
X Error of failed request:  BadRequest (invalid request code or no such operation)
  Major opcode of failed request:  157 (ATIFGLEXTENSION)
  Minor opcode of failed request:  66 ()
  Serial number of failed request:  13
  Current serial number in output stream:  13

答案1

我的问题的根本原因是只安装了 HWE 的内核部分,这意味着内核已升级但图形堆栈未升级。由于Xenial 内核与专有的 fglrx AMD 驱动程序不兼容,这导致了图形问题。

在做任何其他事情之前,最好先进行一些清理:

  1. 删除所有乌托邦式、生动、狡猾的 HWE 包,因为它们不再受支持(如果没有这个,升级 HWE 的提示将继续出现)

    sudo apt purge `dpkg --get-selections | egrep "utopic|vivid|wily" | awk '{print $1}' | tr '\n' ' '`
    
  2. 删除所有 utopic (3.16)、vivid (3.19) 和 wily (4.2) 内核,自它们也不再受支持(这会导致 hwe-support-status 打印安全警告)

    sudo apt purge `dpkg --get-selections | egrep "linux-.+-(3\.16|3\.19|4\.2)" | awk '{print $1}' | tr '\n' ' '`
    

完成之后,有两个解决方案:

(推荐)安装完整的 Xenial HWE

  1. 下列的此处的说明,安装完整的 Xenial HWE:

    sudo apt install --install-recommends linux-generic-lts-xenial xserver-xorg-core-lts-xenial xserver-xorg-lts-xenial xserver-xorg-video-all-lts-xenial xserver-xorg-input-all-lts-xenial libwayland-egl1-mesa-lts-xenial
    

    这应该安装新的图形堆栈,也应该删除 fglrx

  2. 确保 fglrx 已被删除,以确保安全

    sudo apt remove fglrx fglrx-core fglrx-updates fglrx-updates-core
    
  3. 删除所有其他未使用的包

    sudo apt-get autoremove
    
  4. 重启

你的机器的最终状态应该是这样的:

$ uname -r
4.4.0-112-generic

$ dpkg --get-selections | grep xenial | wc -l
40

$ dpkg --get-selections | grep fglrx | wc -l
0

$ fglrxinfo
fglrxinfo: command not found

如果此时一切似乎都运行正常,那么最好继续升级到 16.04,因为14.04 仅支持到 2019 年 4 月

(不推荐)完全删除 Xenial HWE

  1. 删除 xenial HWE 包

    sudo apt purge `dpkg --get-selections | grep xenial | awk '{print $1}' | tr '\n' ' '`
    
  2. 删除 xenial 内核(4.4)

    sudo apt purge `dpkg --get-selections | egrep "linux-.+-4\.4" | awk '{print $1}' | tr '\n' ' '`
    
  3. 删除所有其他未使用的包

    sudo apt-get autoremove
    
  4. 重新配置 xserver-xorg(由于某种原因,清理 HWE 会删除从 /etc/X11/X 到 /usr/bin/Xorg 的符号链接,从而破坏 X;这可以修复它)

    sudo dpkg-reconfigure xserver-xorg
    
  5. 重启

你的机器的最终状态应该是这样的:

$ uname -r
3.13.0-119-generic

$ dpkg --get-selections | egrep "utopic|vivid|wily|xenial" | wc -l
0

$ dpkg --get-selections | grep fglrx | wc -l
4

$ dpkg -l | grep fglrx
ii  fglrx-amdcccle-updates                      2:15.201-0ubuntu0.14.04.1                             amd64        Catalyst Control Center for the AMD graphics accelerators
ii  fglrx-updates                               2:15.201-0ubuntu0.14.04.1                             amd64        Video driver for the AMD graphics accelerators
ii  fglrx-updates-core                          2:15.201-0ubuntu0.14.04.1                             amd64        Minimal video driver for the AMD graphics accelerators

$ fglrxinfo
display: :0.0  screen: 0
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: AMD Radeon(TM) HD8490
OpenGL version string: 4.5.13399 Compatibility Profile Context 13.35.1005

答案2

您无法将 fglrx 与内核 4.4 和 14.04.5 HWE 堆栈中的 Xorg 一起使用。要继续使用 fglrx,您需要从 14.04.4 恢复到较旧的 Xorg 和内核。否则,对于您的卡,您将不得不使用开源雷響驱动程序,可能就是现在正在使用的驱动程序。所描述的问题可能是驱动程序与您的卡一起使用时出现的错误。

AMD 不支持 fglrx 的新 API,并且不会发布更新来支持其较新的内核或 Xorg 版本。

相关内容