SW개발/Linux

Yocto 머신별 빌드 옵션 설정

초코쨔응 2024. 2. 9. 20:50

같은 bb 파일을 공유하되, 머신별 (보드별, 칩별 등으로 구분) 구분하는 방법

 

1. 머신을 설정한다.

// 파일명: meta-raspberrypi/conf/machine/raspberrypi3-64.conf

MACHINEOVERRIDES =. "raspberrypi3:"

https://stackoverflow.com/questions/45561697/what-does-machineoverrides-flag-mean

https://github.com/agherzan/meta-raspberrypi/blob/master/conf/machine/raspberrypi3-64.conf

 

2. 원하는 옵션을 덮어쓸 때는 머신 이름을 쓰면 되고, 추가할 때는 append, 뺄 때는 remove 를 쓰면 된다.

(1) 덮어쓰는 방법: "대상:머신명 = 덮어쓸 내용"

KBRANCH = "standard/base"
KBRANCH:qemuarm = "standard/arm-versatile-926ejs"

 

(2) 추가하는 방법: "대상:append:머신명 = 띄어쓰기 + 추가할 내용"

KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"

 

(3) 삭제하는 방법: "대상:remove:머신명 = 제거할 내용"

KERNEL_FEATURES:remove:qemux86-64="cfg/sound.scc"

 

[예시 출처: Yocto bitbake 공식 문서] https://docs.yoctoproject.org/bitbake/dev/bitbake-user-manual/bitbake-user-manual-metadata.html


 

cf) 빌드 디펜던시 설정

DEPENDS += "recipe1"

https://stackoverflow.com/questions/41722240/how-to-use-depends-in-bitbake

 

How to use DEPENDS in bitbake

I have a bitbake build environment with multiple recipes, which are dependent in a chain. At the moment I have to do: bitbake recipe1 && bitbake recipe2 I have added: DEPENDS = "recipe1" ...

stackoverflow.com

 

cf) bitbake 기본 문법 공식 문서

https://docs.yoctoproject.org/bitbake/dev/bitbake-user-manual/bitbake-user-manual-metadata.html

 

3 Syntax and Operators — Bitbake dev documentation

BitBake supports multiple incarnations of a recipe file via the BBCLASSEXTEND variable. The BBCLASSEXTEND variable is a space separated list of classes used to “extend” the recipe for each variant. Here is an example that results in a second incarnatio

docs.yoctoproject.org