레이어 종류

  • Poky에는 총 3개 종류의 레이어(BSP, Distro, Software)가 존재하며, 이에 대한 설명은 본 절에서 진행한다.
  • 간략하게 각 레이어의 역할은 다음과 같다.
    • BSP: 하드웨어(보드)를 부팅시키기 위한 패키지(부트로더, 커널 등)를 정의 (하드웨어에 완전 종속)
    • Distro: OS에서 어떠한 정책으로 시스템을 운영할 것인지를 정의 (하드웨어에 일부 종속)
    • Software: 서비스하려는 시스템이 어떠한 기능들을 제공할 것인지를 정의 (하드웨어에 완전 독립)

 

BSP(Board Support Package) 레이어

  • 특정 하드웨어(보드)를 부팅하고 동작시키기 위한 하드웨어 지원 레이어이다.
  • Poky를 다운로드 받으면 기본적으로 meta-yocto-bsp라는 레이어가 존재한다.
  • meta-yocto-bsp에는 머신 설정 파일과 패키지 등 BSP를 위한 레퍼런스로 활용 가능하다.

Distro(배포판) 레이어

  • rootfs read-only, package format(rpm/deb 등), debug symbol 추가 등 OS 정책을 정의하는 레이어이다.
  • Poky를 다운로드 받으면 기본적으로 meta-poky라는 레이어가 존재한다.
  • 새 제품을 구성할 때에 OS의 정책을 설정해야 한다면 meta-poky를 복사해서 주로 사용한다.

Software 레이어

  • 애플리케이션과 라이브러리 등 기능 패키지를 제공하는 레이어이다.
  • 하드웨어에 종속되지 않으며 독립적으로 구성가능한 레이어이다.
  • meta-java, meta-qt5, meta-browser 등 다양한 Software 레이어가 존재한다.
  • Software 레이어는 Poky를 다운로드 받을 때 기본적으로 제공되지 않는다.
  • 따라서, Software 레이어는 필요에 따라 새로 작성하거나 다운로드 받아 사용한다. 

 

외부 레이어 추가 방법

  • 새 레이어를 직접 작성해야하는지 아니면, 기존에 작성된 레이어를 사용해야 되는지 애매한 경우가 있다.
  • 이땐, https://layers.openembedded.org/로 접근하여 필요한 레이어를 새로 작성할 필요가 있는지 확인한다.

  • 위 사이트로 접근하면 오픈임베디드에서 관리하는 여러 레이어를 확인 가능하다.
  • 현재 사용 중인 Poky의 버전(master, kirkstone 등)을 선택한 후 적절한 레이어를 검색하면 된다.
$ git clone <reposiotry-url>
  • 적절한 레이어를 찾았다면, 레이어의 Repository 주소를 사용해 다운로드 받는다.
$ cd path/to/poky/build/
$ bitbake-layers add-layer ../meta-<layer>
  • 레이어를 다운로드 받았다면 빌드 디렉터리로 이동한 후 bitbake-layers add-layer 명령을 실행시킨다.
  • bitbake-layers add-layer를 실행하면 자동으로 meta-<layer>가 빌드 시스템에 자동 등록된다.

  • 위 캡쳐는 meta-oe와 meta-java 레이어를 다운로드 받은 후 bitbake-layers add-layer로 등록한 결과이다.
  • bitbake-layers add-layer 명령으로 레이어를 등록하면, 자동으로 build/conf/bblayers.conf가 업데이트된다.
  • 오픈임베디드에서 내려받은 대부분의 레이어의 경우 meta-oe에 종속되므로, 반드시 meta-oe를 먼저 등록해주어야 한다.

 

새 레이어 생성 방법

  • 만약, 위 절에서 설명한 방법으로 검색해보아도 필요한 레이어가 보이지 않는다면 직접 작성해준다.
$ bitbake-layers create-layer path/to/poky/meta-newlayer
  • 새 레이어를 생성할 때에는 bitbake-layers create-layer라는 명령을 활용한다.
  • 이 명령을 사용할 때에 레이어가 생성될 위치는 반드시 Poky 하위로 설정한다.
$ cd path/to/poky/build/
$ bitbake-layers add-layer ../meta-newlayer
  • 새로운 레이어(meta-newlayer)를 생성하였다면, 이제 빌드 시스템에서 이를 인지할 수 있도록 한다.
  • 앞 절에서 설명하였다시피, bitbake-layers add-layer 명령으로 새 레이어를 빌드 시스템에 인지시킬 수 있다.

  • 새롭게 생성한 레이어가 정상적으로 등록하면 위와 같은 결과를 확인가능하다.

 

※ 다음 장에서 새롭게 생성한 레이어 내부 메타데이터(레시피 등)를 커스텀하는 방법을 설명한다.

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기