Plymouth

提供: ArchWiki
2023年8月30日 (水) 01:07時点における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 を再構築します。

ヒントとテクニック

カーネルメッセージの表示

"Home" (または "Escape") キーを押すことで起動時のカーネルメッセージの表示を切り替えることができます。

spinner と BGRT テーマに Arch ロゴを追加

spinnerBGRT のテーマディレクトリに Arch ロゴを watermark.png という名前でコピーします。

# cp /usr/share/plymouth/arch-logo.png /usr/share/plymouth/themes/spinner/watermark.png

ロゴが中央に表示されていない場合、テーマの設定ファイルに次の行を追加します .plymouth で終わるファイル名 例:spinner.plymouth

WatermarkHorizontalAlignment=.5
WatermarkVerticalAlignment=.5

Arch ロゴを置き換えてカスタムテーマを作る

次のテーマは Plymouth によって提供されている Arch Linux ロゴ (/usr/share/plymouth/arch-logo.png) を使用します: fade-in, script, solar, spinfinity。他のロゴを使いたい場合、テーマの *.plymouth ファイルを編集してください (*.script も編集する必要があることもあります)。そしてロゴを置き換えたい画像に置き換えてください。テーマを新しく作成したらパッケージを作成する必要があります。/usr/share/plymouth に変更を加えてもパッケージのアップグレードで置き換わってしまう可能性があるためです。

テーマをインストール・選択したら、initrd イメージを再生成して新しいスプラッシュを使ってください。

ベンダーロゴの無効化

カーネルパラメータfbcon=nodefer を追加して下さい。

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

起動時間が非常に速いシステムでは、アニメーションの全体を表示したい場合、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#通常のフック の代替品を使用してみてください。

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

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

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

参照