yocto project - 1. Yocto Project를 이용하여 이미지 파일 얻기

박남호·2022년 11월 1일
0

이제 본격적으로 yocto를 통해서 이미지를 생성하려고한다. 일단 NXP에서 제공하는 IMX_YOCTO_PROJECT_USERS_GUIDE를 참조해서 하나씩 따라가 보려고 한다. 크게 필수 패키지 설치, Repo 유틸리티 설정, yocto project 레시피 레이어 다운로드, 이미지 빌드로 나누어 정리 하였다.
1. 필수 패키지 설치
yocto 프로젝트 빌드를 하려면 빌드에 필요한 패키지가 설치되어 있어야한다.
필수 설치 패키지 :
$ sudo apt-get install gawk wget git-core diffstat unzip
texinfo gcc-multilib \
build-essential chrpath socat cpio python python3 python3-pip
python3-pexpect \
xz-utils debianutils iputils-ping python3-git python3-jinja2
libegl1-mesa libsdl1.2-dev \
pylint3 xterm rsync curl zstd pzstd lz4c lz4 libssl-de

결과 :

뭔가 찜찜하게 에러메시지 ? 경고메시지 ?가 됐지만 크게 문제되지 않을것 같아 그냥 넘어가겠다. 따로 설치 해보려 했지만 뭔가 제대로 설치가 되지않는다.... 다음에 다시 볼 필요가 있을것 같다. 일단은 진도를 위해 넘어가겠다.

  1. Repo 유틸리티 설정
    "Repo" 유틸리티 설치 과정은 다음과 같다.

$ mkdir ~/bin (this step may not be needed if the bin folder
already exists)
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ export PATH=~/bin:$PATH

$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"
$ git config --list

  1. yocto project 레시피 레이어 다운로드
    프로젝트를 빌드하는데 사용되는 레시피는 community와 i.mx에서 모두 제공된다. yocto project 레이어는 source 디렉토리에 다운되며 추후에 여기있는 레시피들을 이용하여 사용자에게 필요한 기능을 넣고 빼서 다시 빌드할 수 있다.

$ mkdir tmp-imx-yocto-bsp
$ cd tmp-imx-yocto-bsp
$ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-kirkstone -m imx-5.15.52-2.1.0.xml
$ repo sync

위 사진을 보면 source 폴더에 meta 폴더들이 생긴것을 볼수있다. 이 안에 recipe들이 들어있고 사용자는 여기서 recipe들을 추가, 제거 해서 필요한 파일들을 생성할 수 있다. 추후에 레시피를 추가해서 hello_world를 찍어볼 예정이고 사용자가 만드는 레시피와 기존 레시피를 활용하는 방법에 대해서도 스터디를 해서 포스팅할 예정이다.

  1. 이미지 빌드
    빌드 구성 : imx는 시스템의 설정을 단순화하는 imx-setup-release.sh 스크립트를 제공하는데 이를 사용하려면 시스템 이름과 그래픽 백엔드를 지정해야 한다. 현재 Machine에는 imx7dsabresd, DISTRO에는 fsl-imx-wayland를 넣고 빌드해보겠다. DISTRO는 그래픽 백엔드라는데 QT를 사용여부? 현재로서는 어떤 차이가 있는지 잘모르겠다. 어쨋든 빌드 설정을하고 빌드를 진행해보겠다.
    bitbake 시 명령어에 따라 생성되는 파일들이 다르다. core-image-minimal은 장치만 부팅할 수 있는 작은 이미지라고 설명되어있고 이 외에 core-image-base, core-image-sato, imx-image-core, fsl-image-machine-test, imx-image-multimedia, imx-image-full 등이 있는데 아직 나머지는 쓸 일이 없어서 core-image-minimal로 빌드한 파일들을 가지고 리뷰를 계속 이어 나가겠다.

$ DISTRO=fsl-imx-wayland MACHINE=imx7dsabresd source imx-setup-release.sh -b build
$ bitbake core-image-minimal


정상적으로 bitbake 파일이 생성이 되었다.
~/tmp-imx-yocto-bsp/build/tmp/deploy/images/imx7dsabresd 이 경로에서 빌드된 파일들을 보면 기본적으로 포팅하는데 필요한 파일들은 모두 생성이 되었다.

개발 목표 1에 해당하는 이미지 빌드는 정리를 마쳤다. 아직 모르는게 너무 많아서 답답하지만 여러 삽질을 통해 아주 조금씩 알아가는중...

profile
NamoPark

0개의 댓글