yocto project - do_install로 실행 파일 넣기

박남호·2022년 11월 4일
0

지난번에 hello world 실행파일을 FTP로 넣어서 타켓보드에서 출려해봤다. 이번엔 빌드 과정에서 실행파일을 설치 해보려고한다. 이렇게 되면 따로 FTP로 실행파일을 넣을 필요 없이 빌드하면서 rootfs에 실행파일이 설치되기 때문에 두번 작업할 필요가 없다.



아래 두장의 그림을 보면 doinstall 후 파일이 생성되는 위치를 쉽게 파악할 수 있다.
용어 설명을 먼저 하자면
-d : 디렉토리 생성
-m : src파일 dst경로(src 파일을 dst로 옮긴다.)
'{S}' : /tmp-imx-yocto-bsp/build/tmp/work/cortexa7t2hf-neon-poky-linux-gnueabi/hello-world/1.0.0-r0/
'{D}' : /tmp-imx-yocto-bsp/build/tmp/work/cortexa7t2hf-neon-poky-linux-gnueabi/hello-world/1.0.0-r0/image
'{bindir}' : /usr/bin
install -d {D}{bindir} : /tmp-imx-yocto-bsp/build/tmp/work/cortexa7t2hf-neon-poky-linux-gnueabi/hello-world/1.0.0-r0/image/usr/bin 위치에 디렉토리를 생성 한다는 뜻이다.
install -m 0755 {S}/hello-world {D}{bindir} : {S}에 있는 hello-world 파일을 {D}{bindir}로 옮긴다. bsp/build/tmp/work/cortexa7t2hf-neon-poky-linux-gnueabi/hello-world/1.0.0-r0/image/usr/bin를 보면 hello-world 파일이 들어가있는 것을 확인해 볼수있다. hello-namos 이름의 실행파일을 /home/root(username)에 올려보겠다. 실제로 추후에 실행파일을 /home/root에서 관리 하기 때문에 필요한 과정이다.

처음에는 저 빨간 박스 부분의 경로만 수정해주면 될것이라고 생각하고 저 부분을 ${base_prefix}/home/root/ 이렇게 수정하고 bitbake를 실행했는데

계속해서 이런 에러가 나오고 거의 하루를 삽질을 한 결과 패키지 이름을 등록(?) 해줘야 한다는 사실을 알았다. 그래서 hello-world_1.0.0.bb 파일에 FILES
{PN} += "${base_prefix}/home/root/*" 패키지 이름을 추가해주었다.
이렇게 추가하고나면 정상적으로 빌드가 완료되고 image폴더에 home/root/hello-namos가 추가된것을 확인 할 수있다. 이제 파일을 sd card에 복사하고 타겟 보드에서 부팅하면

이렇게 /home/root 경로에 hello-namos 파일이 올라와있는것을 확인할 수 있다. 실행도 정상적으로 되는것을 확인!

참고로 경로지정이 어디되어있나 궁금했었는데 이번에 삽질하면서 찾아냈다. /tmp-imx-yocto-bsp/sources/poky/meta/conf/bitbake.conf 여기에서 경로 지정 및 패키지 등록 등의 구성 정보를 볼 수 있다.

profile
NamoPark

0개의 댓글