Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
Tags
- DMA
- sscanf
- sprintf
- 멀티프로세싱
- memcmp
- context
- 속도저하
- fscanf
- 젠킨스
- 문자형 디바이스 파일
- interrupt handler
- interrupt context
- activities
- 디스크립터
- Shared Folder
- jenkins
- 환경 변수
- ubuntu
- intents
- HDR
- context switch
- 프레임버퍼
- 디스크 축소
- gparted
- 소캣
- fprintf
- layouts
- usb2.0
- pagefile.sys
- makefile
Archives
- Today
- Total
do{학습}while
YOCTO) 메타 데이터 종류, 메타 데이터 파일 종류 본문
Yocto는 실제로 소스를 직접 포함하지 않고, 어떻게 빌드할지를 정의한 데이터 (즉, 메타데이터)를 사용해서 이미지를 만드는 방식이야.
✅ Yocto 메타데이터(Metadata)란?
패키지를 어떻게 다운로드하고, 빌드하고, 설치하고, 패키징할지 정의한 모든 설정 파일들을 의미해.
이 메타데이터는 주로 레시피, 설정 파일, 클래스, 레이어 구성 등으로 구성돼.
📁 메타데이터 디렉토리 예시
meta/
├── conf/ ← 설정 파일들 (layer.conf, distro.conf 등)
├── recipes-core/ ← 레시피 모음 (busybox, init 등)
├── classes/ ← 클래스 (.bbclass)
├── files/ ← 패치/설정 파일
🧩 메타데이터의 주요 파일 종류
| 파일 | 확장자설명 |
| .bb | 레시피 (BitBake Recipe) – 빌드 방법 정의 |
| .bbappend | 레시피 확장 – 기존 .bb에 기능 추가/변경 |
| .inc | 공통 include 파일 – 변수 정의 등 |
| .conf | 설정 파일 – 빌드 환경이나 레이어 정보 정의 |
| .bbclass | 클래스 – 재사용 가능한 함수와 변수 정의 |
✅ 메타데이터 종류별 역할 정리
1️⃣ .bb – 레시피 파일
- 어떤 소스를 사용하고, 어떤 빌드 시스템(CMake, Make 등)으로 어떻게 빌드할지 정의
- 즉 테스크를 정의할 수 있음
# 예: busybox_1.35.0.bb
DESCRIPTION = "Tiny utilities"
SRC_URI = "https://busybox.net/downloads/busybox-1.35.0.tar.bz2"
do_compile() {
oe_runmake
}
2️⃣ .bbappend – 레시피 확장 파일
- 기존 레시피에 내용을 덧붙이거나 수정
- 커널, BSP, vendor-specific 확장에 자주 사용
# busybox_%.bbappend
SRC_URI += "file://myconfig.cfg"
📌 .bbappend는 해당하는 .bb 파일이 존재할 때만 유효함
3️⃣ .conf – 설정 파일
| 파일 | 역할 |
| local.conf | 로컬 빌드 설정 (MACHINE, DISTRO, THREAD 수 등) |
| bblayers.conf | 포함할 메타레이어 목록 정의 |
| distro.conf | DISTRO 수준 설정 정의 (예: poky, custom-distro) |
| layer.conf | 각 레이어의 이름, 우선순위, bbpath 설정 |
예:
MACHINE ??= "qemuarm64"
DISTRO ?= "poky"
4️⃣ .inc – include 파일
- 공통 변수나 함수 정의를 여러 .bb에서 재사용할 수 있게 따로 분리
# qt5.inc
LICENSE = "GPL"
DEPENDS += "qtbase"
# qt5-webengine.bb
require qt5.inc
5️⃣ .bbclass – 클래스 파일
- 특정 동작(예: autotools, cmake, kernel 등)의 공통 로직을 정의
- 테스크의 재사용성을 증가시키기 위해 클래스 파일에 함수를 정의
- 종속성을 설정해주는 역할을 하는구나(`addtask before ... after ...`)
- inherit 키워드로 .bb 안에서 상속하여 사용
# recipe
inherit autotools pkgconfig
# autotools.bbclass
do_configure() {
./configure ${EXTRA_OECONF}
}
🎯 메타데이터 종류 요약표
| 종류 | 확장자 | 역할 |
| 레시피 | .bb | 빌드 단위 정의 |
| 레시피 확장 | .bbappend | 레시피 수정/확장 |
| 설정 파일 | .conf | 환경, 머신, 디스트로, 레이어 설정 |
| 공통 include | .inc | 변수/함수 공용 정의 |
| 클래스 | .bbclass | 공통 동작 함수 정의 |
✅ 관련 디렉토리 위치 예시
meta/
├── conf/
│ ├── layer.conf
│ ├── distro/poky.conf
├── classes/
│ ├── base.bbclass
│ ├── autotools.bbclass
├── recipes-core/
│ ├── busybox/
│ │ ├── busybox_1.35.0.bb
│ │ └── busybox_%.bbappend
'YOCTO' 카테고리의 다른 글
| YOCTO) 기본 문법 (0) | 2025.03.29 |
|---|---|
| YOCTO) 자주 사용하는 디버깅 명령어 (0) | 2025.03.23 |
| YOCTO) 변수 cheat_sheet (0) | 2025.03.23 |
| YOCTO) Source를 fetch하는 방식 (0) | 2025.03.23 |
| YOCTO) 빌드 시간을 단축 시간을 방법 (1) | 2025.03.23 |