You*_*Git 124 nvidia suspend graphics visual-artifacts
从 Suspend 唤醒 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 驱动程序的安装。
这是怎么回事,如何解决?
小智 79
注意:这是 Nvidia 发布修补驱动程序之前的临时解决方法。向下滚动以找到具有实际修复的其他答案。- 安卓开发
我在使用 GPU 时遇到了同样的问题:Nvidia GTX 970 with nvidia 375.39 driver on Ubuntu 16.04.2 LTS
自从最近升级 nvidia 驱动程序以来,我已经观察到了这一点。因此我怀疑这是驱动程序中的错误。
我在 nvidia 板上找到了答案。这是驱动程序中的一个已确认的错误,而 nvidia 显然已经在处理它。同时,可以重新启动compiz
compiz --replace
Run Code Online (Sandbox Code Playgroud)
摆脱文物。
该错误位于 Ubuntu 错误跟踪系统中,包括一个解决方法脚本,用于在恢复后自动重新启动 compiz。
Byt*_*der 59
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.
[...]
Run Code Online (Sandbox Code Playgroud)
Nvidia 终于解决了这个问题并发布了一个新的工作驱动程序版本: nvidia-381
此答案中描述的解决方案也已更新,现在建议升级到此固定版本,而不是降级到出现错误之前的最新版本。它仍然是相同的过程,您只需切换包名称。
一些用于 Ubuntu 的专有 Nvidia 图形驱动程序包(即nvidia-375
和nvidia-378
)存在问题,并且会在问题的屏幕截图中显示的窗口边框周围产生白色伪影。每次您暂停并再次从中醒来时,都会重复发生这种情况。
直到几天前nvidia-367
,Xenial 存储库中的包运行良好且可靠,但现在他们更新了它并将其转换为自动安装错误nvidia-375
版本的过渡包。
确保您确实拥有导致问题的 Nvidia 显卡,而不是来自不同品牌的显卡,但碰巧以类似的方式行为不端。为非 Nvidia 显卡安装 Nvidia 驱动程序不会有任何好处。
您可以通过检查以下命令的输出来验证这一点:
Run Code Online (Sandbox Code Playgroud)lspci -k | grep -iEA3 '3d|vga'
我现在的解决方案是从nvidia-375
或降级nvidia-378
到nvidia-370
,到目前为止似乎工作正常。
由于 Nvidia 发布了新的升级驱动程序版本nvidia-381
并修复了此错误,我们可以(并且应该)安装该驱动程序而不是降级。
该软件包在标准存储库中不可用,但您可以轻松地从 PPA 获取它,并通过运行以下命令用它替换当前的驱动程序:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt purge nvidia*
Run Code Online (Sandbox Code Playgroud)
sudo apt install nvidia-370
Run Code Online (Sandbox Code Playgroud)
sudo apt install nvidia-381
Run Code Online (Sandbox Code Playgroud)
完成该过程后,重新启动计算机并测试是否仍有任何问题。对我来说,他们已经走了。祝你好运。
You*_*Git 36
Nvidia 已经能够重现该问题,并且他们正在努力修复,该修复将包含在他们的下一个驱动程序版本中。(修复程序现已发布,请参阅以下部分)。
有关更多信息,请参阅Nvidia 开发者论坛上的此主题。Launchpad上也报告了此错误。
修复来自测试版驱动程序 381.09 更新日志中的相关屏幕截图:
此驱动程序当前不在任何存储库中
在上述更改之前,您将需要手动安装新驱动程序更新: 381.09 驱动程序现在位于非官方存储库中。您可以从非官方 PPA 安装修补过的驱动程序,也可以手动安装。
Nvidia 于 2017 年 5 月 4 日推送了其发布驱动程序的更新,其中包含您正在寻找的错误修复。更新的发布驱动程序已给出版本375.66
由于这375.66
是在官方存储库中,因此加载修补过的驱动程序非常简单。
如果您目前使用的是有问题的375.39
版本,那么应该只需要一个简单的:
sudo apt-get update
sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)
如果您使用的是旧版驱动程序,那么您应该执行以下操作:
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
接下来是在 Additional Drivers 中切换到新的驱动程序版本:
如果您当前使用的是手动安装的驱动程序,则应卸载它,重新启动,然后执行上述步骤。
重新启动后,您应该会发现您的 Nvidia 驱动程序已更新为375.66
.
如果您的显卡足够旧,驱动程序的 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
Run Code Online (Sandbox Code Playgroud)
因此,如果您的 GPU 受 340 支持,那么您只需在其他驱动程序中切换到版本 340。(版本 340 没有这个错误。)
切换驱动版本后一定要重启。
火了与终端CTRL+ ALT+T
运行这些命令:
sudo -i
add-apt-repository ppa:graphics-drivers/ppa
apt-get update
apt-get install nvidia-381
Run Code Online (Sandbox Code Playgroud)重新启动您的计算机,您应该一切顺利!计算机重新启动后,打开 Nvidia X 服务器设置。运气好的话,你会看到新的驱动程序版本:
从*.run
文件安装 Nvidia 驱动程序通常不是一个好主意。它往往会破坏事物。因此,如上所述,最好从 PPA 安装它们。尽管如此,如果您喜欢冒险并想手动安装它们,那么这个过程对我来说适用于 Ubuntu 16.04 和 GTX650。
在安装补丁驱动之前,您必须卸载您当前的专有驱动并切换到 Nouveau 驱动:
切换后一定要重启。如果您未能卸载当前的专有驱动程序,新驱动程序将与旧驱动程序冲突,您将破坏一切!
从 Nvidia 下载修补过的驱动程序文件。这是一个直接链接。
将文件保存到您的下载文件夹
从您的 GUI 会话中注销(在继续之前,您应该在登录屏幕上结束)
火起来tty1
与CTRL+ ALT+F1
使用您的普通凭据登录
运行这些命令:
sudo service lightdm stop
cd Downloads
chmod +x NVIDIA-Linux-x86_64-381.09.run
sudo ./NVIDIA-Linux-x86_64-381.09.run
Run Code Online (Sandbox Code Playgroud)接受许可协议:
它会抱怨分发提供的预安装程序脚本失败。继续:
选择Yes当被问及如果你想注册DKMS的内核模块:
选择Yes当被问及如果你想安装32位兼容性库:
构建内核模块需要一段时间,所以请耐心等待!
选择Yes当被问及如果您想运行nvidia-xconfig
:
选择Ok退出安装程序
差不多好了!现在只需运行这些命令:
rm ~/.Xauthority
rm ~/.config/dconf/unity
sudo shutdown -r now
Run Code Online (Sandbox Code Playgroud)计算机重新启动后,打开 Nvidia X 服务器设置。运气好的话,你会看到新的驱动程序版本:
小智 7
此问题存在于 375 和 378 驱动程序中...
鉴于简单地杀死 compiz 进程修复了错误的边界问题,我测试了一个每次系统唤醒后都可以在我的 Ubuntu 16.04 系统上运行的解决方案。
我创建了一个fixbadborders
在目录中调用的脚本/lib/systemd/system-sleep
。它包含以下内容:
#!/bin/sh
## This file (or a link to it) must be in the folder /lib/systemd/system-sleep/
## Purpose: Kill compiz after system wakes up from sleep.
## This will fix bad window borders caused by Nvidia driver 375.39.
kill $(ps -C compiz -o pid=)
Run Code Online (Sandbox Code Playgroud)
允许脚本具有执行权限:
sudo chmod +x fixbadborders
Run Code Online (Sandbox Code Playgroud)
要删除此脚本:
sudo rm /lib/systemd/system-sleep/fixbadborders
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
旧驱动程序将自动卸载并加载新驱动程序。通过重新启动计算机(因为 NVIDIA 驱动程序需要嵌入内核)跟进,一切都应该正常工作。您可以通过运行以下命令来检查驱动程序是否已正确安装:
nvidia-settings --version
Run Code Online (Sandbox Code Playgroud)
在更新到最新驱动程序之前,请务必恢复本文中描述的任何补丁。例如,如果您按如下所述安装了打补丁的 Unity 版本,请运行此命令以恢复到正常版本:
sudo ppa-purge ppa:kaihengfeng/lp1292830
Run Code Online (Sandbox Code Playgroud)
请注意,您需要ppa-purge
安装,可以这样做:
sudo apt install ppa-purge
Run Code Online (Sandbox Code Playgroud)
如果更新不是一个选项(太旧的卡,公司政策等):
Launchpad 的Kai-Heng Feng 非常友好地将一个 Unity 版本上传到他自己的 PPA ( ppa:kaihengfeng/lp1292830
) 中,该版本应该可以修补这个问题。为了解决这个问题,只需通过运行以下命令添加他的 PPA:
sudo add-apt-repository ppa:kaihengfeng/lp1292830
sudo apt update
sudo apt full-upgrade
Run Code Online (Sandbox Code Playgroud)
完成后,重新启动系统或通过注销然后重新登录来重新启动 X11。
或者,您还可以执行以下任一操作:
归档时间: |
|
查看次数: |
31189 次 |
最近记录: |