2016년 2월 18일 목요일

Image customizing 방법

Image에 원하는 package를 추가하는 4가지 방법에 대해서 알아 보자.


1. local.conf 사용.
  • local.conf IMAGE_INSTALL 혹은 IMAGE_INSTALL_append을 사용하는것은 페키지를 이미지에 추가하는 가장 쉬운 방법이나 확장성이 낮다.
  • 예) IMAGE_INSTALL_append = " strace"
    strace를 이미지에 추가.
    주의!. 반드시 추가하고자 하는 페키지 이전에 공백 1칸이 추가되어야 한다.
  • 추가되는 페키지의 순서가 중요하지 않다면 IMAGE_INSTALL += " strace" 와 같이 사용해도 된다.
  • 특정이미지에 한정시킬수도 있다.
  • 예) IMAGE_INSTALL_append_pn-core-image-minimal = " strace"
    core-image-minimal에만 한정적으로 strace가 추가

2. IMAGE_FEATURES and EXTRA_IMAGE_FEATURES 이용.
  • 이미 존재하는 이미지에 추가로 페키지를 추가 할때 유용한 방법으로 IMAGE_FEATURES 와 EXTRA_IMAGE_FEATURES 이용. 둘의 차이는 거의 없으나 사용 구분을 위해 recipes에서는 IMAGE_FEATURES를, local.conf에서는 EXTRA_IMAGE_FEATURES를 사용.
  • meta/classes/core-image.bbclass에 가능한 IMAGE_FEATURES 목록있으니 참고하여 추가.
  • 테스트 : Dropbear SSH server를 core-image-minimal에 추가하자.
  • - core-image-minimal에는 기본으로 ssh server가 들어있지 않음.
    - meta/recipes-core/images/core-image-minimal.bb 아래에 한줄추가.
    IMAGE_FEATURES += "ssh-server-dropbear"
    - $ bitbake core-image-minimal 이후 qemu 실행. 실행시 SSH server 자동실행됨 확인 및 ps으로 확인.
3. custom .bb 파일 사용.
  • custom recipe를 생성했을경우 image폴더의 .bb파일에 INSTALL_IMAGE로 추가할 페키지를 정의할수 있음. 
  • 테스트 : core-image-minimal에 strace추가.
  • meta/recipes-core/images/core-image-minimal.bb 아래에 한줄추가. 
  • IMAGE_INSTALL += "strace"
  • $ bitbake core-image-minimal 이후 qemu 실행. 
  • qemu에서 strace 실행 확인.


4. Custom package group 사용
  • 복잡한 custom image에서는 group recipe를 생성해서 원하는 package들을 한번에 관리하는것이 편리하다.;
  • .meta/recipes-core/packagegroups/packagegroup-base.bb이 좋은 example로서 PACKAGES에 group package목록들이 있고 RDEPENDS와 RRECOMMENDS에서 각 group에 대한 package들을 열거하고 있다.
  • IMAGE_INSTALL += "strace"
  • 아래는 간단한 group recipe 예제
DESCRIPTION = "My Custom Package Groups"
inherit packagegroup
PACKAGES = "\
         packagegroup-custom-apps \
         packagegroup-custom-tools \
         "
RDEPENDS_packagegroup-custom-apps = "\
         dropbear \
         portmap \
         psplash"
RDEPENDS_packagegroup-custom-tools = "\
         oprofile \
         oprofileui-server \
         lttng-tools"
RRECOMMENDS_packagegroup-custom-tools = "\
         kernel-module-oprofile"
    위의 예제의 packagegroup-custom-app와 packagegroup-custom-tools를 IMAGE_INSTALL에 추가하여 관련 package들을 한번에 추가한다.


댓글 없음:

댓글 쓰기