YOCTO Project 란 ?
Yocto는 다양한 하드웨어 아키텍처에 맞춰 최적화된 리눅스 배포판을 생성할 수 있도록 개발자에게 다양한 도구와 메타데이터를 제공하는 오픈소스 협업 프로젝트이다. ARM, ARM64, x86, x86-64 등 대부분의 아키텍처를 지원하므로, Yocto는 하드웨어 플랫폼에 쉽게 포팅할 수 있는 유연성을 제공한다. 이를 통해 다양한 임베디드 시스템 환경에서 활용될 수 있다.
Yocto 는 크게 메타데이터와 레시피로 구성됩니다.
레시피는 패키지를 어떻게 다운로드, 빌드, 설치할지에 대한 지침을 포함하고 있습니다. 이 메타데이터는 패키지 관리, 파일 시스템 이미지 생성, 툴체인 관리 등을 자동화합니다.
그리고 이러한 메타데이터와 레시피를 Bitbake 라는 빌드 도구를 활용하여 레시피와 메타데이터를 읽고, 여러 개의 소프트웨어 패키지를 조합해 원하는 리눅스 배포판을 자동으로 생성합니다.
저는 이번에 Nvidia Jetson 플랫폼에 Yocto 리눅스 이미지를 빌드하여 플래시 하기 위하여 하기와 같이 레시피를 구성하여 이미지를 생성하였습니다.
Poky: Yocto 프로젝트의 기본 레퍼런스 배포판이며, 다양한 메타데이터와 예제 레시피가 포함되어 있습니다. 이는 Yocto에서 사용할 수 있는 기본 빌드 환경을 제공.
메타레이어(Meta Layers): Yocto 프로젝트는 여러 개의 메타레이어를 조합하여 사용합니다. 각 메타레이어는 특정 하드웨어, 소프트웨어 또는 기능에 대한 빌드 레시피와 설정을 포함.
Meta-tegra: Yocto 프로젝트는 OpenEmbedded 라는 빌드 프레임워크를 기반으로 구축되었으며 OpenEmbedded는 Yocto 프로젝트의 중요한 구성 요소로, 다양한 아키텍처에 맞는 리눅스 배포판을 빌드할 수 있는 강력한 도구.
다만 해당 프로젝트의 Target Board 가 Nvidia의 Jetson인 관계로 Meta-tegra의 요소들이 OpenEmbedded 의 요소들을 대체하여 BSP, Core, Kernel 등을 구성함.
'개발일지' 카테고리의 다른 글
Jetson과 NVRAM 간의 SPI 통신 [2] (0) | 2024.10.07 |
---|---|
Jetson과 NVRAM 간의 SPI 통신 [1] (1) | 2024.10.07 |
[JAVA] Android BroadcastReceiver (0) | 2022.11.29 |
임베디드 S/W 공부 (0) | 2022.11.25 |
C++ STL 정렬되지 않은 셋과 맵 (0) | 2022.11.23 |