티스토리 뷰

728x90
반응형

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 사용법 요약[기초편]   - 여기에 잘 설명되어 있다.

 

728x90
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/11   »
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
글 보관함