본문 바로가기
Embedded/Linux

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

by Gordon_ 2025. 3. 27.

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

 

Yocto project release 버전 확인

저는 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

SD카드가 sdd임을 확인

 

이미지 위치 : ./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