Yocto 프로젝트를 설치하고 설정하면, 다양한 파일과 디렉터리가 생성된다. 이들 디렉터리는 각각 특정한 목적과 기능을 가지고 있으며, 프로젝트를 제대로 관리하고 개발하기 위해서는 이들의 의미를 잘 이해하는 것이 중요하다. 아래에서는 Yocto 프로젝트의 주요 디렉터리와 그 역할에 대해 설명한다.

build/

이 디렉터리는 Yocto 프로젝트의 빌드 출력을 보관하는 기본 디렉터리이다. build/ 디렉터리는 여러분이 소스 코드와 메타데이터를 기반으로 빌드를 수행할 때 생성된다.

conf/

이 디렉터리는 build/ 디렉터리 안에 있으며, 빌드 설정 파일을 저장한다. 주요 설정 파일은 다음과 같다: - local.conf: 빌드 머신과 타겟 머신을 정의하며, 빌드 설정의 대부분을 구성한다. - bblayers.conf: 사용할 레이어들을 지정한다.

downloads/

이 디렉터리는 Yocto가 소스 코드를 다운로드할 때 사용하는 디렉터리이다. 여기에는 패키지의 소스 코드, 패치 파일 등이 저장된다.

sstate-cache/

이 디렉터리는 Yocto 빌드가 "state" 캐시에 저장되도록 허용한다. 이를 통해 동일한 빌드를 반복할 때 속도를 증가시킨다.

tmp/

이 디렉터리는 임시 파일을 저장하는데 사용되며, Yocto 빌드 과정에서 생성된다.

meta/

이 디렉터리는 Yocto 메타데이터를 포함한다. 여기에는 Yocto의 핵심 레이어, 레시피, 클래스를 정의하는 파일들이 있다.

poky/

이 디렉터리는 Yocto 프로젝트의 레퍼런스 배포판인 Poky의 소스 코드와 메타데이터를 포함한다. Poky는 Yocto 프로젝트의 빌드 시스템을 실제로 적용해 볼 수 있는 예제이다.

bitbake/

이 디렉터리는 BitBake 툴 자체의 소스 코드와 메타데이터를 포함한다. BitBake는 Yocto 프로젝트의 빌드 도구이다.

yocto/

이 디렉터리는 종종 Yocto 프로젝트의 메타데이터와 소스 코드를 포함하는 디렉터리로 사용된다. 이는 다양한 서브 디렉터리 및 파일을 포함할 수 있으며, 프로젝트의 메인 디렉터리로 사용되기도 한다.

recipes-*

이 디렉터리들은 특정 패키지나 프로그램을 빌드하기 위한 레시피 파일들을 포함한다. 예를 들어, recipes-core는 핵심 시스템 구성 요소들을 빌드하기 위한 레시피들을 포함하고, recipes-kernel은 커널과 관련된 레시피들을 포함한다.

classes/

이 디렉터리는 BitBake 클래스 파일들을 포함한다. 클래스 파일들은 빌드 과정에서 여러 레시피 간에 공유될 수 있는 공통 기능을 정의한다.

layers/

각 레이어는 특정 기능, 보드 지원, 또는 소프트웨어 스택을 추가하기 위한 메타데이터와 레시피들을 포함한다. 예를 들어, meta-oe(OpenEmbedded) 레이어는 여러 오픈 소스 패키지를 포함하고 있다.

licenses/

Yocto 프로젝트에서 사용하는 다양한 소프트웨어 라이선스 파일들을 저장하는 디렉터리이다.

기타 사용자 정의 디렉터리

여러분은 프로젝트의 필요에 따라 다른 사용자 정의 디렉터리를 만들 수 있다. 예를 들어, 특정 보드와 관련된 새로운 레이터나 특정 애플리케이션의 메타데이터를 추가하기 위해 별도의 디렉터리를 만들 수 있다.

Yocto 프로젝트의 디렉터리 구조 이해는 프로젝트 설정, 사용자 지정 및 관리의 첫걸음이다. 이러한 디렉터리와 파일들을 잘 이해하면 Yocto 프로젝트를 효과적으로 사용할 수 있다.

이상으로 Yocto 프로젝트 디렉터리 구조에 대한 설명을 마친다. 더 궁금한 사항이 있으면 질문해 주세요!