Embedded/Yocto Project
[Yocto Project] RaspberryPI4를 위한 리눅스 이미지 빌드
Gordon_
2025. 3. 27. 19:52
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 python3-pexpect python3-pip python3-subunit socat texinfo unzip wget xz-utils zstd
3. Poky 코드 준비
git clone git://git.yoctoproject.org/poky
cd poky
git checkout scarthgap

저는 Scarthgap버전을 사용하였습니다. 아래 링크를 통해 최신의 Yocto project의 relese를 확인 할 수 있습니다.
https://wiki.yoctoproject.org/wiki/Releases
Releases - Yocto Project
wiki.yoctoproject.org
3. build 환경 구축
source oe-init-build-env build-rpi4

4. 레이어(Layer) 추가
RaspberryPI4를 위한 이미지를 빌드하기 위해서는 라즈베리파이 제단에서 제공하는 레이어를 추가하여야 합니다.
# build-rpi4에서 poky로 이동
cd ..
# meta-oe와 meta-python를 추가하기 위한 코드 준비
git clone git://git.openembedded.org/meta-openembedded --branch scarthgap
# meta-raspberrypi를 추가하기 위한 코드 준비
git clone git://git.yoctoproject.org/meta-raspberrypi --branch scarthgap
#poky에서 build-rpi4로 이동
cd build-rpi4
# 레이어를 추가
bitbake-layers add-layer ../meta-openembedded/meta-oe
bitbake-layers add-layer ../meta-openembedded/meta-python
bitbake-layers add-layer ../meta-raspberrypi
# 현재 추가된 레이어 확인
bitbake-layers show-layers

5. 머신(Machine) 설정
./poky/build-rpi4/local.conf 내 MACHINE 변수 값을 "raspberrypi4-64"로 변경합니다.
또한, LICENSE_FLAGS_ACCEPTED를 추가해주어야 합니다.
MACHINE ??= "raspberrypi4-64"
LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"

6. 이미지 빌드
bitbake core-image-base

7. SD카드에 Image 설치
SD 카드 확인
lsblk

이미지 위치 : ./poky/build-rpi4/tmp/depoly/images/raspberrypi4-64/core-image-base-raspberrypi4-64.wic.bz2
# 이미지 설치 패키지 설치
sudo apt install bmap-tools
# SD 카드에 이미지 설치
sudo bmaptool copy ./tmp/deploy/images/raspberrypi4-64/core-image-base-raspberrypi4-64.rootfs.wic.bz2 /dev/sdd
