几天前,我在 Ubuntu 16.04 上运行了sudo apt update
+ upgrade
。我已经大约 2 个月没有这样做了。在此期间,我将显卡从 GTX 1060 换成了 GTX 1070。
今天当我尝试登录时,我发现我进入了一个烦人的无限登录循环。这是我的日志内容xsessions-errors
:
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 155 (NV-GLX)
Minor opcode of failed request: 4 ()
Resource id in failed request: 0x3d0
Serial number of failed request: 46
Current serial number in output stream: 46
openConnection: connect: No such file or directory
cannot connect to brltty at :0
[...]
看看这个问题有希望的答案问题,我尝试了以下方法:
- 检查所有权是否
.Xauthority
属于我,以及不属于我root
(它确实属于我) - 重新配置
lightdm
- 重新安装
lightdm
- 检查我的是否
/home/
已满(使用率为 44%)
全部失败。然后我开始相信我的问题出在 NVIDIA 驱动程序更新上,因为我在各个网站上读到多个来源,解释这是一个常见问题。值得补充的是,我最近没有做过任何修改或./profile
类似的事情,也从来没有运行过这个命令startx
。
我发现以下与 NVIDIA 驱动程序相关的问题的潜在解决方案:
我的问题是,我在电脑上花了数十个小时配置 CUDA,与 NVIDIA 驱动程序和各种软件包保持微妙的平衡。为了安装 CUDA,我还必须安装特定的 Ubuntu 内核版本 (4.4)。
如果我接触驱动程序,我的 CUDA 环境是否有可能崩溃?我实际上还可以尝试其他方法来解决此问题吗?
答案1
解决方案是尝试重新安装驱动程序并重新配置 lightdm。在最坏的情况下,您将需要再次安装 CUDA,但请先尝试通过从 nvidia 下载安装程序(shell 脚本)重新安装驱动程序。
如果我接触驱动程序,我的 CUDA 环境是否有可能崩溃?我实际上还可以尝试其他方法来解决此问题吗?
不一定。只要您的驱动程序到位,nvcc
就应该可以正常运行。
答案2
对于面临同样问题的其他人,我建议尝试以下操作:
mv .Xauthority .Xauthority-backup
重命名.Xauthority
并在下次登录尝试时强制创建新的。如果问题出在这里,那么登录就可以正常工作。
然而,就我而言,真正有效的方法是重新安装 NVIDIA 驱动程序。对于 CUDA 用户,需要安装的驱动程序版本由文档。就我而言,由于我拥有 CUDA 9.1,因此它的驱动程序版本至少是 390.46(当然,根据我写这个答案的时间)。
我按照本网站重新安装我需要的驱动程序。我实际上还发现了这篇来自CUDA 论坛,由一位版主撰写,解释了他使用此来源获取驱动程序的经验,这些驱动程序可能并不总是有效,因为它们不是由 NVIDIA 正式发布的。就我而言,它仍然有效,因此我分享了它。
首先,删除已安装的 NVIDIA 驱动程序:
sudo apt-get purge nvidia*
添加图形驱动程序的存储库:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
然后安装正确版本的驱动程序(在我的情况下,xxx = 390)
sudo apt install nvidia-xxx
最后
reboot
现在登录问题应该已经解决了。就我而言,CUDA 环境没有受到影响,我的所有项目仍然正常运行。