본문 바로가기
Embedded/Linux

[Yocto Project] QT5 예제 실행하기

by Gordon_ 2025. 4. 10.

- 개발 환경

개발 보드 : Raspberrypi 4

WSL2 (Ubuntu 22.04 LTS)

Yocto Project : Scarthgap


0. 사전 작업 (리눅스 이미지 빌드)

https://littlebitodd-developer.tistory.com/27

 

[Yocto Project] RaspberryPI4를 위한 리눅스 이미지 빌드

1. 개발 환경WSL2 (Ubuntu 22.04 LTS)개발 보드 : Raspberrypi 4 2. 필요 패키지 설치sudo apt install build-essential chrpath cpio debianutils diffstat file gawk gcc git iputils-ping libacl1 liblz4-tool locales python3 python3-git python3-jinja2

littlebitodd-developer.tistory.com

1. QT5 레이어 추가

# poky 폴더로 이동
cd poky

# QT5 레이어를 scarthgap release 버전으로 다운로드
git clone https://github.com/meta-qt5/meta-qt5.git --branch scarthgap

# bitbake 활성화 빌드 폴더로 이동
source oe-init-build-env build-rpi4

# meta-qt5 레이어 추가
bitbake-layers add-layer ../meta-qt5

2. local.conf 파일 수정

2.1. Init manager을 systemd로 변경

https://littlebitodd-developer.tistory.com/29

 

[Yocto Project] initialization manager를 systemd으로 변경

1. 현재 Initialization manager 확인 DISTRO_FEATURES 내 "systemd"가 있는지 확인합니다.bitbake-getvar DISTRO_FEATURES2. Initialization manager를 systemd로 변경- Kirkstone(4.0) 버전 이상/local.conf 에 다음과 같이 1줄을 추가

littlebitodd-developer.tistory.com

2.2. DISTRO_FEATURES 값 변경

DISTRO_FEATURES:remove = " x11 wayland vulkan ptest"
DISTRO_FEATURES:append = " directfb"

 

2.3. QT5 예제 추가

  qt5의 예제는 "meta-qt5/recipes-qt/example" 폴더에 존재합니다. 이번에는 cinematicexperience 예제를 추가해보도록 하겠습니다.

QT5 예제 파일들
cinematicexperience 레시피 확인

 

IMAGE_INSTALL:append = " cinematicexperience"

 

 

3. 새로운 레이어 생성 및 추가

# meta-qt5env 생성
bitbake-layers create-layer ../meta-qt5Env
# meta-qt5env 추가
bitbake-layers add-layer ../meta-qt5Env

3.1. QT5 관련 레이어 추가

# meta-qt5env로 이동
cd ../meta-qt5env/
# qt5env 레시피 폴더 생성
mkdir recipes-qt5env
# qt5env 레시피 폴더로 이동
cd recipes-qt5env
# qt5의 설정을 위한 bbappend 파일 생성
touch qtbase_%.bbappend

 

qtbase_%.bbappend에 아래의 내용을 추가합니다.

PACKAGECONFIG:append = "gl gles2 eglfs directfb kms widgets journald"

 

 

4. 리눅스 이미지 빌드 및 설치

# build-rpi4 폴더로 이동
cd ../../build-rpi4

# 리눅스 이미지 빌드
bitbake core-image-base

# sd카드 확인
lsblk

# 이미지를 SD카드에 설치
sudo bmaptool copy ./tmp/deploy/images/raspberrypi4-64/core-image-base-raspberrypi4-64.rootfs.wic.bz2 /dev/sdd

 

 

5. 라즈베리파이로 리눅스 부팅 및 QT5 데모 실행

# QT5 플렛폼 지정을 위한 환경변수 추가
export QT_QPA_PLATFORM=eglfs

# QT5 데모 실행
/usr/share/cinematicexperience-1.0/Qt5_CinematicExperience

https://youtu.be/h2CsdBrL6XI

 

저의 경우 집에 있는 터치 디스플레이로 실행하였지만 일반적인 모니터로도 충분히 실행가능합니다.