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

16

Я столкнулся с петлей входа в систему после обновления бета-версии 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)

Но это продолжается через операции ввода, пока это внезапно не будет прекращено.

Халид Абу Шавариб
источник

Ответы:

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 не загружается, ни Launcher, ни Dash не появляются )

Оскар Стржковски
источник
Удаление nvidia-*было основным исправлением для меня. У ~/.xsession.errorsменя было сообщение, cannot connect to brltty at 0которое относится к NVIDIA.
Джон
1
Я следовал этим точным шагам, но у меня это не сработало
Хакаишин
Плюс, что если мне нужно использовать драйверы Nvidia, то это не работает.
Хакаишин
@Hakaishinrare ты можешь решить это?
Сахар
3

Проблема в том, что при обновлении 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файла.

Juanjo
источник
1
Lo siento, pero el Ask Ubuntu es una pagina donde solo se escribe en Ingles. Gracias por la respuesta pero como es en Castellano, la tube que borrar. Si no hables, o no hables bien, el Ingles, puedes usar herramientas como el Google Translate для пользователей.
Тердон
Это очень важно для вас, когда вы идете навстречу друг другу. Изучите текст в Google Translate.
тердон
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файл (резервное копирование ранее). В конце процесса он пожаловался на отсутствующую ссылку на библиотеку, но дал инструкции по ссылке на нее. Я отложил дело с этим на потом.

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

Пол У
источник
1

Я использовал xfce и вручную проверил каждую папку и файл, переименовав их. Удаление ~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xmlсработало для меня.

У меня также были драйверы nvidia, но они работали нормально, когда я вошел в систему как пользователь root и резервный пользователь.

Вибхав Б
источник
0

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

Владек Сурала
источник