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
- 문자형 디바이스 파일
- memcmp
- fscanf
- interrupt handler
- makefile
- sprintf
- activities
- sscanf
- layouts
- 환경 변수
- 디스크립터
- interrupt context
- 멀티프로세싱
- 소캣
- context
- 젠킨스
- fprintf
- jenkins
- 프레임버퍼
- 디스크 축소
- DMA
- context switch
- ubuntu
- pagefile.sys
- 속도저하
- intents
- gparted
- HDR
- usb2.0
- Shared Folder
Archives
- Today
- Total
do{학습}while
YOCTO) Source를 fetch하는 방식 본문
Yocto에서 소스 코드를 어디에서 가져와서(fetch), 어떻게 패치하고 사용하는지는 실무에서 반드시 이해해야 할 내용이야.
✅ 1. Source Mirror (소스 미러)
💡 개념
: 이미 누군가 다운로드해둔 소스 코드 파일을 로컬 또는 내부 서버에서 가져오는 방식.
DL_DIR ?= "/path/to/shared/downloads"
PREMIRRORS += " \ http://.*/.* file:///mnt/mirror/downloads/ \n \ "
📦 예시
- file:///mnt/nfs/downloads/
- http://yocto.local/mirror/
✅ 장점
- 네트워크 의존성 없음 → 속도 빠름
- 사내 보안 유지 가능
🔧 용도
- 사내 빌드 서버에서 외부 접속 없이 빌드하고 싶을 때
- 여러 팀이 공용 다운로드 캐시를 쓸 때
✅ 2. Upstream Project Releases (업스트림 릴리즈)
💡 개념
: 공식 릴리즈 서버에서 .tar.gz, .zip 같은 정식 릴리즈 버전 소스 코드를 받아오는 방식
SRC_URI = "https://ftp.gnu.org/gnu/bash/bash-5.0.tar.gz"
📦 예시
- GNU, kernel.org, SourceForge, GitHub Release 페이지 등
✅ 장점
- 안정적이고 검증된 버전 사용
- 공식 배포 URL이기 때문에 패치 부담 적음
🔧 용도
- BusyBox, bash, libpng 등 정식 릴리즈 버전이 존재하는 패키지
✅ 3. Local Projects (로컬 프로젝트)
💡 개념
: 이미 로컬 PC에 있는 소스를 file:// 형태로 직접 레시피에 포함시키는 방식
SRC_URI = "file://mydriver.c file://Makefile"
또는
SRC_URI = "file://myapp.tar.gz"
✅ 장점
- 인터넷 없이 빌드 가능
- 커스터마이징된 사내 코드 반영 가능
🔧 용도
- 사내 프로젝트, 드라이버, 자체 개발 앱 등
- POC 개발 시에도 편리
✅ 4. SCMs (소스 컨트롤 시스템, Git 등)
💡 개념
: Git, SVN, Mercurial 등 버전 관리 시스템에서 소스를 fetch
SRC_URI = "git://github.com/example/project.git;branch=main;protocol=https"
SRCREV = "e3cabc1d..." # 특정 커밋 고정
✅ 장점
- 최신 개발 버전 사용 가능
- 특정 브랜치/커밋으로 고정 가능 → 재현성 보장
🔧 용도
- 개발 중인 오픈소스 라이브러리
- 사내 GitLab 저장소 활용 시
✨ 요약 비교
방식URL 예시장점주 용도
| Source Mirror | file:///mnt/mirror/ | 빠름, 내부망 | 캐시 공유 |
| Upstream Release | https://ftp.gnu.org/... | 안정, 공개 | 공식 릴리즈 |
| Local Project | file://myapp.c | 간단, 오프라인 | 사내 코드 |
| SCM (Git 등) | git://github.com/... | 유연, 브랜치 가능 | 개발중 코드 |
🧠 실무 팁
- 사내에서는 1 + 3 + 4 조합을 자주 써
- SRC_URI로 여러 파일, 여러 위치를 혼합해서 사용 가능
- Git을 쓰는 경우 SRCREV 고정으로 재현 가능한 빌드를 만드는 게 중요
'YOCTO' 카테고리의 다른 글
| YOCTO) 자주 사용하는 디버깅 명령어 (0) | 2025.03.23 |
|---|---|
| YOCTO) 메타 데이터 종류, 메타 데이터 파일 종류 (0) | 2025.03.23 |
| YOCTO) 변수 cheat_sheet (0) | 2025.03.23 |
| YOCTO) 빌드 시간을 단축 시간을 방법 (1) | 2025.03.23 |
| YOCTO) 무엇이고 왜 사용하는가? (0) | 2025.03.23 |