自 2016 年以来,我一直在 nVidia GeForce GTX 1080 台式机以及带有 nVidia Quadro M1200 卡的笔记本电脑上使用 Ubuntu。
但自从最近升级以来,我一直遇到奇怪的问题。想知道其他人是否也遇到过这些问题和/或解决方案。
我无法在两台电脑上登录 Gnome(即登录循环)。我尝试了几种修复此登录循环的方法,这些方法都是我在互联网上找到的,但都没有成功。
如果我删除 nvidia-driver-435,并恢复到 Nouveau 驱动程序,那么一切都会正常。但是,我需要该驱动程序来完成一些 OpenGL 项目……
所以我不确定这是 Ubuntu 的问题还是 Gnome 的问题......
它似乎不是 nvidia 驱动程序,因为 19.04 运行良好。
编辑
以下是错误行~/.local/share/xorg/Xorg.0.log
(EE) open /dev/fb0: Permission denied
(EE) client bug: timer event10 debounce: offset negative (-33ms)
(EE) client bug: timer event10 debounce short: offset negative (-46ms)
我还尝试更新/etc/X11/Xwrapper.config
以下内容:
allowed_users=anybody
needs_root_rights=yes
但那没有用。
答案1
这可能是 X.org 配置问题。您能否用与登录失败对应的 X.org 日志来更新您的问题?
如何查找日志文件:从您尝试打开 X 会话的用户的主目录中,转到目录.local/share/xorg
。在那里您应该会找到几个日志文件,取最近一个与失败的登录尝试相对应的文件。您可以使用 按照修改时间的递增顺序列出文件ls -lrt
。可以在文件中检测到失败的 X 登录,其中行以 开头(EE)
,结尾处(可能)有 字样fatal error
。
如果您还不能通过 X 登录来获取 X.org 日志,请不要忘记,您可以通过按Ctrl+ Alt+登录 VT(例如 VT3 F3)。如果您以该用户身份进行的上一次 X 登录尝试失败,只需将最新的 X.org 日志文件复制到某个地方,然后通过您选择的任何方式将其发布到这里即可。
编辑 : 您确定这是正确的日志文件吗?我的意思是在 X 登录尝试失败时生成的日志文件?因为这些错误看起来根本不是致命的。看起来您只是拿走了当前正在运行的 X.org 文件……
open /dev/fb0: Permission denied
在 X 日志文件中很常见,我认为这是因为它在猜测配置时尝试加载一些帧缓冲区驱动程序。我也遇到过这种情况。为了避免该错误,您应该设置显式 X 配置,而不是让 X.org 猜测,但这可能与您的问题无关。
通常不需要以 root 身份运行 X 服务器,根据我的经验,X 包装器似乎可以自行正确猜测是否需要 root 权限,但如果您觉得这样更舒服,可以暂时保留它。但是,一旦一切运行正常,我建议您恢复以前的自动设置(甚至非 root)。
当然问题可以与 X 服务器无关,但事实上更改驱动程序可以解决问题,而没有更改会话管理器(例如转到 Xfce),这严重指向 X.org 配置问题。此外,显示管理器使用 Wayland 而不是 X 来显示登录屏幕。顺便说一句,您也可以尝试使用它,从登录屏幕,一旦您选择了用户,单击齿轮图标并选择Wayland 上的 Ubuntu,但即使它能工作,最好能解决 X 配置问题。
您的机器上的 Prime 配置文件选择是什么?输入prime-select query
以获取答案...
您可以尝试重新启动 gdm 来查看情况是否有所改善:systemctl restart gdm.service
重新编辑: 很高兴你找到了解决方法!不过,我并不认为这是解决方案……
实际上,我在升级后遇到了与您类似的问题。实际上甚至更糟,因为我无法登录(甚至无法进行文本登录),并且 Grub 菜单不再显示(我Esc当时不知道我必须按下),所以没有恢复选项,但我设法通过intel
在 chrooted root 登录环境中将 Nvidia Prime 配置文件设置为摆脱这种情况。一旦我能够再次启动,我注意到 nvidia 驱动程序在 initramfs 中,因此提前加载,并设法通过清除软件包将它们从那里删除cryptsetup-initramfs
,这会强制使用FRAMEBUFFER
initramfs 选项并将 Nvidia 驱动程序放在那里,无论如何,在 Optimus 系统上不应该出现这种情况。
完成所有这些操作后,一切似乎又恢复正常了,但我不确定与 initramfs 相关的操作是否真的有必要解决我的问题,这可能与我的 Nvidia 驱动程序 v430 与新的 Prime 配置文件不兼容有关on-demand
,我已更新到 v435。
但是,看到您采用的解决方案,我又想起了与 initramfs 相关的问题。也许如果您清除了cryptsetup-initramfs
可能不需要的包(除非您加密了根文件系统),那么这个问题也能解决。无论如何,这更像是一种变通方法,而不是解决方案,因为您必须在使用 Nvidia 驱动程序或加密根文件系统之间做出选择。