我刚刚安装了 NVIDIA 专有驱动程序(来自附加驱动程序的 nvidia-driver-460)。重启后,屏幕变黑,光标闪烁。几秒钟后,我使用 Ctl + Alt + F2 移动到 tty,没等我登录,图形界面就启动了。
我重新启动了几次,但这种现象似乎仍在继续:它会给我一个黑屏,光标闪烁,直到我移动到不同的 tty,然后 X 启动并要求我正常登录。
有没有什么办法解决这一问题?
答案1
我正在使用 nvidia-driver-460 版本 460.39-0ubuntu0.20.04.1。
Ctrl仅在键入+ Alt+F2随后Ctrl+ Alt+后才会出现 GDM 屏幕F1。
请评论并告诉我以下内容是否能帮您解决问题?另外,请将自己标记为受以下影响Launchpad 中的 Bug #1811023所以这个问题已经得到解决。
解决方案
下面的办法似乎已经为我解决了这个问题,现在无需借助上述“技巧”就可以显示 GDM 屏幕。
编辑文件
/lib/udev/rules.d/61-gdm.rules
。sudo nano /lib/udev/rules.d/61-gdm.rules
原始文件如下所示:
# disable Wayland on Hi1710 chipsets ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", RUN+="/usr/lib/gdm3/gdm-disable-wayland" # disable Wayland when using the proprietary nvidia driver DRIVER=="nvidia", RUN+="/usr/lib/gdm3/gdm-disable-wayland"
注释掉所有如下所示的行:
# disable Wayland on Hi1710 chipsets # ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", RUN+="/usr/lib/gdm3/gdm-disable-wayland" # disable Wayland when using the proprietary nvidia driver # DRIVER=="nvidia", RUN+="/usr/lib/gdm3/gdm-disable-wayland"
输入Ctrl+X退出,然后输入Y,然后Enter输入 保存文件。
确保 Wayland不是在 GDM 中禁用。
sudo nano /etc/gdm3/custom.conf
如果尚未注释,请注释“WaylandEnable”行,如下所示:
# WaylandEnable=false
输入Ctrl+X退出。如果进行了更改,请输入Y,然后Enter输入 保存文件。
最后,重新启动。
解释
该/lib/udev/rules.d/61-gdm.rules
文件旨在阻止 GDM 在安装 NVIDIA 专有驱动程序时显示 Wayland 会话选项,因为 NVIDIA 不支持 Wayland。
然而,在 Ubuntu 20.04 中,似乎还有另一个冗余机制或规则也阻止了 GDM 显示 Wayland 会话选项。我怀疑这一点,因为即使进行了上述更改,GDM 中仍然不会显示 Wayland 会话选项。(设置WaylandEnable=true
无效/etc/gdm3/custom.conf
)。
因此,我预感到有两个相互冲突的规则,而禁用其中一条规则(即/lib/udev/rules.d/61-gdm.rules
)似乎可以消除冲突。
这是journalctl
启动日志前进行上述更改后,您可以看到加载“fb”模块时出现错误。
/usr/lib/gdm3/gdm-x-session[964]: (II) Loading sub module "fb"
/usr/lib/gdm3/gdm-x-session[964]: (II) LoadModule: "fb"
/usr/lib/gdm3/gdm-x-session[964]: (II) Loading /usr/lib/xorg/modules/libfb.so
/usr/lib/gdm3/gdm-x-session[964]: (II) Module fb: vendor="X.Org Foundation"
/usr/lib/gdm3/gdm-x-session[964]: compiled for 1.20.9, module version = 1.0.0
/usr/lib/gdm3/gdm-x-session[964]: ABI class: X.Org ANSI C Emulation, version 0.4
/usr/lib/gdm3/gdm-x-session[964]: Xorg: ../../../../dix/privates.c:384: dixRegisterPrivateKey: Assertion `!global_keys[type].created' failed.
/usr/lib/gdm3/gdm-x-session[964]: (EE)
/usr/lib/gdm3/gdm-x-session[964]: (EE) Backtrace:
这是journalctl
启动日志后进行上述更改后,您可以看到“fb”模块已成功加载。
/usr/lib/gdm3/gdm-x-session[1357]: (II) Loading sub module "fb"
/usr/lib/gdm3/gdm-x-session[1357]: (II) LoadModule: "fb"
/usr/lib/gdm3/gdm-x-session[1357]: (II) Loading /usr/lib/xorg/modules/libfb.so
/usr/lib/gdm3/gdm-x-session[1357]: (II) Module fb: vendor="X.Org Foundation"
/usr/lib/gdm3/gdm-x-session[1357]: compiled for 1.20.9, module version = 1.0.0
/usr/lib/gdm3/gdm-x-session[1357]: ABI class: X.Org ANSI C Emulation, version 0.4
/usr/lib/gdm3/gdm-x-session[1357]: (II) Loading sub module "wfb"
答案2
遇到此问题时,您是否有多个显示器?我遇到了类似的问题(我必须Ctrl-Alt-F2
回到Cltr-Alt-F1
)但我找到了不同的答案/解决问题的方法..基本上与“主显示器“ 是。
如果我有主显示器设置为外部显示器(通过 HDMI 连接),然后我遇到了同样的问题。也就是说,我必须使用这个技巧,然后Ctrl-Alt-F2
返回Cltr-Alt-F1
才能显示 Gnome 桌面登录。
如果我换主显示器到笔记本电脑显示器,那么我就不需要这么做了,Gnome 桌面登录就会毫无问题地出现: