YOCTO overview

Suhyeon Cho·2022년 12월 30일

Yocto

목록 보기
1/1

refer:

yocto 환경 자체를 git에 올려버리면 컴파일 옵션이라던가 필요한 소스코드의 주소들의 공유가 편하다.
그리고 Git에 새로운 커밋이 있는경우, 따로 fetch할 필요가 없이 yocto에서 업데이트 후 빌드한다.(?!)

bb 파일은 빌드에 필요한 소스코드를 받을 위치, make 옵션과 configure 방법 등등을 갖고있는 일종의 스크립트이다.

What is yocto project?

Yocto 프로젝트는 개발자가 제품의 하드웨어 아키텍처에 관계없이 임베디드 제품용으로 설계된 맞춤형 Linux 기반 시스템을 만드는 데 도움이 되는 오픈 소스 협업 프로젝트입니다.

Yocto Project Components

BitBake 는 data file의 구문 분석 및 실행을 담당한다. 데이터 유형은 몇가지가 있는데,

  • Recipes: S/W의 특정부분에 대한 세부 정보를 제공한다.
  • Class Data: 일반적인 빌드 정보(ex. 커널빌드방법)를 추상화한다.
  • Configuration Data: 장비 별 설정, policy 값 등을 정의한다. configuration data는 모든것을 하나로 묶는 접착제 역할을 한다.
  • BitBake: Bitbake 는, 빌드 시스템의 핵심 도구이며, 메타데이터를 parsing하고 작업목록을 생성한 다음, 해당 작업을 실행하는 일을 담당한다.
  • Layer 는 build system에 대상을 빌드하는 방법을 알려주는 관련 metadata가 포함된 리포지토리 입니다.
  • Pocky: Yocto 프로젝트의 레퍼런스 시스템이며, bitbake라는 tool 과 metadata의 집합으로 구성된 빌드 시스템이다. 프로젝트를 빌드하고 조합하기 위한 메커니즘을 제공한다.
    (여기에 자신만의 target board에 대한 내용을 추가해줌으로써, 최종적으로 원하는 linux system을 만들어낼 수 있음. == 자신의 레시피를 이용해 이미지 생성 가능)
  • Metadata : Recipe, classes, conf file을 일컬어 metadata라고 한다.
  • Class : 클래스 파일은 공통 기능을 추상화하고 여러 레시피(.bb) 파일 간에 공유하는 데 사용됩니다.

Build Flow

  1. 개발자는 architecture 나, policies 등에 대한 configuration detail 환경설정을 먼저 한다.
    A. User Configuration: 사용자가 옵션을 빼고 싶으면 remove, 추가시 append.
    B. Metadtata: .bb file, .bbclass, or patch file
    C. BSP Config: Board Chipset 설정에 대한 정의 및 설정에 따라 동작하는 방식 정의.

  2. 빌드 시스템은 지정된 위치에서 source code를 가져와 다운로드 한다. 빌드 시스템은 tarball과 같은 표준 방법이나 Git과 같은 소스 코드 리포지토리 시스템을 지원합니다.

  3. 소스코드가 다운됐으면, 빌드시스템은 패치가 적용되고, 구성 및 컴파일을 위한 단계가 실행되는local work 영역에 소스코드를 추출합니다.

  4. 그런 다음, 빌드 시스템은 선택한 바이너리 패키지 형식(DEB, RPM, IPK)을 임시 staging 영역에 install하고,

  5. 빌드 프로세스 전반적으로 QA및 검사 진행

  6. binary가 생성된 후에, 빌드 시스템은 최종 루트 파일 이미지를 생성하는데 사용되는 바이너리 패키지 feed를 생성한다.

  7. 마지막으로 rootfs이미지와 SDK를 병렬로 생성한다.

profile
30대에접어든고령개발자(주륵)

0개의 댓글