- 개발 환경
개발 보드 : 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 예제를 추가해보도록 하겠습니다.


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

저의 경우 집에 있는 터치 디스플레이로 실행하였지만 일반적인 모니터로도 충분히 실행가능합니다.
'Embedded > Linux' 카테고리의 다른 글
[Yocto Project] Linux kernel module 개발 (0) | 2025.04.08 |
---|---|
[Yocto Project] networkmanager를 통해 wifi 연결 (0) | 2025.04.01 |
[Yocto Project] 라즈베리파이 WIFI 연결 (0) | 2025.03.31 |
[Yocto Project] initialization manager를 systemd으로 변경 (0) | 2025.03.31 |
[Yocto Project] RaspberryPI4를 UART로 사용 (0) | 2025.03.27 |