Ubuntu 16.04: диспетчер отображения не запускается

Вопрос или проблема

Повторная публикация вопроса: https://unix.stackexchange.com/q/314129/193223

Недавно я обновился с Ubuntu 14.04 до 16.04, после чего дисплейный менеджер перестал работать.

Предполагая, что это связано с системами инициализации, я попробовал переключиться обратно на upstart, следуя инструкциям, указанным на этой странице:

https://wiki.ubuntu.com/SystemdForUpstartUsers

Это не сработало.

newton@gravity:~$ sudo systemctl status lightdm
● lightdm.service - Light Display Manager
   Loaded: loaded (/lib/systemd/system/lightdm.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/display-manager.service.d
           └─xdiagnose.conf
   Active: inactive (dead) (Result: exit-code) since Mon 2016-10-03 19:04:26 EDT; 13min ago
     Docs: man:lightdm(1)
  Process: 3533 ExecStart=/usr/sbin/lightdm (code=exited, status=1/FAILURE)
  Process: 3528 ExecStartPre=/bin/sh -c [ "$(basename $(cat /etc/X11/default-display-manager 2>/dev/null))" = "lightdm" ] (code=exited, status=0/SUCCESS)
 Main PID: 3533 (code=exited, status=1/FAILURE)

Oct 03 19:04:26 newton systemd[1]: lightdm.service: Failed with result 'exit-code'.
Oct 03 19:04:26 newton systemd[1]: lightdm.service: Service hold-off time over, scheduling restart.
Oct 03 19:04:26 newton systemd[1]: Stopped Light Display Manager.
Oct 03 19:04:26 newton systemd[1]: lightdm.service: Start request repeated too quickly.
Oct 03 19:04:26 newton systemd[1]: Failed to start Light Display Manager.
Oct 03 19:09:02 newton systemd[1]: Stopped Light Display Manager.

journalctl показывает проблемы с PAM kwallet.

$ sudo journalctl -e -u lightdm
...
systemd[1]: Starting Light Display Manager...
systemd[1]: Started Light Display Manager.
lightdm[26952]: PAM unable to dlopen(pam_kwallet.so): /lib/security/pam_kwallet.so: cannot open shared object file: No such file or directory
lightdm[26952]: PAM adding faulty module: pam_kwallet.so
lightdm[26952]: PAM unable to dlopen(pam_kwallet5.so): /lib/security/pam_kwallet5.so: cannot open shared object file: No such file or directory
lightdm[26952]: PAM adding faulty module: pam_kwallet5.so
lightdm[26952]: pam_unix(lightdm-greeter:session): session opened for user lightdm by (uid=0)
systemd[1]: lightdm.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: lightdm.service: Unit entered failed state.
systemd[1]: lightdm.service: Triggering OnFailure= dependencies.
systemd[1]: lightdm.service: Failed with result 'exit-code'.

...

Вот содержимое файла /var/log/lightdm/lightdm.log;

[+0.00s] DEBUG: Logging to /var/log/lightdm/lightdm.log
[+0.00s] DEBUG: Starting Light Display Manager 1.18.2, UID=0 PID=26937
[+0.00s] DEBUG: Loading configuration dirs from /usr/share/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration from /usr/share/lightdm/lightdm.conf.d/50-disable-log-backup.conf
[+0.00s] DEBUG: Loading configuration from /usr/share/lightdm/lightdm.conf.d/50-greeter-wrapper.conf
[+0.00s] DEBUG: Loading configuration from /usr/share/lightdm/lightdm.conf.d/50-guest-wrapper.conf
[+0.00s] DEBUG: Loading configuration from /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
[+0.00s] DEBUG: Loading configuration from /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf
[+0.00s] DEBUG: Loading configuration from /usr/share/lightdm/lightdm.conf.d/50-xserver-command.conf
[+0.00s] DEBUG: Loading configuration dirs from /usr/local/share/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration dirs from /etc/xdg/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration from /etc/lightdm/lightdm.conf
[+0.00s] DEBUG: Using D-Bus name org.freedesktop.DisplayManager
[+0.00s] DEBUG: Registered seat module xlocal
[+0.00s] DEBUG: Registered seat module xremote
[+0.00s] DEBUG: Registered seat module unity
[+0.00s] DEBUG: Monitoring logind for seats
[+0.00s] DEBUG: New seat added from logind: seat0
[+0.00s] DEBUG: Seat seat0: Loading properties from config section Seat:*
[+0.00s] DEBUG: Seat seat0: Starting
[+0.00s] DEBUG: Seat seat0: Creating greeter session
[+0.00s] DEBUG: Seat seat0: Creating display server of type x
[+0.01s] DEBUG: Using VT 7
[+0.01s] DEBUG: Seat seat0: Starting local X display on VT 7
[+0.01s] DEBUG: DisplayServer x-0: Logging to /var/log/lightdm/x-0.log
[+0.01s] DEBUG: DisplayServer x-0: Writing X server authority to /var/run/lightdm/root/:0
[+0.01s] DEBUG: DisplayServer x-0: Launching X Server
[+0.01s] DEBUG: Launching process 26944: /usr/bin/X -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
[+0.01s] DEBUG: DisplayServer x-0: Waiting for ready signal from X server :0
[+0.01s] DEBUG: Acquired bus name org.freedesktop.DisplayManager
[+0.01s] DEBUG: Registering seat with bus path /org/freedesktop/DisplayManager/Seat0
[+0.01s] DEBUG: Loading users from org.freedesktop.Accounts
[+0.01s] DEBUG: User /org/freedesktop/Accounts/User1000 added
[+0.01s] DEBUG: User /org/freedesktop/Accounts/User1007 added
[+0.01s] DEBUG: User /org/freedesktop/Accounts/User1009 added
[+0.01s] DEBUG: User /org/freedesktop/Accounts/User1006 added
[+0.01s] DEBUG: User /org/freedesktop/Accounts/User1005 added
[+0.01s] DEBUG: User /org/freedesktop/Accounts/User1002 added
[+0.02s] DEBUG: User /org/freedesktop/Accounts/User1011 added
[+0.02s] DEBUG: User /org/freedesktop/Accounts/User1008 added
[+0.02s] DEBUG: User /org/freedesktop/Accounts/User1003 added
[+0.02s] DEBUG: User /org/freedesktop/Accounts/User1001 added
[+0.02s] DEBUG: User /org/freedesktop/Accounts/User1004 added
[+0.02s] DEBUG: User /org/freedesktop/Accounts/User1010 added
[+0.23s] DEBUG: Got signal 10 from process 26944
[+0.23s] DEBUG: DisplayServer x-0: Got signal from X server :0
[+0.23s] DEBUG: DisplayServer x-0: Connecting to XServer :0
[+0.23s] DEBUG: Seat seat0: Display server ready, starting session authentication
[+0.23s] DEBUG: Session pid=26952: Started with service 'lightdm-greeter', username 'lightdm'
[+0.25s] DEBUG: Session pid=26952: Authentication complete with return value 0: Success
[+0.25s] DEBUG: Seat seat0: Session authenticated, running command
[+0.25s] DEBUG: Session pid=26952: Running command /usr/lib/lightdm/lightdm-greeter-session /usr/sbin/unity-greeter
[+0.25s] DEBUG: Creating shared data directory /var/lib/lightdm-data/lightdm
[+0.25s] DEBUG: Session pid=26952: Logging to /var/log/lightdm/seat0-greeter.log
[+0.27s] DEBUG: Activating VT 7
[+0.27s] DEBUG: Activating login1 session c17
[+0.27s] DEBUG: Seat seat0 changes active session to c17
[+0.27s] DEBUG: Session c17 is already active
[+0.37s] DEBUG: Greeter closed communication channel
[+0.37s] DEBUG: Session pid=26952: Exited with return value 0
[+0.37s] DEBUG: Seat seat0: Session stopped
[+0.37s] DEBUG: Seat seat0: Stopping; failed to start a greeter
[+0.37s] DEBUG: Seat seat0: Stopping
[+0.37s] DEBUG: Seat seat0: Stopping display server
[+0.37s] DEBUG: Sending signal 15 to process 26944
[+0.50s] DEBUG: Process 26944 exited with return value 0
[+0.50s] DEBUG: DisplayServer x-0: X server stopped
[+0.50s] DEBUG: Releasing VT 7
[+0.50s] DEBUG: DisplayServer x-0: Removing X server authority /var/run/lightdm/root/:0
[+0.50s] DEBUG: Seat seat0: Display server stopped
[+0.50s] DEBUG: Seat seat0: Stopped
[+0.50s] DEBUG: Required seat has stopped
[+0.50s] DEBUG: Stopping display manager
[+0.50s] DEBUG: Display manager stopped
[+0.50s] DEBUG: Stopping daemon
[+0.50s] DEBUG: Exiting with return value 1

Any other debugging tips that I need to try?

У меня было то же самое, попробуйте использовать gdm3 вместо того, если он у вас есть. Если у вас есть gdm3, то зайдите в терминал и введите “sudo apt remove lightdm”, а затем “sudo apt-get install lightdm”.

Ответ или решение

Вопрос о проблемах с дисплейным менеджером после обновления Ubuntu до версии 16.04 является типичной ситуацией, с которой могут столкнуться пользователи Linux при переходе от старой версии системы к новой. В данном случае, речь идет о проблемах с запуском Light Display Manager (LightDM), который не удается запустить, и это приводит к невозможности загрузки графического интерфейса. Проанализировав предоставленные логи и сообщения об ошибках, можно сделать вывод, что основной проблемой является некорректная загрузка модулей PAM, в частности pam_kwallet.so и pam_kwallet5.so, которые отсутствуют в системе.

Теория:

Когда вы обновляете операционную систему, часто изменяются как системные файлы, так и приложения, установленные в вашей системе. В данном случае, Ubuntu 16.04 перешла с Upstart на systemd в качестве системы инициализации по умолчанию, что может вызывать проблемы совместимости с некоторыми программами. LightDM — дисплейный менеджер, который отвечает за показ экрана входа и управление сессиями пользователей. PAM (Pluggable Authentication Module) — это механизм, который предоставляет динамически подгружаемые модули для выполнения аутентификации. Ошибки, связанные с модулями pam_kwallet.so, могут быть вызваны отсутствием необходимых пакетов или некорректной конфигурацией PAM-файлов.

Пример:

Судя по журналам journalctl и lightdm, проблема заключается в том, что LightDM не удается загрузить требуемые библиотеки PAM. Это вызывает ошибку при попытке аутентификации и запуске сессии, что в свою очередь приводит к остановке LightDM. Лог журнала указывает, что LightDM пытается открыть pam_kwallet.so и pam_kwallet5.so, но они отсутствуют в директории /lib/security/, что вызывает сбой.

Применение:

  1. Проверка и установка необходимых пакетов:

    • Убедитесь, что все необходимые пакеты и библиотеки установлены в вашей системе. Для установки недостающих компонентов выполните команды:

      sudo apt update
      sudo apt install libpam-kwallet4 libpam-kwallet5

    Эти пакеты содержат модули PAM для интеграции с KWallet, которые могут отсутствовать в системе.

  2. Конфигурация PAM:

    • Проверьте файлы конфигурации PAM, такие как /etc/pam.d/lightdm. Убедитесь, что записи, связанные с pam_kwallet.so и pam_kwallet5.so, актуальны для вашей системы. Если вы не используете KWallet, возможно, стоит закомментировать или удалить строки, связанные с этими модулями.
  3. Переход на другой дисплейный менеджер:

    • Если проблема с LightDM сохраняется, возможно, стоит рассмотреть переключение на другой дисплейный менеджер, например, GDM3. Процесс установки и переключения выглядит следующим образом:

      sudo apt remove lightdm
      sudo apt install gdm3

    Во время установки GDM3 система предложит выбрать дисплейный менеджер по умолчанию. Выберите GDM3 и перезапустите компьютер.

  4. Диагностика и логирование:

    • Продолжайте мониторить логи, чтобы выявить возможные другие ошибки или части системы, которые требуют внимания. Используйте команды journalctl и dmesg для получения более глубокого понимания происходящих процессов.
  5. Сообщества и форумы:

    • Если список предложенных решений не помогает, обратитесь к сообществам Linux, таким как форумы Ubuntu или StackExchange. Часто пользователи сталкиваются с аналогичными проблемами, и может быть найдено решение, специфичное для вашей конфигурации системы.

Следуя этим шагам, можно повысить шансы на успешное восстановление функциональности дисплейного менеджера в Ubuntu 16.04. Проблемы, подобные этой, часто требуют комплексного подхода, подразумевающего как исправление конфигураций, так и проверку всех установленных компонентов системы.

Оцените материал
Добавить комментарий

Капча загружается...