SDDM

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page SDDM and the translation is 80% complete.
Outdated translations are marked like this.
Other languages:

Simple Desktop Display Manager (SDDM) — современный дисплейный менеджер, поддерживающий протоколы X-сервера и Wayland.

Предупреждение
По умолчанию, нажатие на кнопку «power off» в SDDM полностью выключит компьютер сразу же, без выдачи запроса подтверждения.

Установка

USE-флаги

USE flags for x11-misc/sddm Simple Desktop Display Manager

+X Add support for X11
+elogind Enable session tracking via sys-auth/elogind
+pam Add support for PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily flip
systemd Enable use of systemd-specific libraries and features like socket activation or session tracking
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)

Установка

Установите x11-misc/sddm:

root #emerge --ask x11-misc/sddm

При проблемах производительности можно попробовать добавить пользователя sddm в группу video:

root #usermod -a -G video sddm

Настройка

Файлы

У SDDM есть два расположения для конфигурации: /usr/share/sddm/sddm.conf.d/ и /etc/sddm.conf.d/, которое используется для перезаписи значений по умолчанию. Второе расположение не создаётся пакетом. KDE Plasma записывает пользовательские изменения в /etc/sddm.conf.d/. Оба расположения поддерживают файлы с одинаковым форматом. См. man-страницу man 5 sddm.conf для получения дополнительной информации.

Файлы override.conf и Xsetup

Заметка
В большинстве случаев эти файлы не нужны, так что этот раздел можно пропустить.

В некоторых случаях перед стартом X-сервера и показом экрана приглашения может понадобится выполнить некоторые команды. Для этих случаев можно использовать файл Xsetup, расположение которого должно быть переопределено локальным изменением в /etc/sddm.conf.d/override.conf.

Create local configuration directory if it does not exists:

root #mkdir -p /etc/sddm.conf.d

После этого создайте и отредактируйте файл /etc/sddm.conf.d/override.conf со следующим содержимым:

ФАЙЛ /etc/sddm.conf.d/override.conf
[X11]
DisplayCommand=/etc/sddm/scripts/Xsetup

Далее создайте каталог /etc/sddm/scripts и файл /etc/sddm/scripts/Xsetup:

root #mkdir -p /etc/sddm/scripts
root #touch /etc/sddm/scripts/Xsetup
root #chmod a+x /etc/sddm/scripts/Xsetup
ФАЙЛ /etc/sddm/scripts/Xsetup
#!/bin/sh
# Xsetup - run as root before the login dialog appears
 
# Ниже могут быть различные команды, которые будут запускаться при старте SDDM.

override.conf and X11 rootless mode

By default SDDM runs in X11 as the root user. This may be considered a security risk.

Since x11-misc/sddm version 0.20 it is possible to run SDDM in X11 rootless mode instead.

В некоторых случаях перед стартом X-сервера и показом экрана приглашения может понадобится выполнить некоторые команды. Для этих случаев можно использовать файл Xsetup, расположение которого должно быть переопределено локальным изменением в /etc/sddm.conf.d/override.conf.

Create local configuration directory if it does not exists:

root #mkdir -p /etc/sddm.conf.d

After that create and edit file /etc/sddm.conf.d/override.conf with following lines in it:

ФАЙЛ /etc/sddm.conf.d/override.conf
[General]
DisplayServer=x11-user

override.conf and wayland mode

Предупреждение
Running SDDM in Wayland mode is highly experimental

Since x11-misc/sddm version 0.20 it is possible to run SDDM in Wayland mode.

Weston

SDDM supports several Wayland compositors. This first example uses SDDMs default compositor, Weston, for systems where kde-plasma/plasma-desktop is not used. First install dev-libs/weston with the fullscreen USE flag enabled.

Then the Display server configuration should be overridden in the local /etc/sddm.conf.d/override.conf.

Create local configuration directory if it does not exists:

root #mkdir -p /etc/sddm.conf.d

After that create and edit file /etc/sddm.conf.d/override.conf with following lines in it:

ФАЙЛ /etc/sddm.conf.d/override.conf
[General]
DisplayServer=wayland
 
# Эта часть необязательна
[Wayland]
CompositorCommand=weston --shell=fullscreen-shell.so
Kwin

Users of systems using kde-plasma/plasma-desktop may want to use Kwin as the compositor instead:

ФАЙЛ /etc/sddm.conf.d/override.conf
[General]
DisplayServer=wayland
GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell
 
[Wayland]
CompositorCommand=kwin_wayland --drm --no-lockscreen --no-global-shortcuts --locale1

Раскладка клавиатуры

Чтобы выбрать корректную раскладку клавиатуры на экране входа, добавьте команду setxkbmap в файл /etc/sddm/scripts/Xsetup:

ФАЙЛ /etc/sddm/scripts/Xsetup
#!/bin/sh
# Xsetup - run as root before the login dialog appears
 
# ...
 
# First keymap will be gb
setxkbmap gb,us

Первый код страны будет значением по умолчанию.

Multimonitor configuration

Расположение экрана приветствия можно указать через конфигурацию xrandr в сценарии SDDM /etc/sddm/scripts/Xsetup. Сначала установите x11-apps/xrandr:

root #emerge --ask x11-apps/xrandr

Ниже представлен вывод xrandr, в котором есть два подключённых монитора: основной (DP-4) и дополнительный (DP-2):

user $xrandr | grep -w connected
DP-2 connected 2160x3840+0+0 left (normal left inverted right x axis y axis) 597mm x 336mm
DP-4 connected primary 3840x2160+2160+0 (normal left inverted right x axis y axis) 697mm x 392mm

Добавьте следующие строки в файл /etc/sddm/scripts/Xsetup:

ФАЙЛ /etc/sddm/scripts/Xsetup
#!/bin/sh
# Xsetup - run as root before the login dialog appears
 
# ...
 
# First, set DP-4 as primary
xrandr --output DP-4 --auto --primary
# Second, DP-2 will be placed on left of DP-4 and rotated by 270 degree clockwise.
xrandr --output DP-2 --left-of DP-4 --rotate left --noprimary

После перезагрузки SDDM отобразит экран приветствия на мониторе DP-4.

Сервис

OpenRC

Если gui-libs/display-manager-init не установлен, установите его с помощью emerge:

root #emerge --ask gui-libs/display-manager-init

При использовании SDDM конфигурационный файл следует изменить следующим образом:

ФАЙЛ /etc/conf.d/display-managerНастройка SDDM в качестве дисплейного менеджера
CHECKVT=7
DISPLAYMANAGER="sddm"

In its default configuration, SDDM likely won't start without elogind. Enable and start it using:

root #rc-update add elogind boot
root #rc-service elogind start

Чтобы запускать выбранный дисплейный менеджер при старте системы, добавьте display-manager в уровень загрузки default:

root #rc-update add display-manager default

Чтобы немедленно запустить display-manager, выполните:

root #rc-service display-manager start

systemd

Для старта SDDM при загрузке:

root #systemctl enable sddm.service

Для немедленного запуска SDDM:

root #systemctl start sddm.service

Plasma

Конфигурация графики интегрирована в системные настройки Plasma и доступна после установки kde-plasma/sddm-kcm:

root #emerge --ask kde-plasma/sddm-kcm

Устранение проблем

Долгая загрузка перед отображением экрана приветствия SDDM

Причиной долгого времени загрузки SDDM может быть низкий уровень энтропии — см. отчет об ошибке проекта SDDM. При использовании systemd после достижения цели graphical всё неожиданно «зависает». Движение мышью или нажатие клавиш клавиатуры может ускорить появление экрана приветствия SDDM.

Проблему можно решить путём увеличения уровня энтропии (например, при помощи пакета sys-apps/haveged) или включением параметра ядра RANDOM_TRUST_CPU для достаточно современных процессоров.

Ошибки «Permission denied» в Xorg.log

Сервер X не запускается, в журнале Xorg.log появляются ошибки «permission denied» (как показано на примере):

ФАЙЛ /var/log/Xorg.log
/var/log/Xorg.0.log:[ 2058.998] (EE) /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied
/var/log/Xorg.0.log:[ 2061.229] (EE) intel(0): [drm] failed to set drm interface version: Permission denied [13].

Скорее всего, пользователь sddm не был добавлен в группу video. Выполните следующую команду, чтобы решить проблему:

root #usermod -a -G video sddm

Отсутствуют системные кнопки

SDDM отображает кнопки только в том случае, если проверка соответствующего функционала выявила его доступность. Это может зависеть от нескольких факторов. Для систем OpenRC с использованием elogind причиной ошибки может стать то, что в момент инициализации дисплейного менеджера не работал сервис elogind. Чтобы разрешить эту проблему, добавьте elogind в уровень загрузки boot.

root #rc-update add elogind boot

Отсутствуют некоторые пользователи

Если в форме выбора пользователей отсутствуют некоторые пользователи, причина может крыться в /etc/sddm.conf: по умолчанию MinimumUid равен 1000, а некоторые уже существующие пользователи могут иметь UID ниже этой цифры.

ФАЙЛ /etc/sddm.conf
[Users]
MaximumUid=60000
MinimumUid=1000

Сервис SDDM запускается, но показывает чёрный экран

При использовании карт NVIDIA для SDDM требуется включённая и нормальная работающая подсистема DRM (см. закрытый отчет об ошибке).

Убедитесь, что Direct Rendering Manager включен в ядре. Если нет — включите его, пересоберите ядро и пересоберите x11-drivers/nvidia-drivers.

ЯДРО Включение Direct Rendering Manager
Device Drivers --->
    Graphics support --->
        <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
            [*] Enable legacy fbdev support for your modesetting driver

Проверьте, что модуль nvidia-drm настроен на загрузку при старте и параметр modeset включен:

ФАЙЛ /etc/modules-load.d/nvidia-drm.conf
nvidia-drm
options nvidia-drm modeset=1

Параметр modeset также можно включить через командную строку ядра с помощью параметра nvidia-drm.modeset=1. Его можно установить в начальном загрузчике или встроить в конфигурацию ядра.

Смотрите также