Plymouth
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 フック
plymouth
を mkinitcpio.conf の HOOKS 行に追加してください。必ず base
と udev
の後に追加してください:
/etc/mkinitcpio.conf
HOOKS="base udev plymouth [...] "
plymouth-encrypt
フックの追加後に、入力したテキストがパスワードプロンプトではなく後ろに行ってしまう場合、initramfs に(カーネル)グラフィックドライバーを追加する必要があります。例えば、Intel のグラフィックを使っている場合:
/etc/mkinitcpio.conf
MODULES="i915 [...]"
別の plymouth フック (systemd)
mkinitcpio.conf で systemd
フックを使用している場合、plymouth
を sd-plymouth
に置き換えてください。さらに、ハードドライブ暗号化を使っている場合、encrypt
や plymouth-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-manager の GDM ユーザは gdm-plymouth-primeAUR をインストールできます。これは gdm-plymouthAUR のフォークで Prime 切り替えに必要なパッチを適用しています。
他のディスプレイマネージャ(SDDM、LightDM、LXDM)を使っているユーザーは以下のことをする必要があります。
- 例えば
lxdm.service
のような ディスプレイマネージャ ユニットを 無効化 します。 - 有効化 すると、それぞれの 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 には以下のテーマが付属しています:
- Fade-in: 光る星がフェードイン・アウトするシンプルなテーマ。
- Glow: ブートプログレスのパイチャートが表示されロゴが浮かび上がるテーマ。
- Script: スクリプトサンプルプラグイン (ナイスな Arch ロゴテーマ)。
- Solar: 青い炎が上がる星と宇宙のテーマ。
- Spinner: ロードの歯車が表示されるシンプルなテーマ。
- Spinfinity: 画面の中央に無限マークが表示されるシンプルなテーマ。
- (Text: 3色のプログレスバーのテキストモードテーマ)
- (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 ロゴを追加
spinner と BGRT のテーマディレクトリに 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.conf
の DeviceTimeout
を 8 に変更します。グラフィックスの初期化に必要な時間はカーネルのバージョンによって異なるため、ブートスプラッシュがそうでない場合は、 DeviceTimeout
の増加が最初の試みとして適切です。カーネルの更新後に表示します。
Plymouth ブートスプラッシュがハング、フリーズ
バグが原因で udev フックが plymouth (git以外) をフリーズさせることがあります。その場合は、 systemd フックを使用してください。 参照