
Я столкнулся с циклическим входом в систему после обновления бета-версии 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 работает с ними. Поэтому, чтобы заставить его работать, я:
Нажал CTRL+ ALT+ F1в приглашении на вход и вошел в систему через терминал.
Сделал резервную копию старого
/etc/X11/xorg.conf
файла, так как было сложно настраивать 8 мониторов.Скачал файл драйвера с сайта NVidia:
NVIDIA-Linux-x86_64-367.44.run
Выполните следующую команду:
sudo service lightdm stop
(если пропустить этот шаг, установка драйвера завершится неудачей).Переустановил драйвер:
sudo ./NVIDIA-Linux-x86_64-367.44.run
мне сообщили, что автоматически сгенерированный скрипт не был завершен, и предложили продолжить установку, на что я согласился. Я также выбрал установку драйвера как модуля ядра и заставил программу сгенерировать новыйxorg.conf
файл (предварительно сделав резервную копию своего). В конце процесса он пожаловался на отсутствие ссылки на библиотеку, но дал инструкции по ее связыванию. Я отложил решение этой проблемы на потом.Перезагрузился и смог войти через графический интерфейс.
решение4
В моем случае эта проблема была вызвана случайным включением Secure Boot в UEFI, что привело к невозможности использования сторонних драйверов (например, Nvidia). Это вызвало ошибку сеанса X. После отключения Secure Boot все вернулось на круги своя.