많은 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
비상 메시지만 표시하여 커널 출력을 거의 완전히 억제합니다.
중요 사항:
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의 부팅 과정은 이전 버전과 크게 다릅니다.
-
펌웨어 단계
PCIe 및 HDMI 등의 하드웨어 초기화. -
systemd-boot 단계
커널과 initramfs 로드. -
기본 시스템 단계 (
basic.target)
프레임버퍼 장치가 완전히 사용 가능해짐.
이 때문에 fbi 방법이 실패하는 이유입니다. fbi는 시스템 서비스로 시작하지만, 프레임버퍼 장치가 아직 준비되지 않았을 수 있습니다. 반면 Plymouth는 부팅 과정 초기에 실행됩니다.
시각적 레이어 제어
스크립트에서:
SetPosition(0, 0, -100)
음수 Z축 값은 이미지를 가장 아래 레이어에 배치하여, 이후 UI 요소가 이미지를 덮지 않도록 보장합니다.
이 레이어링 메커니즘은 깔끔한 스플래시 화면을 만드는 데 필수적입니다.
검증 및 테스트
시스템 재부팅:
sudo sync
sudo reboot
기대 결과:
무지개 부팅 사각형 없음
커널 로그 출력 없음
깜빡이는 커서 없음
부팅 전체 과정 동안 맞춤형 이미지 표시
펌웨어 단계에서 여전히 문자가 나타난다면, 이는 start.elf에서 나오는 것입니다. 이를 제거하려면 부트로더 로고 리소스를 교체해야 하며, 더 깊은 수정이 필요합니다.
이 설정을 완료하면, Raspberry Pi는 전원을 켠 순간부터 완전히 맞춤화된 스플래시 화면을 표시하게 되며, 세련되고 전문적인 부팅 경험을 제공합니다.
