yocto project - 레시피 추가해서 hello world 띄우기

박남호·2022년 11월 3일
0
post-thumbnail

이번 포스팅의 목표는 레시피를 추가해서 빌드하고 보드에서 Hello world를 출력 하는것이다. 일단 bitbake core-image-minimal 빌드를 통해 기본적인 파일들은 생성이 된 상태이다.
1. 메타 레이어 생성
일단 source 폴더에 메타 레이어를 추가한다.
~/source/ $ bitbake-layers create-layer meta-customer
~/source/ $ tree meta-customer/
위 명령어를 통해 메타 레이어를 생성하고 아래 명령어를 통해 생성된 레이어의 트리 구조를 볼 수 있다. 아래 사진에서는 recipes-customer가 이미 추가되어있는 상태인데 원래 디폴트로 recipes-example만 추가 되어있다.

../build/conf/에서 bblayers.conf 파일에 방금 생성한 메타 레이어를 추가한다.
BBLAYERS += "${BSPDIR}/sources/meta-customer"

이렇게 추가를 해줘야 bitbake로 빌드할 때 bblayers.conf에 릴리즈 되어있는 레이어들을 빌드하게된다. 이제 레시피 폴더를 생성하고 bb파일과 hello world 코드를 작성해 볼것이다.
먼저 sources/meta-customer 폴더에서 레시피 폴더를 만든다.
$ cd layers/meta-customer/
$ mkdir -p recipes-customer/hello-world/hello-world
레시피 파일 생성 recipes-customer/hello-world/hello-world_1.0.0.bb:

hello 폴더에서 hello-world_1.0.0bb 컴포넌트 레시피 파일을 만든다.
추후 bitbake hello(컴포넌트 폴더 이름)로 빌드하게되면 폴더에 있는 bb 스크립트?를 실행해서 빌드한다. 일단 bb 파일을 작성해 보겠다.

hello-namos 폴더에서 hello world를 출력할 cpp 소스코드를 작성 한다.

지금 어디서 cpp파일을 작성하고 어디서 bb파일을 작성하는지 헷갈리면 맨 위의 tree 이미지를 참조하면 된다.

이제 build 폴더에서 bitbake hello-world를 실행 한다.

정상적으로 빌드가 완료되었다. 이제 결과 파일이 타켓보드에서 잘돌아가는지 확인해보겠다.
~/tmp-imx-yocto-bsp/build/tmp/work/cortexa7t2hf-neon-poky-linux-gnueabi/hello-world/1.0.0-r0 경로에서 ls로 확인해보니 hello-world 실행 파일이 있다.

이제 이 실행파일을 타겟보드로 복사해가겠다. 미리 ftp를 뚫어놔서 그냥 ftp로 전송해서 보겠다. chmod 755 hello-world로 실행파일의 권한을 바꿔주고 실행하였다. 정상적으로 hello-world가 출력된다.

후 이거 한줄 띄우려고 수많은 삽질과 스터디가 필요했다....
추후에 FTP 뚫는 방법에 대해 포스팅 하겠다.

profile
NamoPark

0개의 댓글