Plymouth
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
plymouth
を mkinitcpio.conf の HOOKS
行に追加してください。
/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-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
を追加して下さい。
トラブルシューティング
カーネルパラメータで無効にする
起動中に問題が発生した場合は、次の カーネルパラメータ を使用して Plymouth を一時的に無効にすることができます。
plymouth.enable=0 disablehooks=plymouth
デバッグ
デバッグ出力を /var/log/plymouth-debug.log
に書き込むには、次のカーネルパラメータを追加します。
plymouth.debug
パスワードプロンプトが更新されない
Mkinitcpio で udev
フックの代わりに systemd
を使用すると、Plymouth スクリプト経由で処理するテーマでパスワードプロンプトが更新されないことがあります。
開発バージョン plymouth-gitAUR に切り替えるか、mkinitcpio#通常のフック の代替品を使用してみてください。
ディスプレイの中央に配置されていない
特定のテーマでは、起動時に複数のモニターが有効になっていると、ディスプレイの中央に配置されないことがあります。
カーネルモード設定#強制モード を使用して、特定のモニターを無効にすることができます。