Yocto 빌드 환경 설정¶
Docker 기반 환경
이 강의에서는 Docker를 사용하여 일관된 개발 환경을 제공합니다.
시스템 요구사항¶
최소 요구사항¶
시스템 사양
- CPU: 4코어 이상 (권장: 8코어)
- RAM: 8GB 이상 (권장: 16GB)
- Storage: 50GB 여유 공간
- Docker: 20.10 이상
지원 플랫폼¶
- ✅ x86_64 (Intel/AMD)
- ✅ ARM64 (Apple Silicon)
- ✅ Virtual Machines
Docker 환경 설정 실습¶
빠른 시작¶
# 프로젝트 클론
git clone https://github.com/jayleekr/kea-yocto.git
cd kea-yocto
# 시스템 상태 사전 확인 (권장)
./scripts/quick-start.sh --dry-run
# Docker 환경 시작
./scripts/quick-start.sh
단계별 설정 과정¶
flowchart TD
Start([🎯 환경 설정 시작]) --> Check{💻 시스템 확인}
Check -->|x86_64 VM| VMSetup[🖥️ VM 환경 설정]
Check -->|ARM64 VM| ARMSetup[🔧 ARM64 특별 설정]
Check -->|Mac Apple Silicon| MacSetup[🍎 Mac 설정]
Check -->|일반 환경| GeneralSetup[⚙️ 일반 설정]
VMSetup --> QuickStart[🚀 빠른 시작]
ARMSetup --> QuickStart
MacSetup --> QuickStart
GeneralSetup --> QuickStart
QuickStart --> Success[✅ 환경 설정 완료]
컨테이너 진입 확인¶
환경 최적화¶
빌드 시간 최적화 전략¶
방법 | 첫 빌드 시간 | 이후 빌드 | 설정 난이도 |
---|---|---|---|
기본 방식 | 2-3시간 | 30분 | 쉬움 |
웹 캐시 | 30분 | 10분 | 쉬움 ⭐ |
CDN 캐시 | 15분 | 5분 | 보통 |
메모리 최적화 설정¶
# local.conf에 추가할 설정들
echo 'BB_NUMBER_THREADS = "4"' >> conf/local.conf
echo 'PARALLEL_MAKE = "-j 4"' >> conf/local.conf
Docker 리소스 설정¶
Docker Desktop 설정
macOS/Windows Docker Desktop에서:
- Docker Desktop → Settings → Resources
- Memory: 최소 8GB 할당
- CPUs: 가능한 많이 할당 (4코어 이상)
- Disk image size: 최소 100GB
네트워크 최적화¶
# 빠른 미러 서버 사용
echo 'MIRRORS += "git://.*/.* http://downloads.yoctoproject.org/mirror/sources/"' >> conf/local.conf
echo 'MIRRORS += "ftp://.*/.* http://downloads.yoctoproject.org/mirror/sources/"' >> conf/local.conf
echo 'MIRRORS += "http://.*/.* http://downloads.yoctoproject.org/mirror/sources/"' >> conf/local.conf
echo 'MIRRORS += "https://.*/.* http://downloads.yoctoproject.org/mirror/sources/"' >> conf/local.conf
환경 변수 설정¶
중요한 환경 변수¶
# 빌드 디렉토리
BUILDDIR="/workspace/build"
# 다운로드 디렉토리 (공유 가능)
DL_DIR="/workspace/downloads"
# 상태 캐시 디렉토리 (공유 가능)
SSTATE_DIR="/workspace/sstate-cache"
# 임시 디렉토리
TMPDIR="/workspace/build/tmp"
편의 함수 활용¶
# Yocto 환경 초기화
yocto_init() {
source /opt/poky/oe-init-build-env /workspace/build
}
# 빠른 빌드
yocto_quick_build() {
bitbake core-image-minimal
}
# 캐시 정리
yocto_clean() {
rm -rf /workspace/build/tmp
}
트러블슈팅¶
일반적인 문제들¶
디스크 공간 부족
증상: 빌드 중 "No space left on device" 에러
해결책:
메모리 부족
증상: 빌드가 멈추거나 시스템이 느려짐
해결책:
네트워크 연결 문제
증상: 소스 다운로드 실패
해결책:
환경 초기화¶
Docker 컨테이너 권한 문제 해결¶
Permission Denied 에러
증상: /workspace/build
디렉토리 생성 시 "Permission denied" 에러
원인: Docker 컨테이너의 /workspace
디렉토리가 root 소유로 설정됨
해결책:
자동화된 권한 수정
매번 수동으로 권한을 수정하는 것을 피하려면: