当前位置: 首页>>技术教程>>正文


Ubuntu 从睡眠模式唤醒电脑后,沿着窗口边界显示奇怪的东西

在ubuntu中遇到了很诡异的问题

当从Suspend模式唤醒Ubuntu 16.04时,所有窗口,上下文菜单和类似的地方都会显示不正常,出现以下图形故障:

nvidia,graphics,suspend,visual-artifacts,ubuntu

nvidia,graphics,suspend,visual-artifacts,ubuntu

nvidia,graphics,suspend,visual-artifacts,ubuntu


目前,已知会影响到以下运行专有驱动程序的NVIDIA卡:

  • NVIDIA GeForce 610M, driver version 375.39, 340.102
  • NVIDIA GT 630M, driver version 375.39
  • NVIDIA GTX 650, driver version 375.39
  • NVIDIA GT 740M, driver version 378.13
  • NVIDIA GTX 745, unknown driver version
  • NVIDIA GTX 850M, driver version 375.39, 378.13
  • NVIDIA GT 940M, driver version 375.39
  • NVIDIA GTX 950M, unknown driver version
  • NVIDIA GTX 960M, driver version 378.13
  • NVIDIA GTX 970, driver version 375.39
  • NVIDIA GTX 970M, driver version 375.39
  • NVIDIA GTX 980 TI, unknown driver version
  • NVIDIA GTX 1060, driver version 375.26, 375.39, 378.09
  • NVIDIA GTX 1070, driver version 378.09

以上列表来自其他用户的报告,可能还不止这些卡会受到影响。

此外,这个问题已经在一个干净的安装上复现,其中唯一的更改是软件更新和最新的NVIDIA驱动程序的安装。


这到底是怎么回事,如何解决?

临时的解决方法

注意:这是一个临时的解决方法,Nvidia可能已经发布了一个修补的驱动程序,可以跳过这一段查找后文中的其他答案与实际修复情况。


我在Ubuntu 16.04.2 LTS使用GPU:Nvidia GTX 970,nvidia 375.39驱动程序时,遇到了同样的问题

自从最近升级nvidia驱动程序以来,就观察到了这一点,我怀疑这是驱动错误。

后来找到了这个答案on the nvidia board。这是驱动程序中确认的错误,nvidia显然已经在处理它了。在此期间,可以重新启动compiz

compiz --replace

消除上述错误的显示。

The bug is in the Ubuntu bug tracking system包括一个解决方法的脚本,在恢复后自动重启compiz。

最佳的解决方法

这是Nvidia驱动的一个BUG。

Nvidia已经能够重现这个问题,他们正在修复这个问题,这个修复将被包含在下一个驱动程序的版本中。 截止目前2017/10/02, 该修复现已发布了,请继续阅读本文后续的介绍。

有关详细信息,请参阅this thread on the Nvidia developer forums。这个bug也是reported on Launchpad


Nvidia终于发布了官方修复补丁!

  • 该修复程序见试用版驱动程序381.09 changelog的相关屏幕截图:

    nvidia,graphics,suspend,visual-artifacts,ubuntu


1.从官方Repo(推荐)安装修补的[release]驱动程序:

Nvidia在05/04/2017推出了更新到他们的发行版驱动程序,其中包含您正在寻找的BUG修复。已更新的版本驱动程序版本号为375.66

由于版本375.66在官方的存储库中,因此加载修补的驱动程序非常简单。

  • 如果您目前使用的是375.39,那么只需要简单执行:

    sudo apt-get update
    sudo apt-get upgrade
    

  • 如果您使用旧版驱动程序,则应执行以下操作:

    sudo apt-get update
    

    随后在其他驱动程序中切换到新的驱动程序版本:

    nvidia驱动

  • 如果您当前正在使用手动安装的驱动程序,则应卸载它,重新启动,然后执行上述步骤。

重新启动后,您应该会发现您的Nvidia驱动程序已更新为375.66


2.从非官方PPA安装打补丁的驱动程序:

  1. CTRL + ALT + T启动终端

  2. 运行以下命令:

    sudo -i
    add-apt-repository ppa:graphics-drivers/ppa
    apt-get update
    apt-get install nvidia-381
    
  3. 重新启动你的电脑,然后问题应该就已经解决了!计算机重新启动后,打开Nvidia X服务器设置。你会看到新的驱动程序版本:

    nvidia,graphics,suspend,visual-artifacts,ubuntu


3.手动安装打补丁的驱动程序(不推荐):

*.run文件安装Nvidia驱动程序通常不是一个好办法。这种做法有可能破坏其他程序。因此,如上所述,最好从PPA安装它们。不过,如果您乐于冒险并希望手动安装,那么下面所说过程在Ubuntu 16.04和GTX650上是有效的。

在安装修补驱动程序之前,您必须卸载当前的专有驱动程序并切换到Nouveau驱动程序:

nvidia,graphics,suspend,visual-artifacts,ubuntu

确保切换后重新启动。如果您无法安装您当前的专有驱动,则新的驱动将会与旧的有冲突,这回让事情变得很糟糕!

  1. 从Nvidia下载修补的驱动程序文件。 这是下载链接。

  2. 将文件保存到您的下载文件夹

  3. 从您的GUI会话中注销(您应该在登录屏幕上结束,然后再继续)

  4. CTRL + ALT + F1打开tty1

  5. 使用正常验证登录

  6. 运行以下命令:

    sudo service lightdm stop
    cd Downloads
    chmod +x NVIDIA-Linux-x86_64-381.09.run
    sudo ./NVIDIA-Linux-x86_64-381.09.run
    
  7. 接受许可协议:

    nvidia,graphics,suspend,visual-artifacts,ubuntu

  8. 它会抱怨distribution-provided pre-installer脚本失败。不管这些,仍然继续:

    nvidia,graphics,suspend,visual-artifacts,ubuntu

  9. 当询问您是否要使用dkms注册内核模块时,请选择Yes

    nvidia,graphics,suspend,visual-artifacts,ubuntu

  10. 当询问您是否要安装32位兼容性库时,请选择Yes

    nvidia,graphics,suspend,visual-artifacts,ubuntu

  11. 构建内核模块需要一段时间,需要耐心等待!

    nvidia,graphics,suspend,visual-artifacts,ubuntu

  12. 在询问您是否要运行nvidia-xconfig时选择Yes

    nvidia,graphics,suspend,visual-artifacts,ubuntu

  13. 选择Ok退出安装程序

  14. 差不多了!现在只需运行这些命令:

    rm ~/.Xauthority
    rm ~/.config/dconf/unity
    sudo shutdown -r now
    
  15. 计算机重新启动后,打开Nvidia X服务器设置。应该就可以看到新的驱动程序版本了:

    nvidia,graphics,suspend,visual-artifacts,ubuntu

本文由andy整理自

  1. Strange artifacts along window borders after waking computer from sleep mode

本文由《纯净天空》出品。文章地址: https://vimsky.com/article/3598.html,未经允许,请勿转载。