Plymouth
Plymouth は Fedora のフリッカーフリーなグラフィカルブートプロセスを提供するためのプロジェクトです。Kernel Mode Setting (KMS) を使って出来るだけ早い段階でディスプレイの最大解像度に設定し、ログインマネージャが表示されるまで、キレイなスプラッシュスクリーンを提供します。
目次
準備
まず、Plymouth は KMS (Kernel Mode Setting) を使ってグラフィックを表示します。(プロプライエタリドライバを使っているなどの理由で)あなたが KMS を使えない場合、代わりにフレームバッファを使う必要があります。EFI/UEFI 環境の場合、plymouth は EFI フレームバッファを利用します。BIOS 環境の場合、ワイド画面を機能させることができる Uvesafb が推奨されます。
KMS もフレームバッファも使えない場合、Plymouth はテキストモードになります。
インストール
Plymouth は plymouthAUR パッケージでインストールできます。開発版を使いたい場合は plymouth-gitAUR をインストールしてください。
GDM を使用する場合、gdm-plymouthAUR をインストールして、plymouth のサポートを有効にして gdm をコンパイルしてください。
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
を設定してください。詳しくはカーネルパラメータを参照。
設定したら initrd イメージを再生成してください (詳しくは mkinitcpio の記事を参照):
# mkinitcpio -p linux
LTSカーネルを使用している場合は以下のようにする必要があります。
# mkinitcpio -p linux-lts
設定
スムーズな移行
スムーズな移行を有効にするには:
- ディスプレイマネージャのユニットを無効化してください。例:
systemctl disable gdm.service
。 - 各ディスプレイマネージャに対応する plymouth のユニットを有効にしてください (GDM, LXDM, SLiM, LightDM, SDDM のユニットが存在します)。例:
systemctl enable gdm-plymouth.service
。
起動を遅らせる
バージョン 0.9.0 から、plymouth には /etc/plymouth/plymouthd.conf
に設定できる新しいオプションが存在します:
/etc/plymouth/plymouthd.conf
[Daemon] Theme=spinner ShowDelay=5
起動が早い環境では、ディスプレイマネージャやログイン画面が表示される前にスプラッシュ画面が一瞬しか表示されない場合があります。ShowDelay を設定することで秒数単位で起動を長くすることができます。デフォルトは5秒間ですが、短くすることでスプラッシュ画面が早く表示されるようになります。
テーマの変更
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") キーを押すことで起動時のカーネルメッセージの表示を切り替えることができます。
Arch ロゴを置き換えてカスタムテーマを作る
次のテーマは Plymouth によって提供されている Arch Linux ロゴ (/usr/share/plymouth/arch-logo.png
) を使用します: fade-in, script, solar, spinfinity。他のロゴを使いたい場合、テーマの *.plymouth
ファイルを編集してください (*.script
も編集する必要があることもあります)。そしてロゴを置き換えたい画像に置き換えてください。テーマを新しく作成したらパッケージを作成する必要があります。/usr/share/plymouth
に変更を加えてもパッケージのアップグレードで置き換わってしまう可能性があるためです。
テーマをインストール・選択したら、initrd イメージを再生成して新しいスプラッシュを使ってください。
トラブルシューティング
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フックを使用してください。参照