这是Nvidia 驱动程序中的一个错误。

这是Nvidia 驱动程序中的一个错误。

注意:Nvidia 已发布官方修复程序;请参阅ByteCommander 的回答我自己的答案和/或Kaz Wolfe 的回答


从挂起状态唤醒 Ubuntu 16.04 后,所有窗口、上下文菜单等周围都会出现以下图形故障:

在此处输入图片描述


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

  • NVIDIA GeForce 610M,驱动程序版本 375.39、340.102
  • NVIDIA GT 630M,驱动程序版本 375.39
  • NVIDIA GTX 650,驱动程序版本 375.39
  • NVIDIA GT 740M,驱动程序版本 378.13
  • NVIDIA GTX 745,未知驱动程序版本
  • NVIDIA GTX 850M,驱动程序版本 375.39、378.13
  • NVIDIA GT 940M,驱动程序版本 375.39
  • NVIDIA GTX 950M,未知驱动程序版本
  • NVIDIA GTX 960M,驱动程序版本 378.13
  • NVIDIA GTX 970,驱动程序版本 375.39
  • NVIDIA GTX 970M,驱动程序版本 375.39
  • NVIDIA GTX 980 TI,未知驱动程序版本
  • NVIDIA GTX 1060,驱动程序版本 375.26、375.39、378.09
  • NVIDIA GTX 1070,驱动程序版本 378.09

以上列表来自 AU 上其他用户的报告,线程,以及线。

注意:这绝不是一份详尽的清单。它可能影响几乎所有 Nvidia 显卡。

此外,该问题已在全新安装中重现,唯一的变化是软件更新和最新 NVIDIA 驱动程序的安装。


发生了什么事?如何解决?

答案1

注意:在 Nvidia 发布修补驱动程序之前,这只是一个临时解决方法。向下滚动以查找其他具有实际修复的答案。- Android 开发人员


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

自从最近升级 nvidia 驱动程序以来,我就注意到了这个问题。因此我怀疑这是驱动程序中的一个错误。

我找到了答案在 nvidia 主板上。这是驱动程序中已确认的一个错误,Nvidia 显然已开始着手解决。与此同时,你可以使用以下命令重新启动 compiz

compiz --replace

将这些文物除去。

该错误位于 Ubuntu 错误跟踪系统中包括一个解决方法脚本,用于在恢复后自动重新启动 compiz。

答案2

更新2:

Nvidia现在也更新了他们的nvidia-375驱动程序版本375.66,即可从所有当前支持版本的标准 Ubuntu 存储库获取

这意味着从现在开始,你不必再采取任何特殊行动,除了像往常一样进行正常的系统更新。graphics-drivers如果您不需要 PPA 中的驱动程序包,则不需要它们。

以下是来自 16.04 主存储库的软件包中关于此错误的变更日志摘录:

$ apt changelog nvidia-375=375.66-0ubuntu0.16.04.1

  [...]
    - Fixed a regression that caused corruption in certain
      applications, such as window border shadows in Unity, after
      resuming from suspend.
  [...]

更新:

Nvidia 最终修复了此问题并发布了新的可用驱动程序版本:nvidia-381

此答案中描述的解决方案也已更新,现在建议升级到此修复版本,而不是降级到错误之前的最新版本。不过,它仍然是相同的过程,您只需切换软件包名称即可。


问题原因:

Ubuntu 的一些专有 Nvidia 图形驱动程序包(即nvidia-375nvidia-378)存在错误,会在窗口边框周围产生白色伪影,如问题中的屏幕截图所示。每次您暂停并再次唤醒时,都会重复发生这种情况。

直到几天前,nvidia-367Xenial 存储库中的软件包还运行良好且可靠,但现在他们对其进行了更新并将其转换为过渡包,从而自动安装有缺陷的nvidia-375版本。

解决方案(Nvidia 发布错误修复后更新):

确保你确实有一块导致问题的 Nvidia 显卡,而不是其他品牌的显卡,碰巧也出现了类似的问题。为非 Nvidia 显卡安装 Nvidia 驱动程序不会有什么用处。

您可以通过检查以下命令的输出来验证这一点:

lspci -k | grep -iEA3 '3d|vga'

nvidia-375我现在的解决方案是从或降级nvidia-378nvidia-370,到目前为止一切运行良好。
由于 Nvidia 发布新升级的驱动程序版本nvidia-381修复此错误后,我们可以(并且应该)安装它而不是降级。

此软件包不可从标准存储库获得,但您可以通过运行以下命令从 PPA 轻松获取它并用它替换您当前的驱动程序:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt purge nvidia*

sudo apt install nvidia-370

sudo apt install nvidia-381

完成该过程后,重新启动计算机并测试是否仍有问题。对我来说,问题已经消失。祝你好运。

答案3

Nvidia 驱动程序中的一个错误。

Nvidia 已经能够重现该问题,并且他们正在努力修复该问题,该问题将包含在下一个驱动程序版本中。(修复程序现已发布,请参阅以下部分)。

Nvidia 开发者论坛上的这个帖子了解更多信息。此错误还在 Launchpad 上报告

谢谢@Stefan因为他出色的侦探技能揭露这些信息


Nvidia 终于发布了官方修复版本!

  • 该修复由测试版驱动程序 381.09 提供相关截图来自变更日志在此处输入图片描述

  • 此驱动程序目前不在任何存储库中

  • 在进行上述更改之前,您将需要手动安装新的驱动程序更新:381.09 驱动程序现在位于非官方存储库中。您可以从非官方 PPA 安装修补后的驱动程序,也可以手动安装。

  • 更新 - 现在已在官方仓库中修复:

    感谢@ubfan1为了报告此! 详情请参阅以下部分


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

Nvidia 于 2017 年 5 月 4 日向其发布驱动程序推送了更新,其中包含您正在寻找的错误修复等内容。更新后的发布驱动程序已获得版本375.66

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

  • 如果您当前使用的是有缺陷的375.39版本,那么需要做的只是:

    sudo apt-get update
    sudo apt-get upgrade
    

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

    sudo apt-get update
    

    然后在“附加驱动程序”中切换到新的驱动程序版本:

    在此处输入图片描述


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

重新启动后,你会发现你的 Nvidia 驱动程序已经更新为375.66


2. 如果您不需要较新的驱动程序来兼容您的 GPU:*

*请注意,本节已被第 1 节取代

如果您的显卡足够旧,可以得到驱动程序 v340 的支持,则无需从非官方 PPA 安装较新版本。但是,对于拥有 GTX 9 系列或 10 系列等较新显卡的用户,您将需要较新的驱动程序。

为方便起见,下面是 340 版驱动程序支持的卡的完整列表:

GeForce 800M Series (Notebooks):
GeForce GTX 880M, GeForce GTX 870M, GeForce GTX 860M, GeForce GTX 850M, GeForce 845M, GeForce 840M, GeForce 830M, GeForce 825M, GeForce 820M, GeForce 810M

GeForce 700 Series:
GeForce GTX TITAN Z, GeForce GTX TITAN Black, GeForce GTX TITAN, GeForce GTX 780 Ti, GeForce GTX 780, GeForce GTX 770, GeForce GTX 760, GeForce GTX 760 Ti (OEM), GeForce GTX 750 Ti, GeForce GTX 750, GeForce GTX 745, GeForce GT 740, GeForce GT 730, GeForce GT 720, GeForce GT 710, GeForce GT 705

GeForce 700M Series (Notebooks):
GeForce GTX 780M, GeForce GTX 770M, GeForce GTX 765M, GeForce GTX 760M, GeForce GT 755M, GeForce GT 750M, GeForce GT 745M, GeForce GT 740M, GeForce GT 735M, GeForce GT 730M, GeForce GT 720M, GeForce GT 710M, GeForce 720M, GeForce 710M, GeForce 705M

GeForce 600 Series:
GeForce GTX 690, GeForce GTX 680, GeForce GTX 670, GeForce GTX 660 Ti, GeForce GTX 660, GeForce GTX 650 Ti BOOST, GeForce GTX 650 Ti, GeForce GTX 650, GeForce GTX 645, GeForce GT 645, GeForce GT 640, GeForce GT 635, GeForce GT 630, GeForce GT 620, GeForce GT 610, GeForce 605

GeForce 600M Series (Notebooks):
GeForce GTX 680MX, GeForce GTX 680M, GeForce GTX 675MX, GeForce GTX 675M, GeForce GTX 670MX, GeForce GTX 670M, GeForce GTX 660M, GeForce GT 650M, GeForce GT 645M, GeForce GT 640M, GeForce GT 640M LE, GeForce GT 635M, GeForce GT 630M, GeForce GT 625M, GeForce GT 620M, GeForce 610M

GeForce 500 Series:
GeForce GTX 590, GeForce GTX 580, GeForce GTX 570, GeForce GTX 560 Ti, GeForce GTX 560 SE, GeForce GTX 560, GeForce GTX 555, GeForce GTX 550 Ti, GeForce GT 545, GeForce GT 530, GeForce GT 520, GeForce 510

GeForce 500M Series (Notebooks):
GeForce GTX 580M, GeForce GTX 570M, GeForce GTX 560M, GeForce GT 555M, GeForce GT 550M, GeForce GT 540M, GeForce GT 525M, GeForce GT 520M, GeForce GT 520MX

GeForce 400 Series:
GeForce GTX 480, GeForce GTX 470, GeForce GTX 465, GeForce GTX 460 SE v2, GeForce GTX 460 SE, GeForce GTX 460, GeForce GTS 450, GeForce GT 440, GeForce GT 430, GeForce GT 420, GeForce 405

GeForce 400M Series (Notebooks):
GeForce GTX 485M, GeForce GTX 480M, GeForce GTX 470M, GeForce GTX 460M, GeForce GT 445M, GeForce GT 435M, GeForce GT 425M, GeForce GT 420M, GeForce GT 415M, GeForce 410M, GeForce 405M

GeForce 300 Series:
GeForce GT 340, GeForce GT 330, GeForce GT 320, GeForce 315, GeForce 310

GeForce 300M Series (Notebooks):
GeForce GTS 360M, GeForce GTS 350M, GeForce GT 335M, GeForce GT 330M, GeForce GT 325M, GeForce GT 320M, GeForce 320M, GeForce 315M, GeForce 310M, GeForce 305M

GeForce 200 Series:
GeForce GTX 295, GeForce GTX 285, GeForce GTX 280, GeForce GTX 275, GeForce GTX 260, GeForce GTS 250, GeForce GTS 240, GeForce GT 230, GeForce GT 240, GeForce GT 220, GeForce G210, GeForce 210, GeForce 205

GeForce 200M Series (Notebooks):
GeForce GTX 285M, GeForce GTX 280M, GeForce GTX 260M, GeForce GTS 260M, GeForce GTS 250M, GeForce GT 240M, GeForce GT 230M, GeForce GT 220M, GeForce G210M, GeForce G205M

GeForce 100 Series:
GeForce GT 140, GeForce GT 130, GeForce GT 120, GeForce G100

GeForce 100M Series (Notebooks):
GeForce GTS 160M, GeForce GTS 150M, GeForce GT 130M, GeForce GT 120M, GeForce G 110M, GeForce G 105M, GeForce G 103M, GeForce G 102M

GeForce 9 Series:
GeForce 9800 GX2, GeForce 9800 GTX/GTX+, GeForce 9800 GT, GeForce 9600 GT, GeForce 9600 GSO, GeForce 9600 GSO 512, GeForce 9600 GS, GeForce 9500 GT, GeForce 9500 GS, GeForce 9400 GT, GeForce 9400, GeForce 9300 GS, GeForce 9300 GE, GeForce 9300 SE, GeForce 9300, GeForce 9200, GeForce 9100

GeForce 9M Series (Notebooks):
GeForce 9800M GTX, GeForce 9800M GTS, GeForce 9800M GT, GeForce 9800M GS, GeForce 9700M GTS, GeForce 9700M GT, GeForce 9650M GT, GeForce 9650M GS, GeForce 9600M GT, GeForce 9600M GS, GeForce 9500M GS, GeForce 9500M G, GeForce 9400M G, GeForce 9400M, GeForce 9300M GS, GeForce 9300M G, GeForce 9200M GS, GeForce 9100M G

GeForce 8 Series:
GeForce 8800 Ultra, GeForce 8800 GTX, GeForce 8800 GTS 512, GeForce 8800 GTS, GeForce 8800 GT, GeForce 8800 GS, GeForce 8600 GTS, GeForce 8600 GT, GeForce 8600 GS, GeForce 8500 GT, GeForce 8400 GS, GeForce 8400 SE, GeForce 8400, GeForce 8300 GS, GeForce 8300, GeForce 8200, GeForce 8100 /nForce 720a

GeForce 8M Series (Notebooks):
GeForce 8800M GTX, GeForce 8800M GTS, GeForce 8700M GT, GeForce 8600M GT, GeForce 8600M GS, GeForce 8400M GT, GeForce 8400M GS, GeForce 8400M G, GeForce 8200M G, GeForce 8200M

Quadro Series:
Quadro K6000, Quadro K5200, Quadro K5000, Quadro K4000, Quadro K4200, Quadro K2200, Quadro K2000, Quadro K2000D, Quadro K620, Quadro K600, Quadro K420, Quadro 6000, Quadro 5000, Quadro 4000, Quadro 2000, Quadro 2000D, Quadro 600, Quadro 410, Quadro 400

Quadro Series (Notebooks):
Quadro K5100M, Quadro K5000M, Quadro K4100M, Quadro K4000M, Quadro K3100M, Quadro K2100M, Quadro K3000M, Quadro K2000M, Quadro K1100M, Quadro K1000M, Quadro K610M, Quadro K510M, Quadro K500M, Quadro 5010M, Quadro 5000M, Quadro 4000M, Quadro 3000M, Quadro 2000M, Quadro 1000M

Quadro FX Series:
Quadro CX, Quadro FX 370, Quadro FX 370 Low Profile, Quadro FX 380, Quadro FX 380 Low Profile, Quadro FX 570, Quadro FX 580, Quadro FX 1700, Quadro FX 1800, Quadro FX 3700, Quadro FX 3800, Quadro FX 4600, Quadro FX 4700 X2, Quadro FX 4800, Quadro FX 5600, Quadro FX 5800

Quadro FX Series (Notebooks):
Quadro FX 3800M, Quadro FX 3700M, Quadro FX 3600M, Quadro FX 2800M, Quadro FX 2700M, Quadro FX 1800M, Quadro FX 1700M, Quadro FX 1600M, Quadro FX 880M, Quadro FX 770M, Quadro FX 570M, Quadro FX 380M, Quadro FX 370M, Quadro FX 360M

Quadro NVS Series:
Quadro NVS 290, Quadro NVS 295, NVS 510, NVS 315, NVS 310, NVS 300, Quadro NVS 420, Quadro NVS 450

Quadro NVS Series (Notebooks):
NVS 5400M, NVS 5200M, NVS 5100M, NVS 4200M, NVS 3100M, NVS 2100M, Quadro NVS 320M, Quadro NVS 160M, Quadro NVS 150M, Quadro NVS 140M, Quadro NVS 135M, Quadro NVS 130M

Quadro Plex Series:
Quadro Plex Model II, Quadro Plex D Series, Quadro Plex Model IV, Quadro Plex 7000

Quadro Sync Series:
Quadro Sync, Quadro G-Sync II

Quadro SDI:
Quadro SDI

GRID Series:
GRID K2, GRID K520

NVS Series:
Quadro NVS 290, Quadro NVS 295, NVS 510, NVS 315, NVS 310, NVS 300, Quadro NVS 420, Quadro NVS 450

NVS Series (Notebooks):
NVS 5400M, NVS 5200M, NVS 5100M, NVS 4200M, NVS 3100M, NVS 2100M, Quadro NVS 320M, Quadro NVS 160M, Quadro NVS 150M, Quadro NVS 140M, Quadro NVS 135M, Quadro NVS 130M

ION (Desktops):
ION

ION (Notebooks):
ION

ION LE (Desktops):
ION LE

ION LE (Notebooks):
ION LE

因此,如果您的 GPU 支持 340,那么您只需在附加驱动程序中切换到版本 340 即可。(版本 340 没有此错误。)

在此处输入图片描述

切换驱动程序版本后请务必重新启动。


3. 从非官方 PPA 安装修补的 [beta] 驱动程序(推荐):

  1. 使用 ++CTRL启动终端ALTT

  2. 运行以下命令:

    sudo -i
    add-apt-repository ppa:graphics-drivers/ppa
    apt-get update
    apt-get install nvidia-381
    
  3. 重新启动计算机,然后你应该一切顺利!计算机重启后,打开 Nvidia X Server Settings。运气好的话,你会看到新的驱动程序版本:

    在此处输入图片描述


4. 至手动安装已修补的测试版驱动程序(不是推荐):

从文件安装 Nvidia 驱动程序*.run通常不是一个好主意。它往往会破坏一些东西。因此,最好从 PPA 安装它们,如上所述。不过,如果你喜欢冒险并想手动安装它们,那么这就是我在 Ubuntu 16.04 和 GTX650 上工作的过程。

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

在此处输入图片描述

切换后务必重新启动。如果您无法卸载当前的专有驱动程序,新驱动程序将与旧驱动程序发生冲突,从而导致系统崩溃!

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

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

  3. 从 GUI 会话中注销(继续操作之前,您应该先进入登录屏幕)

  4. tty1使用CTRL++启动ALTF1

  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. 接受许可协议:

    在此处输入图片描述

  8. 它会抱怨发行版提供的预安装程序脚本失败。无论如何继续:

    在此处输入图片描述

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

    在此处输入图片描述

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

    在此处输入图片描述

  11. 构建内核模块需要一段时间,因此要有耐心!

    在此处输入图片描述

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

    在此处输入图片描述

  13. 选择Ok退出安装程序

  14. 快完成了!现在只需运行以下命令:

    rm ~/.Xauthority
    rm ~/.config/dconf/unity
    sudo shutdown -r now
    
  15. 计算机重启后,打开 Nvidia X Server Settings。运气好的话,你会看到新的驱动程序版本:

    在此处输入图片描述

答案4

NVIDIA 已发布更新的驱动程序版本,修复了此问题。381.09 之后的任何驱动程序现在都不会再出现此问题,除非 NVIDIA 再次出错。

在驱动程序到达主存储库之前,可以从非官方 NVIDIA 驱动程序 PPA 下载它们。这样做可以确保您不需要弄乱安装程序(这被广泛认为是一个坏主意)或 Nouveau。同样,它将允许通过apt而不是 NVIDIA 安装程序留下的危险的半配置来安装/卸载驱动程序。此外,这将不是除非您的系统有问题,否则不会导致任何登录循环或错误。要安装,请运行:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-381

旧驱动程序将自动卸载,新驱动程序将被加载。然后重新启动计算机(因为 NVIDIA 驱动程序需要嵌入到内核中),一切都应该正常工作。您可以通过运行以下命令来检查驱动程序是否已正确安装:

nvidia-settings --version

请务必恢复本文中描述的所有补丁更新到最新的驱动程序。例如,如果您安装了下面描述的 Unity 修补版本,请运行此命令以恢复到正常版本:

sudo ppa-purge ppa:kaihengfeng/lp1292830 

请注意,您需要ppa-purge安装,可以像这样完成:

sudo apt install ppa-purge

如果无法更新(卡太旧、公司政策等):

冯开恒Launchpad 的一位用户非常好心地将 Unity 的一个版本上传到了他自己的 PPA(ppa:kaihengfeng/lp1292830) 应该可以解决这个问题。为了解决这个问题,只需通过运行以下命令添加他的 PPA:

sudo add-apt-repository ppa:kaihengfeng/lp1292830 
sudo apt update
sudo apt full-upgrade

完成后,重新启动系统或通过注销然后重新登录来重新启动 X11。

或者,您也可以执行以下任一操作:

  • 切换到英特尔卡
    如果您正在运行 NVIDIA Prime,则可以切换到英特尔卡,这将解决此问题。但请注意,这将阻止系统使用全部图形功能。
  • 降级驱动程序
    根据对错误报告的一些评论,降级至 NVIDIA 驱动程序 367.57 应该可以完全解决问题。由于 PPA 中不再存在此版本,因此您需要直接从 NVIDIA 下载(64 位) (32 位) (32 位 ARM)

相关内容