Plymouth

提供: ArchWiki
2023年8月30日 (水) 01:12時点におけるKgx (トーク | 投稿記録)による版 (→‎ヒントとテクニック: 情報を更新)
ナビゲーションに移動 検索に移動

Plymouth は Fedora のフリッカーフリーなグラフィカルブートプロセスを提供するためのプロジェクトです。カーネルモード設定 (KMS) を使って出来るだけ早い段階でディスプレイの最大解像度に設定し、ログインマネージャが表示されるまで、キレイなスプラッシュスクリーンを提供します。

準備

まず、Plymouth は カーネルモード設定 (KMS) を使ってグラフィックを表示します。(プロプライエタリドライバを使っているなどの理由で)あなたが KMS を使えない場合、代わりにフレームバッファを使う必要があります。EFI/UEFI 環境の場合、plymouth は EFI フレームバッファを利用します。BIOS 環境の場合、ワイド画面を機能させることができる Uvesafb が推奨されます。

KMS もフレームバッファも使えない場合、Plymouth はテキストモードになります。

インストール

Plymouth の安定版パッケージは plymouth で、開発版は plymouth-gitAUR です。

デフォルトでは、Plymouth はグラフィカルなスプラッシュスクリーンにブートメッセージを表示せず、/var/log/boot.log に記録します。

  • スプラッシュ画面を見たい場合は、カーネルパラメータsplash を追加してください。
  • サイレントブートをしたい場合は、quiet も追加してください。
  • ブートメッセージの記録を無効にしたい場合は、plymouth.nolog も追加してください。

初期ブート時に Plymouth を起動するには、Plymouth を含むイメージを作成するために initramfs ジェネレータを設定しなくてはなりません。

mkinitcpio

plymouthmkinitcpio.confHOOKS 行に追加してください。

/etc/mkinitcpio.conf
HOOKS=(... plymouth ...)

dracut

Plymouth をインストールすると、dracut が自動的にそれを検出し、initramfs イメージに追加します。自動検出が失敗した場合は、dracut 設定に次の行を追加することで、dracut に強制的に Plymouth を追加することができます。

/etc/dracut.conf.d/myflags.conf
add_dracutmodules+=" plymouth "

設定

スムーズな移行

GDM を使っている場合は、smooth transition をサポートしている gdm-plymouthAUR をインストールしてください (gdm を自動で置き換えるので他の手順は必要ありません)

Optimus-managerGDM ユーザは gdm-plymouth-primeAUR をインストールできます。これは gdm-plymouthAUR のフォークで Prime 切り替えに必要なパッチを適用しています。

他のディスプレイマネージャSDDMLightDMLXDM)を使っているユーザーは以下のことをする必要があります。

  1. 例えば lxdm.service のような ディスプレイマネージャ ユニットを 無効化 します。
  2. 有効化 すると、それぞれの DM-plymouth ユニットが提供されます (例:lxdm-plymouth.service)

起動を遅らせる

バージョン 0.9.0 から、plymouth には /etc/plymouth/plymouthd.conf に設定できる新しいオプションが存在します:

/etc/plymouth/plymouthd.conf
[Daemon]
Theme=spinner
ShowDelay=5

起動が早い環境では、ディスプレイマネージャやログイン画面が表示される前にスプラッシュ画面が一瞬しか表示されない場合があります。ShowDelay を設定することで秒数単位で起動を長くすることができます。デフォルトは5秒間ですが、短くすることでスプラッシュ画面が早く表示されるようになります。

背景画像を変更する

特定のテーマ( Spinner など)では、背景画像を変更できます。 Spinner では、デフォルトでは灰色のノイズパターンです。 変更するには、 /usr/share/plymouth/themes/theme/background-tile.png を目的の画像に置き換えます。 これを行うときは、Plymouth の更新によって上書きされないように、新しいテーマをコピーして作成することをお勧めします。 変更したテーマを再生成することを忘れないでください。方法については、次のセクションを参照してください。

テーマの変更

Plymouth には以下のテーマが付属しています:

  1. Fade-in: 光る星がフェードイン・アウトするシンプルなテーマ。
  2. Glow: ブートプログレスのパイチャートが表示されロゴが浮かび上がるテーマ。
  3. Script: スクリプトサンプルプラグイン (ナイスな Arch ロゴテーマ)。
  4. Solar: 青い炎が上がる星と宇宙のテーマ。
  5. Spinner: ロードの歯車が表示されるシンプルなテーマ。
  6. Spinfinity: 画面の中央に無限マークが表示されるシンプルなテーマ。
  7. (Text: 3色のプログレスバーのテキストモードテーマ)
  8. (Details: 古臭いフォールバックテーマ)

AUR から他のテーマを追加でインストールすることもできます。plymouthAUR に依存しているパッケージを見てください。

インストールされているテーマは以下のコマンドで確認できます:

$ plymouth-set-default-theme -l

または:

$ ls /usr/share/plymouth/themes
details  glow    solar       spinner  tribar
fade-in  script  spinfinity  text

デフォルトでは spinner テーマが使われます。テーマは /etc/plymouth/plymouthd.conf を編集することで変更できます。例:

/etc/plymouth/plymouthd.conf
[Daemon]
Theme=spinner
ShowDelay=5

Ctrl+Alt+F2 を押してコンソールを切り替えて、root でログインしてから以下のコマンドを実行することで一時的にテーマを確認できます:

# plymouthd
# plymouth --show-splash

プレビューを終了するには Ctrl+Alt+F2 をまた押してから以下のコマンドを実行してください:

# plymouth --quit

テーマを変更したら、カーネルイメージを再生成する必要があります:

# plymouth-set-default-theme -R <theme>

再起動して変更を適用してください。

Hidpi

plymouthd.conf を編集

/etc/plymouth/plymouthd.conf
DeviceScale=<an-integer-scaling-factor>

編集が終わったら initrd を再構築します。

ヒントとテクニック

ブートメッセージを表示する

ブート中に Esc キーを押すとブートメッセージに切り替えることができます。

スムーズな移行

GDM は、すぐに使える スムーズな移行 をサポートします。

他のディスプレイマネージャーの場合は、次の display-manager.serviceドロップインスニペット を使用すると、ほぼスムーズに移行できます。

/etc/systemd/system/display-manager.service.d/plymouth.conf
[Unit]
Conflicts=plymouth-quit.service
After=plymouth-quit.service rc-local.service plymouth-start.service systemd-user-sessions.service
OnFailure=plymouth-quit.service

[Service]
ExecStartPre=-/usr/bin/plymouth deactivate
ExecStartPost=-/usr/bin/sleep 30
ExecStartPost=-/usr/bin/plymouth quit --retain-splash

テーマのプレビュー

initrd を再構築しなくてもテーマをプレビューできます。Ctrl+Alt+F6 を押してテキスト端末に切り替え、root としてログインして次のように入力します。

# plymouthd
# plymouth --show-splash

プレビューを終了するには、もう一度 Ctrl+Alt+F6 を押して、次のように入力します。

# plymouth --quit

背景画像を変更する

2 ステップベースのテーマ (スピナーや bgrt など) の背景画像を追加できます。希望の画像を /usr/share/plymouth/themes/spinner/background-tile.png に配置するだけです。テーマを変更したら、忘れずに initrd を再生成してください。

BGRT イメージがありません

BGRT テーマを使用しているが、UEFI がベンダーロゴを提供していない場合は、フォールバック画像を /usr/share/plymouth/themes/spinner/bgrt-fallback.png に配置して表示できます。その代わり。

あるいは、ファームウェアのバックグラウンドを維持するには、次のように設定します。:

/etc/plymouth/plymouthd.conf
UseFirmwareBackground=true

完全なアニメーションを表示するために起動を遅くする

起動時間が非常に速いシステムでは、アニメーションの全体を表示したい場合、ExecStartPre=/usr/bin/sleep 5 を含む ドロップインスニペットplymouth-quit.service に遅延を追加する必要があるかもしれません。this reddit post を参照してください。

トラブルシューティング

カーネルパラメータで無効にする

起動中に問題が発生した場合は、次の カーネルパラメータ を使用して Plymouth を一時的に無効にすることができます。

plymouth.enable=0 disablehooks=plymouth

デバッグ

デバッグ出力を /var/log/plymouth-debug.log に書き込むには、次のカーネルパラメータを追加します。

plymouth.debug

パスワードプロンプトが更新されない

Mkinitcpioudev フックの代わりに systemd を使用すると、Plymouth スクリプト経由で処理するテーマでパスワードプロンプトが更新されないことがあります。

開発バージョン plymouth-gitAUR に切り替えるか、mkinitcpio#通常のフック の代替品を使用してみてください。

ディスプレイの中央に配置されていない

特定のテーマでは、起動時に複数のモニターが有効になっていると、ディスプレイの中央に配置されないことがあります。

カーネルモード設定#強制モード を使用して、特定のモニターを無効にすることができます。

参照