SDDM
Simple Desktop Display Manager (SDDM) はX server と Wayland プロトコルの両方をサポートする現代的なディスプレイマネージャです。
デフォルトでは、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 を作成し、以下の内容を含むように編集します:
[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
#!/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 を作成し、以下の内容を含むように編集します:
[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 を作成し、以下の内容を含むように編集します:
[General]
DisplayServer=wayland
# この部分は任意です
[Wayland]
CompositorCommand=weston --shell=fullscreen-shell.so
Kwin
kde-plasma/plasma-desktop を使用しているシステムのユーザは、コンポジタとして代わりに Kwin を使用したいかもしれません:
[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 ファイルに設定します:
#!/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 ファイルに以下の行を追加します:
#!/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 を使用するためには、設定ファイルを変更するべきです:
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.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 がそれより小さいためでしょう。
[Users]
MaximumUid=60000
MinimumUid=1000
SDDM サービスは開始されるが画面が黒いままになる
この閉じられたバグ報告 によると、NVIDIA カードでは.、SDDM は、有効化され、かつ操作可能な DRM を必要とするようです。
カーネルで Direct Rendering Manager が有効になっているか確認してください。なっていなければ、それを有効化してカーネルをリビルドし、x11-drivers/nvidia-drivers を再度 emerge してください。
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 オプションが有効化された状態で読み込まれるようにしてください:
nvidia-drm
options nvidia-drm modeset=1
代わりに、カーネルコマンドラインで nvidia-drm.modeset=1 とすることで modeset オプションを有効化することもできます。これは、bootloader で設定したり、カーネル設定に組み込むことができます。
関連項目
- LightDM — X サーバーの標準ディスプレイマネージャとなることを目標としている、デスクトップ間共通のディスプレイマネージャです。
- SLiM — a desktop-independent graphical display manager.