오픈임베디드
| 개발자 | 75+ developers[1] |
|---|---|
| 저장소 | |
| 운영 체제 | 리눅스 |
| 플랫폼 | 크로스 플랫폼 |
| 종류 | 빌드 자동화 |
| 라이선스 | MIT |
| 웹사이트 | www |
오픈임베디드(OpenEmbedded, OE)는 임베디드 장치용 리눅스 배포판을 만들기 위해 사용되는 빌드 자동화 소프트웨어 프레임워크이자 크로스 컴파일러 환경이다.[2] 이 프레임워크는 2003년에 공식적으로 설립된 오픈임베디드 커뮤니티에 의해 개발되었다. 오픈임베디드는 리눅스 재단의 워크그룹인 욕토 프로젝트의 권장 빌드 시스템으로, 상업 회사들이 임베디드 제품을 위한 리눅스 기반 시스템을 개발하는 것을 돕는다.
빌드 시스템은 BitBake를 기반으로 한다. 레시피(recipe)라고 불리는 BitBake 설정 파일은 의존성 및 소스 코드 위치, 패키지를 빌드하는 방법, 컴파일된 패키지를 설치 및 제거하는 방법과 같은 다양한 정보를 지정한다. 오픈임베디드 도구는 이러한 레시피를 사용하여 소스 코드를 가져와 패치하고, 바이너리를 컴파일 및 링크하며, 바이너리 패키지(ipk, deb, rpm)를 생성하고, 부팅 가능한 디스크 이미지를 만든다.
과거에는 오픈임베디드 레시피가 단일 저장소에 저장되었고, 메타데이터는 현재 "OpenEmbedded-Classic"이라고 불리는 구조로 되어 있었다. 2010년부터는 계속 증가하는 레시피 수를 더 잘 지원하기 위해 구조가 수정되었다. 레시피 메타데이터는 여러 계층으로 분리되었다. 플랫폼 독립적이고 배포판 독립적인 메타데이터를 포함하는 가장 낮은 계층은 "OpenEmbedded-Core"라고 불린다.[3] 아키텍처 특정, 애플리케이션 특정 및 배포판 종속 지침은 하위 계층의 지침을 재정의하거나 보완할 수 있는 적절한 대상 지원 계층에 적용된다. 또한, 코어 계층의 레시피 변경 사항은 이제 풀 모델로 관리된다: 개발자들은 (이전처럼) 변경 사항을 저장소에 직접 커밋하는 대신 메일링 리스트에 패치를 보낸다. 승인되면 패치는 관리자에 의해 병합(풀)된다.[3]
오픈임베디드 프레임워크는 Git을 통해 설치하고 자동으로 업데이트할 수 있다.[2]
Wic라고 불리는 오픈임베디드 이미지 생성기는 디스크 이미지 파일을 생성하는 데 사용될 수 있으며, 일반적으로 확장자는 .wic이다.
역사
[편집]크리스 라슨, 마이클 라우어, 홀거 슈리히가 만든 오픈임베디드 프로젝트는 OpenZaurus의 성과를 퍼밀리어 리눅스 및 OpenSIMpad와 같은 프로젝트의 기여와 함께 공통 코드베이스로 병합했다. 오픈임베디드는 이러한 프로젝트들을 대체하여 동일한 코드베이스에서 어떤 프로젝트도 빌드하는 데 사용되었다.
OpenEmbedded-Core (OE-Core)는 욕토 프로젝트와 오픈임베디드가 병합되어 탄생했다.[4] 그 이후로 모든 패키지 레시피는 OpenEmbedded-Core를 통해 유지보수된다.
계층 구성
[편집]OpenEmbedded-Core는 욕토와의 병합에서 이러한 계층화된 구조를 채택했으며 시간이 지남에 따라 새로운 계층 항목이 추가되었다.[5][6] 계층은 선언적 성격만을 가진 구조를 나타낸다. 특정 항목은 어떤 항목이 어떤 패키지를 제공할지를 결정하는 범위에서 더 엄격하다. 계층 개요는 다음에서 확인할 수 있다: layers
- 개발자 계층
- 사용자 정의 Bitbake 레시피를 위한 사용자 정의 계층이다. 임베디드 시스템 소프트웨어 개발자는 소프트웨어가 상업용 또는 기본 계층에 맞지 않는 경우 여기에 레시피를 배치한다.
- 상업 계층
- 전문 오픈 소스 벤더의 패키지, 플러그인 및 구성이 이 계층에 포함된다.
- UI 특정 계층
- 현재 메타-오픈임베디드 계층에 있는 계층:
- 하드웨어 특정 계층
-
- meta-efikamx (Efika 장치)
- meta-fsl-arm (프리스케일 세미컨덕터 공식 지원 개발 보드)
- meta-fsl-arm-extra (프리스케일 세미컨덕터 커뮤니티 지원 보드)
- meta-handheld (개인 정보 단말기, PDA)
- meta-intel (인텔 임베디드 장치)
- meta-nslu2 (NSLU2 장치)
- meta-openpandora (Openpandora 장치)
- meta-smartphone (다양한 스마트폰 장치)
- meta-ti (텍사스 인스트루먼트 장치)
- meta-xilinx (자일링스 장치)
- meta-altera (알테라 장치)
- meta-ettus (Ettus Research USRP SDR 장치)
- (기타)
- OpenEmbedded-Core 계층
-
- openembedded-core
- meta-openembedded
지원되는 배포판
[편집]OpenEmbedded-Classic에서는 Base에서 UI-계층까지의 구성이 다양한 리눅스 배포판으로 보완될 수 있다. 다음 목록은 오픈임베디드에서 사용할 수 있다:
지원되는 하드웨어
[편집]다양한 장치가 지원된다:[10]
- 보드 및 프로세서
- 텍사스 인스트루먼트의 비글보드와 ARM CPU 기반의 다양한 장치가 지원된다.
같이 보기
[편집]각주
[편집]- ↑ “OpenEmbedded Developers”. 2012년 11월 9일에 원본 문서에서 보존된 문서.
- ↑ 가 나 Brake, Cliff 외 (2015), 〈Welcome to OpenEmbedded〉, 《OpenEmbedded Wiki》, Blacksburg, VA: openembedded.org.
- ↑ 가 나 Eggleton, Paul (2015), 〈OpenEmbedded-Core〉, 《OpenEmbedded Wiki》, Blacksburg, VA: openembedded.org.
- ↑ 가 나 “Yocto Project Aligns Technology with OpenEmbedded and Gains Corporate Collaborators”. 2012년 1월 11일에 원본 문서에서 보존된 문서.
- ↑ 가 나 Yocto & OpenEmbedded Core Layers 보관됨 2011-09-19 - 웨이백 머신
- ↑ “OpenEmbedded Metadata Index - layers”. 2013년 6월 22일에 원본 문서에서 보존된 문서. 2013년 6월 18일에 확인함.
- ↑ “SHR”. 2011년 10월 7일에 원본 문서에서 보존된 문서. 2011년 9월 30일에 확인함.
- ↑ Ben Combee on Palm Developer Forum - Fri Jul 16, 2010. Building static libs 보관됨 2011-07-26 - 웨이백 머신
- ↑ “B2C Info Solutions”.
- ↑ “Overview of OE supported machines”. 2022년 9월 8일에 확인함.
- ↑ Yocto Project Board Support Package guide
- ↑ “Yocto Project Development Manual”. 2021년 1월 16일에 원본 문서에서 보존된 문서. 2011년 11월 28일에 확인함.