SDDM

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page SDDM and the translation is 100% complete.

Simple Desktop Display Manager (SDDM) はX serverWayland プロトコルの両方をサポートする現代的なディスプレイマネージャです。

警告
デフォルトでは、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)

Emerge

x11-misc/sddm をインストールします:

root #emerge --ask x11-misc/sddm

パフォーマンス面の問題がある場合、sddm ユーザーを video グループに追加すると改善することがあります:

root #usermod -a -G video sddm

設定

ファイル

SDDM には2つの設定ファイル格納場所があります: /usr/share/sddm/sddm.conf.d//etc/sddm.conf.d/で、これは特定のオプションを上書きするのに使われます。KDE Plasma はユーザーが変更したオプションを /etc/sddm.conf.d/ に書き込みます。どちらの場所も同じフォーマットのファイルをサポートしています。使用可能なオプションについての詳細は man 5 sddm.conf man ページを参照してください。

override.conf と Xsetup ファイル

メモ
多くの場合、これらのファイルが必要になることはありませんから、この節は読み飛ばしても大丈夫です。

構成によっては、X server を開始して greeter 画面を表示する前にいくつかのコマンドを実行する必要があります。そのようなケースでは Xsetup ファイルが使用できます。その場所はローカルの /etc/sddm.conf.d/override.conf で上書きする必要があります。

存在しない場合、ローカル設定ディレクトリを作成します:

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 - ログインダイアログが表示される前に root 権限で実行されます
 
# ここには SDDM 開始時に実行される様々なコマンドが入ります。

override.conf と X11 ルートレスモード

SDDM は X11 ではデフォルトで root ユーザとして実行されます。これはセキュリティリスクと考えられるかもしれません。

x11-misc/sddm バージョン 0.20 以降は、SDDM を代わりに X11 ルートレスモードで実行することができます。

これを実現するには、ディスプレイサーバの構成設定をローカルの /etc/sddm.conf.d/override.conf を使用して上書きする必要があります。

存在しない場合、ローカル設定ディレクトリを作成します:

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

その後、/etc/sddm.conf.d/override.conf を作成し、以下の内容を含むように編集します:

ファイル /etc/sddm.conf.d/override.conf
[General]
DisplayServer=x11-user

override.conf と wayland モード

警告
Wayland モードでの SDDM の実行は極めて実験的な機能です。

x11-misc/sddm バージョン 0.20 以降は、SDDM を Wayland モードで実行することができます。

Weston

SDDM は複数の Wayland コンポジタをサポートしています。以下の最初の例では、kde-plasma/plasma-desktop を使用しないシステム向けに、SDDM のデフォルトコンポジタである Weston を使用します。まず、fullscreen USE フラグを有効化して dev-libs/weston をインストールしてください。

次に、ディスプレイサーバの設定をローカルの /etc/sddm.conf.d/override.conf で上書きすべきです。

存在しない場合、ローカル設定ディレクトリを作成します:

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

その後、/etc/sddm.conf.d/override.conf を作成し、以下の内容を含むように編集します:

ファイル /etc/sddm.conf.d/override.conf
[General]
DisplayServer=wayland
 
# この部分は任意です
[Wayland]
CompositorCommand=weston --shell=fullscreen-shell.so
Kwin

kde-plasma/plasma-desktop を使用しているシステムのユーザは、コンポジタとして代わりに Kwin を使用したいかもしれません:

ファイル /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
 
# ...
 
# まずキーマップを gb にする
setxkbmap gb,us

最初の国コードがデフォルトになります。

マルチモニター設定

greeter の位置は、SDDM の /etc/sddm/scripts/Xsetup スクリプト内の xrandr の設定で変更できます。まず、x11-apps/xrandr をインストールします:

root #emerge --ask x11-apps/xrandr

ここでは、xrandr は接続されている2つのモニターを報告しています: プライマリ (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
 
# ...
 
# まず、DP-4 をプライマリとして設定する
xrandr --output DP-4 --auto --primary
# 次に、DP-2 を DP-4 の左に配置して、時計回りに 270 度回転させる。
xrandr --output DP-2 --left-of DP-4 --rotate left --noprimary

再起動すると SDDM によって greeter が DP-4 モニターに表示されます。

サービス

OpenRC

gui-libs/display-manager-init が無い場合は、次のコマンドで emerge してください:

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

SDDM を使用するためには、設定ファイルを変更するべきです:

ファイル /etc/conf.d/display-managerSet SDDM をディスプレイマネージャとして設定する
CHECKVT=7
DISPLAYMANAGER="sddm"

デフォルト構成では、SDDM はおそらく elogind なしでは開始しないでしょう。以下を使用して、elogind を有効化して開始してください:

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

選択したディスプレイマネージャをブート時に開始するには、システムの default ランレベルに display-manager を追加してください:

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

kde-plasma/sddm-kcm をインストールすると、グラフィカルな設定が Plasma のシステム設定に統合されます:

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

トラブルシューティング

SDDM が greeter を表示するまでの読込み時間が長い

エントロピープールが低いと、SDDM の読込みに長い時間がかかります - 上流のバグ報告を参照。systemd を使用している場合、グラフィカルターゲットに到達すると全てが固まったようになります。マウスを動かしたりキーボードを使用したりすると SDDM に greeter を(より速く)表示させることができます。

この問題は、例えば、sys-apps/haveged パッケージを使用してエントロピープールを増加させたり、十分に新しい CPU 上でRANDOM_TRUST_CPU カーネル設定オプションを有功にすることで解決できます。

Xorg.log 内の Permission denied エラー

X server が開始されず、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 は、機能が提供されていると判断したときのみボタンを表示します。この判断はいくつかの要素に依存します。elogind を使用している OpenRC システムにおいては、ディスプレイマネージャが初期化されたときに 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 を再度 emerge してください。

カーネル 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

代わりに、カーネルコマンドラインnvidia-drm.modeset=1 とすることで modeset オプションを有効化することもできます。これは、bootloader で設定したり、カーネル設定に組み込むことができます。

関連項目