Plymouth

提供: ArchWiki
2022年1月18日 (火) 01:44時点におけるKgx (トーク | 投稿記録)による版 (→‎インストール: 情報を更新)
ナビゲーションに移動 検索に移動

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

準備

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

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

インストール

Plymouth は AUR から入手できます、 安定版パッケージは plymouthAUR で、開発版は plymouth-gitAUR です。アップストリームの plymouth リリースは非常に不規則なスケジュールで行われるため、一般的には plymouth-gitAUR を使うことが推奨されます、なぜならほとんどのユーザーにとって安定版パッケージよりも問題が発生する可能性が低いからです。

plymouth フック

plymouthmkinitcpio.conf の HOOKS 行に追加してください。必ず baseudev の後に追加してください:

/etc/mkinitcpio.conf
HOOKS="base udev plymouth [...] "
警告:
  • encrypt フックで dm-crypt を使用する場合、encrypt フックは plymouth-encrypt に置き換えてください。置き換えないと TTY のパスワードプロンプトが表示されなくなります。
  • cryptdevice= パラメータで PARTUUID や PARTLABEL を使用すると plymouth-encrypt フックが機能しなくなります。
  • ZFS#ネイティブ暗号化 を使うには、plymouth-zfsAUR をインストールして zfs フックを plymouth-zfs に置き換える 必要 があります。

plymouth-encrypt フックの追加後に、入力したテキストがパスワードプロンプトではなく後ろに行ってしまう場合、initramfs に(カーネル)グラフィックドライバーを追加する必要があります。例えば、Intel のグラフィックを使っている場合:

/etc/mkinitcpio.conf
MODULES="i915 [...]"

別の plymouth フック (systemd)

mkinitcpio.confsystemd フックを使用している場合、plymouthsd-plymouth に置き換えてください。さらに、ハードドライブ暗号化を使っている場合、encryptplymouth-encrypt のかわりに sd-encrypt を使ってください:

/etc/mkinitcpio.conf
HOOKS="base systemd sd-plymouth [...] sd-encrypt [...]"

カーネルコマンドライン

カーネルパラメータquiet splash vt.global_cursor_default=0 を追加してください。コンソールへの出力を制限する他のパラメータについては サイレントブート を参照してください。

設定

スムーズな移行

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 を追加して下さい。

トラブルシューティング

plymouthd.conf を編集するたびに、 initrd を再構築する必要があります。

Plymouth をデバッグモードで実行する

カーネルパラメータに plymouth.debug を追加します。デバッグログが /var/log/plymouth-debug.log に保存されます、または plymouth.debug=<ファイルの名前> を使用します。

Plymouth ブートスプラッシュが表示されない

テーマがテキストではなくグラフィックである場合は、正しいグラフィックモジュールが /etc/mkinicpio.conf に追加されていることを確認してください。 /etc/plymouth/plymouthd.conf で、コンピューターの起動が速い場合は、 ShowDelay を 0 に変更します。 一部のコンピューターでは、グラフィックスの初期化が遅い場合があるため、 /etc/plymouth/ plymouthd.confDeviceTimeout を 8 に変更します。グラフィックスの初期化に必要な時間はカーネルのバージョンによって異なるため、ブートスプラッシュがそうでない場合は、 DeviceTimeout の増加が最初の試みとして適切です。カーネルの更新後に表示します。

Plymouth ブートスプラッシュがハング、フリーズ

バグが原因で udev フックが plymouth (git以外) をフリーズさせることがあります。その場合は、 systemd フックを使用してください。 参照

参照