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 = 임베디드 리눅스 제조 공장
- 보드에 딱 맞는 리눅스를 직접 만들 수 있음
- 개념은 조금 복잡하지만, 자동화/최적화에 강함
- 임베디드 업계에서는 거의 필수 스킬
'잡동사니 > GPT가 알려주는' 카테고리의 다른 글
[GPT가 알려주는] 커널, 셸, 터미널 (0) | 2025.04.08 |
---|---|
[GPT가 알려주는] 마이그레이션 (Migration) (0) | 2025.04.08 |
[GPT가 알려주는] fwdn파일 이란? (0) | 2025.04.08 |
[GPT가 알려주는] 멀티플렉서와 byobu(병풍, 屛風) (0) | 2025.04.08 |
[GPT가 알려주는] 모듈 커널에 적재 (0) | 2025.04.04 |