본문 바로가기
Yocto

Yocto 패키지 구성하기

by 코딩스미스 2022. 9. 19.

Yocto에서 가벼운 리눅스 이미지를 bitbake core-image-minimal 를 실행하여 만들 수 있다고 하지만 정작 실행하면 수많은 모듈을 생성하느라 시간이 몇시간은 걸린다.

busybox와 C/C++ 어플리케이션이 동작하는 정도의 임베디드 리눅스 이미지라면 필요없는 모듈은 만들지 않는 것이 타당하겠다.

 

예를 들어, python을 사용하지 않을 경우, 파일 시스템에서 python을 제거해야 한다.

이를 위해 yocto에서는 패키지 구성을 설정할 수 있다.

이를 위해 아래 키워드를 알아보자.

 

IMAGE_INSTALL

IMAGE_FEATURES

DISTRO_FEATURES

CORE_IMAGE_EXTRA_INSTALL

 

IMAGE_INSTALL

해당 변수에 수납한 패키지를 설치하는 용도로 사용한다. 자작 소프트웨어 설치에 사용한다.

IMAGE_INSTALL_append = "xxx"

IMAGE_INSTALL += "xxx"

설치하고 싶은 기존 레시피가 어느 레이어에 있는지 모로는 경우, 해당 레시피를 제공하는 사이트에서 검색할 수 있다.

 

IMAGE_FEATURES

OpenEmbedded에서 정의된 기능을 추가할 경우 사용한다. 관련 패키지 설치와 설정을 자동으로 해준다.

지정 가능한 기능은 많지 않다. Image Features 페이지에서 확인하여 사용하는 것을 추천한다.

SSH서버 설치를 예를 들면, 레시피 파일(xxx.bb)에

IMAGE_FEATURES_append=" ssh-server-openssh"

를 입력하거나, local.conf에

EXTRA_IMAGE_FEATURES_append=" ssh-server-openssh"

추가 기술한다.

이 두 파일에 기술 방법은 거의 비슷하지만 다른 경우도 있다.

 

DISTRO_FEATURES

IMAGE FEATURES와 비슷하다. 리눅스 배포판 전체에 해당 기능을 사용할 수 있게 해준다.

x11을 설정하면, x11을 지원하는 모든 소프트웨어에 x11지원을 유효화해준다.

 

CORE_IMAGE_EXTRA_INSTALL

core-image.bbclass 안에서 사용되어지지만 최종적으로 IMAGE_INSTALL되어진다.

CORE_IMAGE_BASE_INSTALL = '\
    packagegroup-core-boot \
    packagegroup-base-extended \
    \
    ${CORE_IMAGE_EXTRA_INSTALL} \
    '
 
CORE_IMAGE_EXTRA_INSTALL ?= ""
 
IMAGE_INSTALL ?= "${CORE_IMAGE_BASE_INSTALL}"
 
inherit image