升级到16.04后的登录循环


16

将xenial beta更新为最新更新后,我遇到了登录循环。

我尝试了很多事情:

  • xauthority/tmp特权更改

  • 重新安装nvidia驱动程序,将其删除。

  • 重新安装unityunity-greeterubuntu-desktopupstartlightdmcompiz

  • 重置compizunity设置。(我收到dbus启动错误:

    Failed to commit changes to dconf: error spawning command line 'dbus-launch -auto launch=..................)
    
  • 使用较旧的内核和故障保护(故障安全报告未找到屏幕)

  • 试图推出其他DE(蒸汽大图)

这是xsession错误日志:

unity:
open connection: connect: No such file or directory
Cannot connect to brltty at :0
upstart: gnome-session (unity) main process (5441) terminated with status 1
upstart unity-settings-daemon main process (5434) killed by TERM signal

steam big picture:
open connection: connect: No such file or directory
Cannot connect to brltty at :0
ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libmodeswitch_inhibitor.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file(: ignored.
ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libmodeswitch_inhibitor.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file(: ignored
ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libmodeswitch_inhibitor.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file(: ignored
Could not create GLX context
ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libmodeswitch_inhibitor.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file(: ignored

在Unity(Compiz)日志中,有很多关于opengl插件的错误

Compiz (opengl) - Fatal: glXQueryExtenisonsString is NULL for screen 0

还有许多插件由于opengl而卸载。

Lightdm突然收到SIGTERM信号,日志中没有先前的错误。

xserver有2个错误:

xf86EnablePorts: failed to set IOPL for I/O (Operation not permitted)
(EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)

但是它继续通过输入操作,直到突然终止。

Answers:


18

就我而言,最初的nvidia驱动程序就是原因,并且改回了开源的nouveau。首先,我从nvidia中删除了所有内容:

sudo apt-get remove --purge 'nvidia-*'
sudo apt-get install ubuntu-desktop
sudo rm /etc/X11/xorg.conf
echo 'nouveau' | sudo tee -a /etc/modules

(来源:如何完全卸载nvidia驱动程序?

之后,我可以登录,但没有加载unity,没有启动器等。事实证明,我不得不重新启用Unity插件:

sudo apt-get install compizconfig-settings-manager
DISPLAY=:0 ccsm
Find the Unity plugin and enable it.

(来源:Unity不加载,没有启动器,没有Dash出现


nvidia-*对我来说,删除是主要解决方法。在~/.xsession.errors我收到的消息cannot connect to brltty at 0与NVIDIA有关。
乔恩

1
我遵循了这些确切步骤,但对我不起作用
Hakaishin

加上如果我需要使用Nvidia驱动程序,那将不起作用。
哈卡辛

@Hakaishinrare你能解决吗?
sagarr

3

问题是,当您更新Ubuntu(甚至安装了某些调用程序/sbin/ldconfig)时,会对进行更改/etc/ls.so.cache

尝试一下,您会发现ld.so.cache安装/更新后的文件大小将不同于操作之前的大小。

从lightDM登录时,这在Ubuntu 16.04中会导致登录循环。因此,您应该保留原始副本,ld.so.cache因为在安装/更新之后生成新版本时,lightDM将不再进行身份验证。

我曾多次遇到这个问题,对此必须非常小心。我总是保留原始文件(/etc/ld.so.cache.orig)的副本,该副本可让我在没有登录循环的情况下登录并使用该文件进行登录。然后,一旦成功登录,便将新的文件(/etc/ld.so.cache.new)复制过来。为此,我修改了~/.bash_profile文件并添加了以下行:

sudo /bin/cp /etc/ld.so.cache.new /etc/ld.so.cache

然后,为了在退出会话时将原始文件复制回去,以便下次我可以登录,我将以下行添加到了/etc/gdm/PostSession/Default

/bin/cp /etc/ld.so.cache.orig /etc/ld.so.cache

为此,我进行了修改/etc/sudoers(通过运行sudo vosudo),以允许非特权用户运行copy命令:

ALL     ALL= NOPASSWD: /bin/cp /etc/ld.so.cache.new /etc/ld.so.cache

这看起来像是一个丑陋的hack,但是它解决了这个登录循环问题,并且还保留了新/etc/ld.so.cache文件。


1
请先询问Ingles的Ubuntu。卡斯泰拉诺(Grass por la respuesta pero como es en Castellano)没有寓言,也没有寓言,英格尔斯,普埃德斯人,赫拉门蒂斯,谷歌翻译
terdon

De hecho,la traduje yo ya que tiene pinta de ser unasoluciónbuena。由Google翻译提供支持的Pero en el futuro。
terdon's

3

我在16.04上也有相同的错误。就我而言,这也是NVidia驱动程序的问题。我有8个监视器,我喜欢NVidia潜水员如何与他们一起演奏。因此,为了使其正常工作,我:

  1. 在登录提示符下按CTRL+ ALT+ F1,然后通过终端登录。

  2. 备份可能是旧/etc/X11/xorg.conf文件,因为配置8个监视器很麻烦。

  3. 从NVidia下载了驱动程序文件: NVIDIA-Linux-x86_64-367.44.run

  4. 运行以下命令:(sudo service lightdm stop如果跳过此步骤,驱动程序安装将失败)。

  5. 重新安装驱动程序:sudo ./NVIDIA-Linux-x86_64-367.44.run通知我自动生成的脚本未完成,并选择继续安装,我接受了。我还选择将驱动程序安装为内核模块,并让程序生成一个新xorg.conf文件(之前备份了我的文件)。在该过程的最后,它抱怨缺少与lib的链接,但给出了有关链接的说明。我推迟处理此事。

  6. 重新启动并能够通过GUI登录。


1

我使用的是xfce,并通过重命名手动检查了每个文件夹和文件。删除~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml对我有用。

我也有nvidia驱动程序,但是当我以root用户和备份用户身份登录时,它们运行良好。


0

以我为例,此问题是由于意外启用UEFI中的安全启动引起的,这导致第三方驱动程序无法使用(例如Nvidia)。导致X会话错误。禁用安全启动后,一切恢复正常。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.