본문 바로가기

OSSCA-2025-3rd-Class-yocto

[5주차] yocto 이미지에 c 파일 패키지 포함하기 (Hello World 프로젝트 넣기)

이번주에는 커스텀 레이어를 만들어 c로 작성한 패키지를 만들어 이미지에 포함시킬 것이다. 목표는 qemu를 실행시키고 helloworld라는 명령어를 입력했을때 ----hello world!!!를 출력하게 만드는 것이다. 

 

1.  패키지용 레이어 생성

$bitbake-layers create-layer meta-helloworld

 

2. c파일 작성 및 압축

강의를 참고하여 레이어에 recipes-hello를 추가하고 hellowolrd라는 폴더를 만들어 패키지 구조를 생성하였다. 

 

실행될 helloworld.c 파일은 다음과 같다

 

작성 후 tar 명령어로 폴더를 압축해준다 

이렇게하면오류난다....

 

위 사진에서 마지막에 붙은 /를 빼줘야 나중에 bitbake가 경로를 올바르게 찾아간다 왜냐하면 

tar -czvf helloworld.tar.gz helloworld는 helloworld 폴더 그 자체를 압축하는거고 tar -czvf helloworld.tar.gz helloworld/는 폴더 내부 파일을 압축시키는것이기때문이다. 

 

3. 패키지 bb파일 작성 

SRC_URI로 압축 파일 경로를 작성해주면 된다. bb파일은 파이썬과 셸 스크립트를 혼용해서 쓰기때문에 변수 할당은 파이썬 문법으로, 태스크 함수의 본문은 셸 스크립트로 실행한다. do_compile로 소스 코드를 빌드하고 do_install로 결과물을 설치하는데 이때 위치와 권한을 부여해준다.

 

bb 파일 작성 후 bitbake helloworld로 패키지가 제대로 생성되었는지 확인해본다

4. 커스텀 레이어 레시피 또는 local.conf에 append

저번에 패키지 추가했을때 사용한 IMAGE_INSTALL 변수를 사용하여 패키지를 추가한다.

 

5. 실행

 

 

성공적으로 명령어를 실행한다. 패키지 또한 bin 폴더에 있는 것을 확인할 수 있다!