일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- context
- sscanf
- fscanf
- 소캣
- socket
- 멀티프로세싱
- 문자형 디바이스 파일
- sprintf
- SDK
- 프레임버퍼
- layouts
- jenkins
- interrupt handler
- memcmp
- makefile
- 스레드
- DMA
- activities
- context switch
- pagefile.sys
- HDR
- fprintf
- 디스크 축소
- lifecycle
- intents
- list
- 젠킨스
- 환경 변수
- 안드로이드
- interrupt context
- Today
- Total
목록YOCTO (8)
do{학습}while
🧩 Yocto 레시피에서 Git 소스를 fetch하는 두 가지 방법Yocto에서는 외부 Git 레포지토리에서 소스를 받아와 빌드할 수 있다.보통은 SRC_URI 변수에 Git 주소를 설정하면 자동으로 fetch되지만, 네트워크 환경이나 개발 목적에 따라 로컬 소스를 사용하는 방법도 유용하다.이번 글에서는 helloworld라는 간단한 Git 프로젝트를 대상으로,Yocto 레시피에서 GitHub에서 소스를 fetch하는 방법과 로컬 디렉토리에서 소스를 fetch하는 방법 두 가지를 비교해서 정리해본다.✅ 1. GitHub에서 fetch하기🔧 레시피 예제 (helloworld_git.bb)DESCRIPTION = "Simple Hello World app"LICENSE = "MIT"LIC_FILES_CH..
Yocto Dunfell 기준으로 간단하게 정리🔧 기본 문법 정리 (Yocto / BitBake 기준)1. 변수 설정문법 설명VAR = "value"지연 할당: 파싱 시점에 값 할당. 다른 확장된 변수로 다시 확장될 수 있음.VAR := "value"즉시 할당: 파싱 시점에 즉시 값을 확정. 이후 참조에 영향 없음.VAR ?= "value"기본값 할당: VAR이 아직 정의되지 않았을 때만 할당.VAR ??= "value"약한 기본값 할당: 레시피에서 기본 설정처럼 사용됨. 보통 bitbake.conf 쪽에서 많이 씀.2. 변수 확장문법 설명${VAR}변수 참조. 다른 변수나 경로 등에서 주로 사용."${VAR}/something"문자열 내 확장. 경로나 이름 연결할 때 자주 씀.3. 변수 조작문법 설명..
✅ Yocto 디버깅 명령어 – 상황별 정리🔹 1. 🔍 변수 확인 / 환경 확인📌 bitbake -e해당 레시피의 모든 환경 변수 값을 출력 (override 포함)bitbake busybox -e | grep ^SRC_URIbitbake core-image-minimal -e | grep ^IMAGE_INSTALL🔹 2. 🧪 태스크 단독 실행 (테스트용)📌 bitbake -c 특정 태스크만 실행할 때 (예: compile, install, devshell, menuconfig)bitbake -c compile busyboxbitbake -c menuconfig virtual/kernelbitbake -c devshell busybox🧠 참고: devshell은 해당 소스 디렉토리로 진입..
Yocto는 실제로 소스를 직접 포함하지 않고, 어떻게 빌드할지를 정의한 데이터 (즉, 메타데이터)를 사용해서 이미지를 만드는 방식이야.✅ Yocto 메타데이터(Metadata)란?패키지를 어떻게 다운로드하고, 빌드하고, 설치하고, 패키징할지 정의한 모든 설정 파일들을 의미해.이 메타데이터는 주로 레시피, 설정 파일, 클래스, 레이어 구성 등으로 구성돼.📁 메타데이터 디렉토리 예시meta/ ├── conf/ ← 설정 파일들 (layer.conf, distro.conf 등) ├── recipes-core/ ← 레시피 모음 (busybox, init 등) ├── classes/ ← 클래스 (.bbclass) ├── files/ ← 패치/설정 파일🧩 메타데이터의 주요 파일 종류파일 확장자설..
실제 레시피(.bb), 설정 파일(local.conf, layer.conf) 등에서 자주 등장하고, 빌드 동작, 패키징, 이미지 구성에 큰 영향을 주는 핵심 변수들이야.🧱 1. 📦 패키지/레시피 관련 변수변수설명예시PN레시피 이름 (Package Name)"busybox"PV버전 (Package Version)"1.35.0"PR수정 릴리즈 번호 (Package Revision)"r0"LICENSE라이선스 종류"GPLv2"SUMMARY짧은 설명"Small utilities for embedded systems"DESCRIPTION긴 설명"BusyBox combines tiny versions of many common UNIX utilities..."HOMEPAGE프로젝트 URL"https://busy..
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/✅ 장점네트워크 의존성 없음 → 속도 빠름사내 보안 유지 가능🔧 용도사내 빌드 서버에서 외부 접속 없이 빌드하고 싶을 때여러 팀이 공용 다운로드 캐시를 쓸 ..
✅ Yocto 빌드 시간 단축 방법 총정리1️⃣ DL_DIR 공유 (소스 다운로드 캐시)모든 패키지의 소스 코드(.tar.gz, git 등)를 저장하는 디렉토리한 번 다운로드한 파일은 다시 다운받지 않음 DL_DIR ?= "/shared/yocto/downloads"🟢 효과: do_fetch 속도 향상🟡 대상: 모든 개발자 공유 가능2️⃣ SSTATE_DIR 공유 (컴파일 결과 캐시)빌드된 결과물(오브젝트, 바이너리)을 재사용동일한 버전/설정이면 다시 빌드하지 않음SSTATE_DIR ?= "/shared/yocto/sstate-cache"🟢 효과: do_compile, do_install 등의 중복 제거🟡 대상: 협업/CI 환경에서 엄청 유용3️⃣ TMPDIR 백업 및 재활용 (개인용 속도 개선)..
🚀 YOCTO란?Yocto Project는 임베디드 리눅스 시스템을 만들기 위한 오픈소스 빌드 시스템이야.조금 더 쉽게 말하면…"내가 원하는 구성으로 리눅스를 처음부터 직접 만들어주는 공장 같은 도구"야.🧠 왜 YOCTO가 필요할까?일반적인 리눅스(Ubuntu, Debian 등)는 누군가 만들어 놓은 완성품을 설치해서 쓰는 방식이야.하지만 임베디드 시스템은 다르지:디바이스 성능이 낮아 → 불필요한 것 빼야 함커널/드라이버를 바꿔야 함 → 직접 수정해야 함보드마다 구성 다름 → 맞춤형 시스템이 필요함이런 걸 가능하게 해주는 게 바로 Yocto야.🔧 Yocto가 해주는 일Yocto는 내부적으로 이런 걸 자동화해줘:단계설명fetch소스 코드 다운로드 (예: 커널, busybox 등)unpack압축 풀기p..