티스토리 뷰
Yocto Project - Embedded Linux 빌드 시스템
Yocto 빌드시스템은 임베디드 소프트웨어를 위한 임베디드 소프트웨어의 하부설계에 독립적인 리눅스 배포판 생성을 가능하게 하는 절차들과 도구를 만들어내는 목표를 가진 리눅스 재단 작업그룹이다.
우선 작업은 우분투에서 한 후 마지막에 라즈베리파이4의 sd카드를 우분투에 마운트에서 Yocto에서 생성한 이미지를 추가할 것이다.
이미지 생성까지는 우분투 20.4 작업환경에서 작업한다.
** Yocto프로젝트로 sd카드에 새로운 이미지를 입힐 경우 기존의 데이터는 다 날라가니 중요한 데이터가 있다면 SD 카드 이미지를 백업한 후 진행을 하자.
~/pi_bsp$ mkdir -p rootfs/yocto
Yocto 프로젝트를 위해 아래와 같이 패키지를 설치하자.
Release 4.0(krikstone) – 우분투 20.04에서 설치(22 버전은 안된다고 한다.)
sudo apt-get install gawk wget git diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm python zstd liblz4-tool
meta-raspberrypi 레이어 및 poky 설치
~/pi_bsp/rootfs/Yocto$ git clone -b kirkstone git://git.yoctoproject.org/poky.git
~/pi_bsp/rootfs/Yocto$ git clone -b kirkstone git://git.yoctoproject.org/meta-raspberrypi
Poky는 빌드 시스템이다.
아래 명령어를 실행하면 build 디렉터리를 생성하고 build를 current direct로 만든다.
아래 명령어를 실행하고 build 디렉터리가 생성되어야 bitbike 같은 빌드를 위한 명령어들이 실행이 된다.
cd poky
~/pi_bsp/rootfs/Yocto/poky$ source oe-init-build-env build
pock build 설정
local.conf build하려는 device 관련 spec을 정의하고, build 환경을 담고 있다(이 내용을 자신의 device에 맞게 수정해야 함).
나는 라즈베리파이4를 사용하기 때문에 아래와 같이 설정해준다.
~/pi_bsp/rootfs/Yocto/poky/build$ vi conf/local.conf
38 #MACHINE ??= "qemux86-64"
39 MACHINE = "raspberrypi4"

layer 관련 디렉토리 목록을 정의하고 있음. 자신의 device에 맞게 수정해야 한다.
나는 우분투에서 Yocto 프로젝트를 설치하여 아래에 디렉터리에 실행을 할 것이기 때문에 아래와 같이 파일을 추가해주었다.
~/pi_bsp/rootfs/Yocto/poky/build$ vi conf/bblayers.conf
12 /home/ubuntu/pi_bsp/rootfs/Yocto/poky/meta-raspberry-pi

build
minimal os 생성을 위한 build를 진행한다.
~/pi_bsp/rootfs/Yocto/poky/build$ bitbake core-image-minimal
꽤 시간이 걸림 2~3시간 정도?
Ext3 이미지로 sd카드 저장
bitbake core-image-minimal로 만들었던을 했던 이미지를 라즈베리파이 sd카드에 이식하자.

df 명령어로 마운트된 sd카드의 경로를 확인하자 여기서는 sdc로 나오니 sdc로 작업하였다.
sdc로 나올 수도 sdd나 sdb 등으로 나올 수도 있다.
~/pi_bsp/rootfs/Yocto/poky/build/tmp/deploy/images/raspberrypi4$ sudo umount /dev/sdc?
~/pi_bsp/rootfs/Yocto/poky/build/tmp/deploy/images/raspberrypi4$ sudo dd if=core-image-minimal-raspberrypi4-20230912093758.rootfs.ext3 of=/dev/sdc2 bs=1M status=progress
우분투에 마운트한 sd카드를 라즈베리파이4에 인식하여 부팅해주면 라즈베리파이에 Yoctproject로 추가한 이미지가 적용될 것이다.
참조
Yocto Project 사용법 요약[기초편] - 여기에 잘 설명되어 있다.
- Total
- Today
- Yesterday
- Linux
- js syntax
- JS
- 초아
- Python
- 20.03.11.(목)
- C
- Til
- tailwind
- NestJS
- Kernel
- 모닝독서
- CSS
- 자바스크립트
- opencv
- yocto
- 미라클모닝
- SQL
- tailwindcss
- variable
- QT
- 재미있는
- raspberrypi
- 포인터
- 오늘의 공부
- var
- JavaScript
- 스타벅스
- JSON
- 라즈베리파이
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
