티스토리 뷰

해피 코딩

Yocto project 소개

Broca & Wernicke 2019. 12. 27. 10:06

TL;DR

Yocto project는 임베디드 리눅스 기반 소프트웨어 개발을 위한 오픈소스 프로젝트이다.

소프트웨어 스택과 설정 환경 및 정보의 공유 뿐만 아니라 모든 소프트웨어 스택을 포함하는 패키지 빌드 도구1)도 함께 배포2)하고 있다.

1) 패키지 빌도 도구는 빌드 명세서에 해당하는 Recipes와 빌드 도구인 Bitbake, 그리고 Document로 구성되어 있다. 

2) https://wiki.yoctoproject.org/wiki/Releases

Recipes

모듈 간 의존성 및 각 모듈의 빌드와 설치 방법을 명세한다.

Recipe 마다 하나의 모듈 빌드 명세가 있다고 보면 된다.

Recipe 예: 

WebOS AI 모듈의 Recipe: https://layers.openembedded.org/layerindex/recipe/87086/

Audio manager의 Recipe 원본: https://layers.openembedded.org/layerindex/recipe/53163/

Metadata layers

Metalayer 예: 

https://caffelli-staging.yoctoproject.org/software-overview/layers/

Layer index(directory):

http://layers.openembedded.org/layerindex/branch/master/layers/

Source directory

poky directory Expand source

build/conf/local.conf Expand source

 

Bitbake

Recipes에 따라 소스 코드의 다운로드에서 패키지 빌드 및 생성까지의 전 과정을 수행하는 빌드 도구이다.

Gentoo linux의 package manager인 Portage의 영향을 받아 탄생되었다고 한다.

Bitbake 사용자 메뉴얼: 
  https://www.yoctoproject.org/docs/3.0/bitbake-user-manual/bitbake-user-manual.html
  https://www.openembedded.org/wiki/BitBake_(dev)

Bitbake cheat sheet:
  https://elinux.org/Bitbake_Cheat_Sheet

 

Useful bitbake command

% bitbake-layers show-layers

% bitbake-layers show-recipes

% bitbake -s

 

Quick Start

https://www.yoctoproject.org/docs/3.0/brief-yoctoprojectqs/brief-yoctoprojectqs.html

Build poky (Yocto reference system)

# 필수 파일 설치

$ 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 python3-git python3-jinja2 libegl1-mesa \

    libsdl1.2-dev pylint3 xterm

# Poky 소스 코드 다운로드

$ git clone https://git.yoctoproject.org/git/poky

# oe 환경 설정

$ cd poky

$ source oe-init-build-env

# 이미지 빌드

$ bitbake core-image-sato

# 타겟 실행

$ runqemu qemux86

특정 버전을 받고 싶을 때

$ git fetch --tags

$ git tag

$ git checkout tags/yocto-3.0 -b my-yocto-3.0

 

 

 

Yocto repositories

 

OpenEmbedded

  • Embedded linux 배포판 중 하나 cf. Buildroot, busybox, OpenWRT, uClibc 등등
  • Recipe와 bitbake의 탄생지 - https://www.openembedded.org/ (Yocto project의 패키지 빌드 환경은 OE를 채용했다고 보면 된다.)
  • OpenEmbedded의 repositories - https://git.openembedded.org/

 

References

 

Comments

  1. 참고: Yocto builds in container - https://www.embeddeduse.com/2019/02/11/using-docker-containers-for-yocto-builds/

  2. 참고: Toaster - https://www.yoctoproject.org/docs/3.0/toaster-manual/toaster-manual.html

'해피 코딩' 카테고리의 다른 글

파이썬 알고리즘 문제: Anagram  (0) 2021.01.15
[번역] 파이썬으로 테트리스 만들기  (0) 2020.07.12
Docker registry 처음 사용하기  (0) 2019.12.02
Docker 처음 사용하기  (0) 2019.12.02
크롤링2  (0) 2019.08.17
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/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
글 보관함