2016년 2월 17일 수요일

yocto-layer를 이용한 helloworld추가



1. yocto-layer로 recipe 생성.

생성할 layer이름을 custom이라고 하자.

$ cd ~/yocto/poky
$ source oe-init-build-env qemux86
$ cd ..
$ yocto-layer create custom   

이후, example 생성하겠냐는 물음에 y로 대답 진행하면 기본예제로 helloworld.c 및 기본 자동 생성. 


2. 생성된 디랙토리

[meta-custom]
├── COPYING.MIT
├── README
├── conf
   └── layer.conf
├── recipes-example
   └── example
       ├── example-0.1
          ├── example.patch
          └── helloworld.c
       └── example_0.1.bb
└── recipes-example-bbappend
    └── example-bbappend
        ├── example-0.1
           └── example.patch
        └── example_0.1.bbappend



3. qemux86/conf/bblayer.conf 수정.  

새로운 layer(노란색부분)추가.  
# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
LCONF_VERSION = "6"

BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= " \
  /home/keunho/yocto/poky/meta \
  /home/keunho/yocto/poky/meta-yocto \
  /home/keunho/yocto/poky/meta-custom \
  "
BBLAYERS_NON_REMOVABLE ?= " \
  /home/keunho/yocto/poky/meta \
  /home/keunho/yocto/poky/meta-yocto \
  "

4. qemux86/conf/local.conf 제일 마지막에 아래 라인 추가.

IMAGE_INSTALL_append = " example"


example 실행되면서 실제 실행파일인 helloworld /usr/sbin 설치.


5. 빌드
$ bitbake core-image-minimal

6. 실행
$ runqemu qemux86 core-image-minimal

7. 확인
QEMU에서 helloworld 입력하면 Hello World! 출력

GNU project 추가방법은 아래 링크 참고. https://wiki.yoctoproject.org/wiki/How_do_I#Q:_How_do_I_put_my_recipe_into_Yocto.3F

댓글 없음:

댓글 쓰기