본문 바로가기

YOCTO

YOCTO) 변수 cheat_sheet

실제 레시피(.bb), 설정 파일(local.conf, layer.conf) 등에서 자주 등장하고, 빌드 동작, 패키징, 이미지 구성에 큰 영향을 주는 핵심 변수들이야.


🧱 1. 📦 패키지/레시피 관련 변수

변수설명예시
PN 레시피 이름 (Package Name) "busybox"
PV 버전 (Package Version) "1.35.0"
PR 수정 릴리즈 번호 (Package Revision) "r0"
LICENSE 라이선스 종류 "GPLv2"
SUMMARY 짧은 설명 "Small utilities for embedded systems"
DESCRIPTION 긴 설명 "BusyBox combines tiny versions of many common UNIX utilities..."
HOMEPAGE 프로젝트 URL "https://busybox.net"
SECTION 카테고리 "base"

🌐 2. 📥 소스 코드 다운로드 관련

변수설명예시
SRC_URI 소스 경로 (URL, 파일, Git 등) git://..., file://..., https://...
SRCREV Git 리포지토리에서 사용할 커밋 "abcdef123456"
S 실제 소스 디렉토리 "${WORKDIR}/git"
WORKDIR 레시피 작업 디렉토리 "tmp/work/.../busybox/1.35.0-r0"

🛠️ 3. ⚙️ 빌드/컴파일 관련

변수설명예시
EXTRA_OECONF ./configure에 넘길 옵션 "--enable-static"
EXTRA_OEMAKE make 명령 시 옵션 "-j4"
do_compile 컴파일 명령 정의 oe_runmake
do_install 설치 명령 정의 oe_runmake install DESTDIR=${D}
D 설치 디렉토리 루트 "${WORKDIR}/image"
STAGING_DIR_HOST 툴체인 및 헤더 파일 경로 "tmp/work/.../sysroot-destdir"

📦 4. 🧱 패키징 관련

변수설명예시
PACKAGES 생성할 패키지 목록 "${PN} ${PN}-dev ${PN}-dbg"
FILES_${PN} 패키지에 포함될 파일 목록 "/usr/bin/*"
RDEPENDS_${PN} 런타임 의존성 패키지 "libc libgcc"
DEPENDS 빌드 타임 의존성 "zlib openssl"
INSANE_SKIP_${PN} QA 검사 무시 설정 "ldflags"

📷 5. 🖼 이미지 구성 관련

변수설명예시
IMAGE_INSTALL 이미지에 포함할 패키지 목록 "busybox dropbear"
IMAGE_FSTYPES 생성할 이미지 포맷 "ext4 wic.gz tar.gz"
ROOTFS_POSTPROCESS_COMMAND 루트파일시스템 후처리 함수 remove_unused_files;
EXTRA_IMAGE_FEATURES 디버깅/개발 도구 포함 설정 "debug-tweaks tools-debug"

⚙️ 6. 시스템 경로 관련

변수설명예시
TMPDIR 전체 빌드 결과 디렉토리 "poky/build/tmp"
DL_DIR 소스 다운로드 캐시 경로 "~/yocto/downloads"
SSTATE_DIR sstate 캐시 경로 "~/yocto/sstate-cache"
BBPATH BitBake가 설정파일을 찾는 경로 "poky/build"
LAYERDIR 현재 레이어의 루트 디렉토리 "meta-custom"

🧪 7. 테스트 및 디버깅 변수

변수설명예시
INHERIT 클래스 상속 "image qt5 cmake"
BB_NO_NETWORK 외부 네트워크 사용 제한 "1"
BB_NUMBER_THREADS BitBake 병렬 태스크 수 "8"
PARALLEL_MAKE make -j 병렬 수 "-j8"

🧠 팁: 값 확인하는 명령어

bitbake -e <recipe> | grep ^SRC_URI
bitbake -e busybox | less

→ 해당 레시피의 변수 값을 실시간으로 확인할 수 있어!