Yocto Project를 사용하여 Raspberry PI4 이미지를 생성하는 방법을 설명한다.
Yocto Project는 자신만의 임베디드 리눅스를 만들 수 있는 툴과 방법들을 제공한다. 여기서는 Yocto Project의 레퍼런스 시스템인 Poky를 가지고 빌드하여 이미지를 만드는 방법을 설명한다.
빌드할 수 있는 이미지는 다음과 같이 여러가지가 있다. 여기서는 부팅 후 기본적인 shell 까지 떨어지는 core-image-minimal 이미지를 빌드한다.
Common targets are:
core-image-minimal
core-image-sato
meta-toolchain
adt-installer
meta-ide-support
빌드 환경
- Host System: Ubuntu 20.04 64bit
- Target Board: Raspberry Pi4
- Yocto Build Version: Kirkstone (4.0)
빌드 방법
1. Poky 다운로드
$ git clone -b kirkstone git://git.yoctoproject.org/poky.git
2. meta-raspberrypi 레이어 다운로드
$ cd poky
$ git clone -b kirkstone git://git.yoctoproject.org/meta-raspberrypi
3. 환경 설정
$ source oe-init-build-env build
$ vi conf/local.conf 파일에 MACHINE="raspberrypi4" 추가
* raspberrypi1은 MACHINE="raspberrypi" 로 설정
* raspberrypi0는 meta-raspberrypi를 master로 변경 후 MACHINE="raspberrypi0"로 설정하면 된다. 현재 설정으로 봐서 raspberrypi0는 raspberrpi1 이미지로 동작해도 될 것 처럼 보인다.
@@ -35,7 +35,6 @@
#
# This sets the default machine to be qemux86 if no other machine is selected:
MACHINE ??= "qemux86"
+MACHINE = "raspberrypi4"
#
# Where to place downloads
build $ vi conf/bblayers.conf의 BBLAYERS 변수에 meta-raspberrypi 디렉토리 추가
@@ -9,6 +9,7 @@
/home/changhyeok.bae/test/poky/meta \
/home/changhyeok.bae/test/poky/meta-yocto \
/home/changhyeok.bae/test/poky/meta-yocto-bsp \
+ /home/changhyeok.bae/test/poky/meta-raspberrypi \
"
BBLAYERS_NON_REMOVABLE ?= " \
/home/changhyeok.bae/test/poky/meta \
4. 빌드
$ bitbake core-image-minimal
SDCARD에 생성된 이미지 복사
이미지는 poky/build/tmp/deploy/images/raspberrypi4에 있다.
$ dd if=[이미지 위치]/core-image-minimal-raspberrypi2.rpi-sdimg of=/dev/sd? bs=1M; sync of에서 sd?라고 한 이유는 sdcard가 발견된 위치는 사용자마다 다르기 때문에 dmesg로 확인하여 설정한다.
위와 같이 빌드한 후, sdcard에 이미지를 넣고 라즈베리파이2 디바이서에 sdcard를 꼽고 전원을 인가하면 부팅이 되어, login shell이 뜬다.
https://wikidocs.net/3163 에 보면 Linux, Mac OS, Windows에서 각각 SD카드에 이미지를 기록하는 방법에 대해서 자세히 나와 있다.
BeagleBone Black 이미지 생성
이 부분은 다음 글에서 자세히 설명하겠지만, Poky에서 기본적으로 지원하기 때문에 라즈베리파이4보다 훨씬 더 간단한다.
meta-raspberrypi를 받을 필요도 없고, bblayers.conf 파일을 설정할 필요도 없이, conf/local.conf 파일에서 MACHINE="beaglebone"으로만 설정하고 빌드하면 된다.
Reference
- Raspberry Pi 홈페이지: https://www.raspberrypi.org/
- Raspberry Pi 공식 문서 번역본: https://wikidocs.net/book/483
'Yocto' 카테고리의 다른 글
Yocto Project로 빌드한 이미지 디버깅 (0) | 2023.04.20 |
---|---|
Yocto Project의 레퍼런스 시스템 포키 (Poky) (0) | 2023.04.20 |
Yocto Project 용어 설명 및 버전 관리 (0) | 2023.04.20 |
Yocto 프로젝트를 활용한 Tizen 빌드 세미나 자료 (0) | 2023.04.19 |
Yocto Project, OpenEmbedded를 지원하는 개발 보드 (0) | 2023.04.19 |