local.conf
poky/build/conf/local.conf
파일이 만들어진다.local.conf
의 역할
1-1. target machine(MACHINE
지정)
1-2. cross-toolchain 지정
local.conf
주의점
2-1. local.conf
파일은 기본 설정들을 override하기에 매우 유용하지만,
local.conf
에서 변경 사항은 어떠한 소스코드 추적 시스템에 의해서도 추적되지 않기 때문에 조심할 것
local.conf
내 변수MACHINE
MACHINE
: 빌드할 타겟 머신(e.g. MACHINE = "qemux86-64"
)${MULTIMACH_TARGET_SYS}=${MACHINE}-${DISTRO}-${OS}
로 나뉘는 것 같음(예상)poky/meta-yocto-bsp
레이어에 의해 기본적으로 지원)${BUILDDIR}/conf/bblayers.conf
에서 추가) 한후,<Layer>/conf/machine/<MACHINE_NAME>.conf
로 확인할 수 있다.MACHINE = 'target machine' | description |
---|---|
beaglebone | 32bit ARM 레퍼런스 플랫폼 비글본 블랙 |
genericx86 | 일반적인 32bit x86 시스템 |
genericx86-64 | 일반적인 64bit x86 시스템 |
mpc8315e-rdb | NXP MPC8315 PowerPC reference platform |
edgerouter | 64bit MIPS reference platform Edge Router |
MACHINE = 'target machine' | description |
---|---|
qemuarm | QEMU ARM 에뮬레이터 |
qemuarm64 | QEMU ARM64 에뮬레이터 |
qemumips | QEMU MIPS 에뮬레이터 |
qemumips64 | QEMU MIPS64 에뮬레이터 |
qemuppc | QEMU PowerPC 에뮬레이터 |
qemux86-64 | QEMU x86 64bit 에뮬레이터 |
qemux86 | QEMU x86 에뮬레이터 |
추가적인 BSP 레이어 사용은 링크 참고
${TOPDIR}
$ bitbake -e | egrep "TOPDIR="
poky/build
${DL_DIR}
DL_DIR="${TOPDIR}/downloads"
downloads
의 역할SRC_URI=
tar ball download일 경우libmpc
컴포넌트를 예를든다.poky/meta/recipes-support/libmpc
poky/meta/recipes-support/libmpc/libmpc_1.0.3.bb
libmpc_1.0.3.bb
컴포넌트 레시피 內SRC_URI = "http://www.multi..../download/mpc-${PV}.tar.gz"
"http://www.multi..../download/mpc-1.0.3.tar.gz"
을 다운 후 DL_DIR이 가리키는 곳에 저장${DL_DIR}/mpc-1.0.3.tar.gz.done
파일을 생성해 완료함을 표시한다.SRC_URI
= git일 경우do_fetch
태스크를 실행할 때, SRC_URI = git://
일 경우, -> ${DL_DIR}/git2/<git URL>
로 download${TMPDIR}
TMP_DIR="${TOPDIR}/tmp"
${DISTRO}
DISTRO="poky"
${TMP_DIR}/work/${MACHINE}-${DISTRO}-OS/결과물들
로 생성된다.${INHERIT}
INHERIT += "rm_work"
INHERIT += "rm_work"
$ du -sh build/tmp
해보면 아예 안했을 때보다는 줄어있다.${RM_WORK_EXCLUDE}
rm_work
에 의해 지워지는 레시피 리스트에서 제외하기 원할 때RM_WORK_EXCLUDE += "recipe-name"
RM_WORK_EXCLUDE += "core-image-minimal"
IMAGE_INSTALL
${PACKAGE_CLASSES}
${SSTATE_DIR}
SSTATE_DIR = "${TOPDIR}/sstate-cache"
include
를 사용하여, local.conf
에 append할 '파일'을 지정할 수 있다.${TOPDIR}/my-local.conf
라는 파일을 두고, 내 ${BUILDDIR}/conf/local.conf
에서 include를 사용하여 추가해보자.CPU_COUNT = "${@oe.utils.cpu_count()}"
BB_NUMBER_THREADS = "${@max(${CPU_COUNT}*7//10,1)}"
PARALLEL_MAKE = "-j ${BB_NUMBER_THREADS}"
${TOPDIR}
에 있다고 가정# local.conf
include ${TOPDIR}/my_class.bbclass
(layer/classes) $ tree .
├── my_class.bbclass # <-
├── sample_1.bbclass
├── sample_2.bbclass
├── ....
local.conf
에 INHERIT += "my_class"를 사용하면 된다.