라즈베리 파이 5 부트 화면을 맞춤 설정하는 방법

많은 Raspberry Pi 사용자들은 긴 커널 로그와 시스템 메시지를 보는 대신, 깔끔하고 전문적인 부팅 환경을 원합니다.

커뮤니티에서 종종 fbi(프레임버퍼 이미지 뷰어) 같은 도구가 추천되지만, 이 방법에는 근본적인 한계가 있습니다. 프레임버퍼 장치 /dev/fb0는 시스템 서비스가 시작되기 전까지 사용할 수 없기 때문에, 부팅 과정 초기에 이미지를 충분히 일찍 표시할 수 없습니다.

이 가이드에서는 Plymouth를 사용하여 초기 부팅 단계부터 맞춤형 스플래시 화면을 표시하는 신뢰할 수 있는 방법을 소개합니다.


1단계: 커널 출력 비활성화

부팅 중 커널 로그가 화면에 스크롤되어 맞춤형 스플래시 화면을 방해합니다.

다음 매개변수를 부트 명령줄에 추가하세요:

sudo sed -i '$s/$/ logo.nologo quiet loglevel=0/' /boot/firmware/cmdline.txt

매개변수 설명:

  • logo.nologo
    좌측 상단의 Raspberry Pi 로고(또는 배포판 로고)를 제거합니다.

  • quiet
    커널 출력량을 줄입니다.

  • loglevel=0
    비상 메시지만 표시하여 커널 출력을 거의 완전히 억제합니다.

:warning: 중요 사항:

cmdline.txt 파일은 공백으로 구분된 매개변수들로 구성된 하나의 줄로 유지되어야 합니다. 잘못된 형식은 시스템 부팅 실패를 유발할 수 있습니다.


깜빡이는 커서 숨기기

커널 출력을 억제한 후에도 일부 시스템에서는 여전히 터미널 커서가 깜빡일 수 있습니다.

같은 줄의 끝에 다음 매개변수를 추가하세요:

vt.global_cursor_default=0

2단계: 부트 리소스 준비

이미지 최적화

권장 사양:

  • 형식: PNG 또는 JPG (투명도 필요 시 PNG 권장)
  • 해상도: ≤ 1920×1080
  • 색상 팔레트: ≤ 224색 (로딩 속도 향상)
  • 파일 이름: splash.png

이미지를 다음 위치에 저장하세요:

/boot/splash.png

이 경로는 커널이 초기 부팅 중에 이미지에 접근할 수 있도록 해줍니다.


디스플레이 드라이버 설정 확인

다음 파일에서 올바른 디스플레이 드라이버가 활성화되었는지 확인하세요:

/boot/firmware/config.txt

예시 설정:

dtparam=vc4-kms-v3d

HDMI 재초기화를 유발할 수 있는 다음과 같은 매개변수는 피하세요:

hdmi_force_hotplug=1

3단계: Plymouth 테마 시스템 배포

1. 필요한 패키지 설치

sudo apt update
sudo apt install plymouth plymouth-themes -y

2. 최소 테마 생성

테마 디렉터리 생성:

sudo mkdir -p /usr/share/plymouth/themes/silent

테마 설정 파일 생성:

/usr/share/plymouth/themes/silent/silent.plymouth
[Plymouth Theme]
Name=silent
Description=정적 스플래시 화면
ModuleName=script

[script]
ImageDir=/usr/share/plymouth/themes/silent
ScriptFile=/usr/share/plymouth/themes/silent/silent.script

3. 렌더링 스크립트 생성

다음을 생성하세요:

/usr/share/plymouth/themes/silent/silent.script
wallpaper_image = Image("splash.png");
screen_width = Window.GetWidth();
screen_height = Window.GetHeight();
wallpaper_sprite = Sprite(wallpaper_image);
wallpaper_sprite.SetPosition(0, 0, -100);

스크립트 동작 설명:

  • 미리 준비한 부팅 이미지 로드
  • 현재 디스플레이 해상도 가져오기
  • 전체 화면 스프라이트 객체 생성
  • 이미지가 가장 아래 레이어에 위치하도록 Z축 순서 설정

4. 리소스 배포 및 테마 활성화

이미지 복사:

sudo cp /boot/splash.png /usr/share/plymouth/themes/silent/

테마 활성화:

sudo plymouth-set-default-theme -R silent

중요 참고:

-R 매개변수는 기본 테마를 설정할 뿐 아니라 다음 명령도 실행합니다:

update-initramfs -u

이 명령은 테마를 initramfs에 컴파일하여, Plymouth가 초기 커널 부팅 단계에서도 스플래시 화면을 표시할 수 있게 해줍니다.


기술적 설명

Raspberry Pi 5 부팅 순서

Raspberry Pi 5의 부팅 과정은 이전 버전과 크게 다릅니다.

  1. 펌웨어 단계
    PCIe 및 HDMI 등의 하드웨어 초기화.

  2. systemd-boot 단계
    커널과 initramfs 로드.

  3. 기본 시스템 단계 (basic.target)
    프레임버퍼 장치가 완전히 사용 가능해짐.

이 때문에 fbi 방법이 실패하는 이유입니다. fbi는 시스템 서비스로 시작하지만, 프레임버퍼 장치가 아직 준비되지 않았을 수 있습니다. 반면 Plymouth는 부팅 과정 초기에 실행됩니다.


시각적 레이어 제어

스크립트에서:

SetPosition(0, 0, -100)

음수 Z축 값은 이미지를 가장 아래 레이어에 배치하여, 이후 UI 요소가 이미지를 덮지 않도록 보장합니다.

이 레이어링 메커니즘은 깔끔한 스플래시 화면을 만드는 데 필수적입니다.


검증 및 테스트

시스템 재부팅:

sudo sync
sudo reboot

기대 결과:

  • :white_check_mark: 무지개 부팅 사각형 없음
  • :white_check_mark: 커널 로그 출력 없음
  • :white_check_mark: 깜빡이는 커서 없음
  • :white_check_mark: 부팅 전체 과정 동안 맞춤형 이미지 표시

펌웨어 단계에서 여전히 문자가 나타난다면, 이는 start.elf에서 나오는 것입니다. 이를 제거하려면 부트로더 로고 리소스를 교체해야 하며, 더 깊은 수정이 필요합니다.


:white_check_mark: 이 설정을 완료하면, Raspberry Pi는 전원을 켠 순간부터 완전히 맞춤화된 스플래시 화면을 표시하게 되며, 세련되고 전문적인 부팅 경험을 제공합니다.