RaspberryPi Lite で起動スプラッシュを設定する

Raspberry Pi Lite だと特に設定していなければこんなように起動メッセージが表示される。

![image1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/206aa43d-cf3b-b8f4-dcf8-8834ba082c92.png)

この画面をスプラッシュで隠してしまうお話。

# 環境

- Raspberry Pi 3B
- Raspberry Pi OS Lite (2024-07-04-raspios-bookworm-armhf-lite.img.xz)

# インストール


raspi-config で設定してみます。

```
$ sudo raspi-config
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/82e6c292-0d0d-c560-9456-13b26b7ff08a.png)

```
1 System Options       Configure system settings      
```
から、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/8bf9a93b-15fa-87a0-f9fa-45da9790b8a5.png)

```
S6 Splash Screen     Choose graphical splash screen or text boot
```

を選んでも、

```
              
│ The splash screen is not installed so cannot be          │ 
│ activated                                                │ 
```
```
 There was an error running option S6 Splash Screen   
```
と出てきます。


plymouth が必要かな?

以下のようにインストールしたけれども、これだけではうまくいかなかった。次の rpd-plym-splash だけでいいみたい。
```
$ sudo apt install plymouth
```
rpd-plym-splash を更にインストールします。 先の plymouth はインストールしていなくても、ここで一緒にインストールされます。
```
$ sudo apt -y install rpd-plym-splash
```
raspi-config で設定できるようになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/5b0b6e05-e344-01fa-1e00-62eb7fa76e14.png)

再起動するとデフォルトのスプラッシュ画像が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/37f9639d-3e6e-db60-89bf-1eae4c1ffbf8.png)

# スプラッシュ画像を変更する

デフォルトテーマの設定はどこを見ればいいのかな?
調べ方はわかりませんでしたが、テーマは pix になっているようです。
`/usr/share/plymouth/themes/pix/splash.png` を入れ替えます。

入れ替えてリブートしてみると、終了時には変更したスプラッシュが表示されますが、起動時のスプラッシュはまだ変更にはなっていません。

起動時のスプラッシュを反映するには、以下のようにします。

```
$ sudo update-initramfs -u
```
# Tips

## 起動してもスプラッシュが消えない

rc.local に終了しないプログラムを書いていました。

& を付加してプログラム終了を待たないようにします。


## /boot/firmware/cmdline.txt

splash を有効にする前はこのようになってました。
```
console=serial0,115200 console=tty1 root=PARTUUID=e08d1729-02 rootfstype=ext4 fsck.repair=yes rootwait cfg80211.ieee80211_regdom=JP
```
raspi-config で splash を有効にした時。
```
console=serial0,115200 console=tty1 root=PARTUUID=e08d1729-02 rootfstype=ext4 fsck.repair=yes rootwait cfg80211.ieee80211_regdom=JP quiet splash plymouth.ignore-serial-consoles
                                           
```                         

`quiet splash plymouth.ignore-serial-consoles`

が増えています。


# ログオンプロンプトを消す?

以下のログオンプロンプトが、スプラッシュが消えた後に表示されます。
```
Raspbian GNU/Linux 12 raspberrypi tty1

raspberrypi login:
```
これを消すには以下のようにすればいいかな?

```
$ sudo systemctl mask getty@tty1.service
Created symlink /etc/systemd/system/getty@tty1.service → /dev/null.
```

何故か動作が不安定になり、正常に起動せずリセットしたり、起動してもネットワークが動かなくなったりした。
当然、ネットワークが反応しなければ ssh でも入れない。
仕方なく元に戻して、

```
$ sudo systemctl unmask getty@tty1.service
Removed "/etc/systemd/system/getty@tty1.service".
$ sudo systemctl enable getty@tty1.service
Created symlink /etc/systemd/system/getty.target.wants/getty@tty1.service → /lib/systemd/system/getty@.service.
```

再度設定。

```
$ sudo systemctl mask getty@tty1
Created symlink /etc/systemd/system/getty@tty1.service → /dev/null.
```
今度はうまくいきました。 `getty@tty1.service` ではなくて `getty@tty1` としなければいけなかったのかな?