본문 바로가기

Build/Yocto

03. 빌드 설정

 
YoctoProject 환경 구성 파일
 
빌드가 끝나고 나면 build/conf 디렉토리 아래에 몇 가지 파일이 자동으로 생성된다.
 
 
local.conf
프로젝트 설정 변수를 설정
build하려는 device 관련 spec을정의하고, build 환경을 담고 있음 
이 내용을 자신의 device에 맞게 수정해야 함
 
templateconf.cfg
여러 conf file 이 위치한 디렉토리를 정의하고 있음
default는 meta-yocto/conf
 
bblayers.conf
프로젝트에 필요한 메타데이터 레이어를 열거
layer 관련 디렉토리 목록을 정의하고 있음
자신의 device에 맞게 수정해야 함
 
 

재빌드
 
conf 와 downloads 를 제외하고 나머지 폴더를 지우면 된다.
 
 
 

Download
 
위 폴더의 downloads 폴더는 공유할 수 있다.
 
아래와 같이 여러 곳에서 다운로드한 소스를 찾는다.
 
1. 로컬 downloads
2. premirrors : 조직 내부에 있는 저장소 
3. 패키지 레시피에 있는 원본 소스 다운로드 시도
4. 미러 싸이트 다운로드 시도
 
발견 못하면 에러가 된다.
 
 premirror 를 유지하는 것을 추천한다.
 
다운로드 폴더 지정을 위해 conf/local.conf 파일에 DL_DIR 값을 설정한다.
 
 

Shared State Cache 
 
욕토 프로젝트는 변화가 있는 컴포넌트만 빌드하게 하는 
 
증분 빌드를 사용할 수 있도록 셰어드 스테이트 캐시 메커니즘을 구현한다.
 
빌드 시스템은 태스크에 주어진 입력 데이터의 체크섬을 계산한다.
 
그래서 입력 데이터가 변경되면 해당 테스크는 다시 빌드가 된다.
 
빌드 속도 향상을 위한 캐쉬 공유 방법은 local.conf 파일의
 
SSTATE_MIRRORS 환경 변수를 통해 설정할 수 있다.
 
SSTATE_MIRRORS ?= "file://.* file:///nfs/local/mount/sstate/PATH"
 
만약 캐시를 사용하지 않고 빌드하고자 한다면 --no-setscene 옵션 사용할 수 있다.
 
( 아니면 그냥 sstae-cache 폴더를 지워도 된다 )
 
캐쉬의 공유는 신중해야 하며 프로젝트 마다 다른 캐쉬를 쓰는 것이 좋다.
 
 

빌드 히스토리
 
빌드 히스토리 를 사용하면 빌드속도가 느려지고, 
 
빌드 용량이 증가, 깃 디렉토리 용량 증가한다.
 
그러므로 소프트웨어 업데이트 등의 특별한 경우만 사용해야 한다.
 
conf/local.conf 파일에 설정에서 조절할 수 있다.
 
아래 두 줄을 추가하면 빌드 히스토리를 깃 저장소에 저장할 수 있다.
 
INHERIT += "buildhistory"  ( 빌드 히스토리 활성화 )
BUILDHISTORY_COMMIT = "1" ( 의존성 그래프 포함 )
 
깃 저장소의 경로는 아래 변수로 조절한다.
 
BUILDHISTORY_DIR ( 저장 폴더 지정 가능, 기본 값은 build 폴더 밑의 buildhistory 폴더 )
 
그리고 기본적으로 buildhistory 에는 패키지, 이미지, SDK 변경 사항을 추적하는데 
 
이미지만 한정해서 추적하고자 하면 아래와 같이 셋팅하면 된다.
 
BUILDHISTORY_FEATURES = "image"
 
특정 파일등을 추적하고자 할때는 해당 파일도 추가해 주면 된다.
 
BUILDHISTORY_IMAGE_FILES += "/path/to/file"
 
 
 

'Build > Yocto' 카테고리의 다른 글

05. Recipe  (0) 2020.01.23
04. Layer 추가  (1) 2020.01.23
02. 빌드  (0) 2020.01.23
01. 구성  (2) 2020.01.23