Yocto는 임베디드 리눅스에서 커스텀 리눅스 이미지를 만들 때 거의 표준처럼 쓰이는 도구야.

 

✅ 요약부터: Yocto가 뭐야?

Yocto Project임베디드 리눅스 시스템을 빌드하기 위한 오픈소스 프로젝트야.

 

👉 쉽게 말하면,

  • 내가 원하는 리눅스를 직접 만든다!
  • 보드에 딱 맞는 OS를 만든다!
  • 커널, 루트 파일시스템, 라이브러리, 어플리케이션까지 전부 조립 가능!

 

 

 

💡 왜 Yocto를 써야 해?

일반 리눅스 배포판Yocto
데스크탑/서버용 임베디드용
용량 큼 커스터마이징 가능, 작게
패키지 기반 소스 기반 빌드
우분투/센토스 등 내가 직접 만드는 리눅스

 

🔧 예:
STM32, Raspberry Pi, NXP i.MX 보드 등에 딱 맞는 리눅스 만들고 싶을 때 Yocto 씀.

 

 

📦 Yocto의 구성요소들 (중요)

용어 설명
Poky Yocto의 reference 빌드 시스템 (실제로 Yocto=Poky라고 보면 됨)
BitBake 레시피(요리법)를 읽고 실제로 빌드하는 빌드 도구
Recipe (.bb) 어떻게 소스코드를 빌드할지 정의한 파일
Layer 여러 레시피 묶음 (BSP, 패키지, 앱 등 계층 구조로 관리)
Image 만들어진 최종 루트 파일시스템 이미지
Machine 어떤 보드/하드웨어인지 설정하는 정보 (BSP 설정)

 

 

🔁 Yocto 빌드 과정 흐름


1. yocto 프로젝트 받음 (poky) 
2. 필요한 layer 추가 (meta-xxx) 
3. machine 설정 (어떤 보드용인지) 
4. image 설정 (core-image-minimal 등) 
5. bitbake 실행 → 부트 가능한 이미지 생성 
6. 보드에 다운로드 → 부팅
 

 

👀 실제 사용 예시

 
$ git clone git://git.yoctoproject.org/poky
$ source poky/oe-init-build-env
$ bitbake core-image-minimal

이렇게 하면 최소한의 리눅스 이미지 하나 뚝딱 만들어져.

 

 

🧩 추가로 알아두면 좋은 것

개념 설명
BSP Layer 보드 지원 패키지: 커널, 부트로더 설정 등
meta-layer 패키지, 앱, 기능을 추가하는 계층
sstate-cache 이전 빌드 결과 저장해서 속도 향상
DL_DIR 다운로드된 소스 저장 경로
TMPDIR 빌드 결과물이 저장되는 곳

 

 

🛠 예시 상황극 (쉽게 이해하기)

👨‍🔧: “난 100MB짜리 리눅스 만들고 싶어. WiFi도 되고, 웹서버도 깔고 싶고, 커널은 5.15로.”
👩‍💻: “우분투는 너무 크고 불필요한 게 많잖아.”
🧙: “그럼 Yocto 써! 필요한 것만 넣고 빌드하자!”

 

 

✅ 요약

  • Yocto = 임베디드 리눅스 제조 공장
  • 보드에 딱 맞는 리눅스를 직접 만들 수 있음
  • 개념은 조금 복잡하지만, 자동화/최적화에 강함
  • 임베디드 업계에서는 거의 필수 스킬

+ Recent posts