Yocto Bitbake하는 과정

SMJ·2025년 9월 28일

BSP development

목록 보기
9/18

시작하기에 앞서서 나는 Docker 환경에서 실행했다.
이 페이지는 Yocto Project에서 Bitbake를 하기 위한 과정을 설명하기 위한 글로 Docker에 대해서는 나중에 자세히 다뤄볼 예정이다.

그래도 간단하게 설명하자면

  • Docker란?
    • 리눅스 컨테이너 기술을 기반으로 개발환경, 애플리케이션, 실행에 필요한 라이브러리와 설정값을 하나의 이미지로 패키징하고 이를 어디서나 동일하게 해주는 플랫폼
  • 쓰는 이유
    • 개발 환경의 일관성 : 개발자가 Docker 이미지를 통해 컴파일러, 라이브러리, 툴체인 등 복잡한 개발환경 셋팅을 통째로 공유할 수 있다.
    • 의존성 관리 : OS 버전, 패키지 버전 등 모든 의존성을 이미지에 고정해 추후에도 동일 조건에서 테스트나 유지보수가 가능
    • 크로스 컴파일 툴체인, Yocto/bitbake, BSP 빌드환경 등 복잡한 설치가 필요한 개발도구 세팅을 “Docker 컨테이너” 하나로 통제 가능

Docker 환경에서 실행

  1. Necessary package install
#Ubuntu and Debian install
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
xz-utils debianutils iputils-ping libsdl1.2-dev xterm curl
  1. Ubuntu distribution
#Update existing list of packages
$ sudo apt-get update
    
#Install a few packages which let apt use packages over HTTPS
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
    
#Add Docker's official GPG key for the official Docker repository
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add
    
#Set up the stable repository, add Docker repository to APT sources
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
  1. Install Docker
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
$ git clone <Board_Docker_script.git>
  1. Excute
$ ./build.sh
$ ./join.sh
#user password 입력
  1. environment
# yocto directory 생성
$ cd share
$ mkdir yocto
$ cd share

# ~/shared/yocto$ 에서 진행
$ git config --global user.email "test@test.test.test"
$ git config --global user.name "test"
$ git config --global http.sslverify false
    
$ repo init -u
$ repo sync
  1. Build Image by Yocto
# 첫 환경 변수 설정 local.conf 파일로 지정
~/yocto$ DISTRO=<EVB's Board>-directfb MACHINE=<EVB's Board> source sources/init-build-env build
    
# 명령어를 실행하여 Yocto 빌드 환경 변수들을 현재 셀 세션에 로드
# Docker 컨테이너를 나갔다가 다시 들어올 경우 여기서 부터 실행
~/yocto$ source sources/init-build-env build/
    
# 소스폴더 위치 확인
$ bitbake linux-yocto -c devshell
$ bitbake u-boot -c devshell
    
# choose Imaege build <core-image-minimal, nvt-image-qt5>
# core-image-minimal은 정말 부팅만 가능할 정도의 setup
$ bitbake core-image-minimal
    
#directory 확인
~/yoco/build/tmp-glibc/deploy/images/<Board>

인텔 i7-13세대 4코어, 램16기가 정도로 할당하고 Bitbake를 했을 때 대략 7시간정도 걸렸던 거 같다.
이후에 커널이미지를 바꾼다던가, 루트파일시스템 부분을 바꾼다던가 하는 경우에는 증분빌드를 하기 때문에 이정도로 까지 걸리지는 않는 것으로 알고 있다.

profile
Embedded Junior Developer

0개의 댓글