Цикл входа после обновления до 16.04

Цикл входа после обновления до 16.04

Я столкнулся с циклическим входом в систему после обновления бета-версии Xenial до последних обновлений.

Я перепробовал много вещей:

  • xauthorityили /tmpизменение привилегий

  • Переустановка драйверов nvidia, их удаление.

  • переустановка unity, unity-greeter, ubuntu-desktop, upstart, lightdmи compiz.

  • сброс compizи unityнастройки. (Я получаю dbusошибки запуска:

    Failed to commit changes to dconf: error spawning command line 'dbus-launch -auto launch=..................)
    
  • использование старого ядра и отказоустойчивости (отчет об отказоустойчивости не найден)

  • пытался запустить другие DE (общая картина Steam)

Вот журнал ошибок 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)

Но он продолжает выполнять операции ввода, пока внезапно не прервется.

решение1

В моем случае причиной были оригинальные драйверы nvidia, и переключение обратно на open source 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 не загружается, нет Launcher, нет Dash)

решение2

Проблема в том, что при обновлении Ubuntu (и даже при установке определенных программ, вызывающих /sbin/ldconfig), вносятся изменения в /etc/ls.so.cache.

Попробуйте, и вы увидите, что ld.so.cacheфайл после такой установки/обновления будет иметь другой размер, чем до операции.

Это в Ubuntu 16.04 приводит к циклу входа при входе из lightDM. Поэтому вам следует сохранить копию оригинала 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), чтобы разрешить непривилегированным пользователям запускать команду копирования:

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

Это может показаться некрасивым хаком, но он позволяет обойти проблему циклического входа в систему и сохранить новый /etc/ld.so.cacheфайл.

решение3

У меня была та же ошибка 16.04. В моем случае это была проблема с драйвером NVidia. У меня 8 мониторов, и мне нравится, как NVidia Diver работает с ними. Поэтому, чтобы заставить его работать, я:

  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файл (предварительно сделав резервную копию своего). В конце процесса он пожаловался на отсутствие ссылки на библиотеку, но дал инструкции по ее связыванию. Я отложил решение этой проблемы на потом.

  6. Перезагрузился и смог войти через графический интерфейс.

решение4

В моем случае эта проблема была вызвана случайным включением Secure Boot в UEFI, что привело к невозможности использования сторонних драйверов (например, Nvidia). Это вызвало ошибку сеанса X. После отключения Secure Boot все вернулось на круги своя.

Связанный контент