Yocto Project의 대략적인 작업순서
0) Poky reference system 을 준비(download & 환경설정) 한다.
1) 자신의 target board에맞는 BSP layer를 하나 만든다. 혹은 기존에 존재하는 내용이 있다면 이를 이용(혹은개선)한다.
2) (필요하다고 판단이 될 경우) 기존에 다른 사람들이 만들어둔 여러 layer(meta-XXXX) 를 찾아 download 한다.
3) 자신의 target board에맞는 general layer를 만든다. (역시 필요할 경우)
=> conf file & meta data 를 적절히 준비(수정)해 둔다.
=> 추가로 필요한 recipe를 만들어 둔다.
4) bitbake - fetch
Recipe 파일을 토대로 build에 필요한 모든 source code를 download 한다.
Source code 에 대한 patch가 존재할 경우 관련 patch를 진행한다.
6) bitbake - configure & compile
configure & compile을진행한다.
7) bitbake - install
install 을한다.
8) bitbake - package
build가 정상적으로 진행될 경우, package 파일(RPM, ipk 등)을생성한다.
9) booting에 필요한 이미지(kernel, rootfs 등)를 생성한다.
Yocto Project 동작방식 관련 Ref 1
Yocto Project 동작방식 관련 Ref 2
설치와 빌드 샘플
$sudo apt-get update
$sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm
$git clone git://git.yoctoproject.org/poky
$git checkout morty
$ulimit -a
# bitbake 빌드
$cd ~/poky
$git checkout -b morty origin/morty
$source oe-init-build-env
=>기본환경설정을진행한다.
=> build 라는 directory를 생성하고, build를 current directory 로 만든다.
=> oe-init-build-env 다음에 아무값도 지정하지 않을 경우, ARM QEMU emulator가 만들어지게 된다.
$bitbake core-image-full-cmdline
=> bitbake task scheduler 를 이용하여 실제 build를진행하여,
최종적으로 bootloader, kernel, root file system 등의 이미지 및 패키지 (rpm, deb, or ipk) 를 만들어낸다.
=> bitbake 다음에 입력가능한 rootfs image 생성 방식으로는 다음과 같은 것들이 있다.
core-image-minimal : small image 생성(recipes-core/images/core-image-minimal.bb)
core-image-minimal-initramfs : initramfs 용이미지생성
core-image-x11: X11 기능이포함된이미지생성
=> 결과물 : build/tmp/deplay/images/*
# bitbake 클린빌드
$rm -rf build/
$source oe-init-build-env
$bitbake core-image-full-cmdline
$sudo apt-get update
$sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm
$git clone git://git.yoctoproject.org/poky
$git checkout morty
$ulimit -a
# bitbake 빌드
$cd ~/poky
$git checkout -b morty origin/morty
$source oe-init-build-env
=>기본환경설정을진행한다.
=> build 라는 directory를 생성하고, build를 current directory 로 만든다.
=> oe-init-build-env 다음에 아무값도 지정하지 않을 경우, ARM QEMU emulator가 만들어지게 된다.
$bitbake core-image-full-cmdline
=> bitbake task scheduler 를 이용하여 실제 build를진행하여,
최종적으로 bootloader, kernel, root file system 등의 이미지 및 패키지 (rpm, deb, or ipk) 를 만들어낸다.
=> bitbake 다음에 입력가능한 rootfs image 생성 방식으로는 다음과 같은 것들이 있다.
core-image-minimal : small image 생성(recipes-core/images/core-image-minimal.bb)
core-image-minimal-initramfs : initramfs 용이미지생성
core-image-x11: X11 기능이포함된이미지생성
=> 결과물 : build/tmp/deplay/images/*
# bitbake 클린빌드
$rm -rf build/
$source oe-init-build-env
$bitbake core-image-full-cmdline
# 빌드 결과물 실행
$cd ~/poky
$source oe-init-build-env
$runqemu qemux86 qemuparams="-smp 4"
|
아래와 같이 나오면 4개의 core 로 실행 완료된 화면이다.
root 로 들어가면 된다.
'Build > Yocto' 카테고리의 다른 글
05. Recipe (0) | 2020.01.23 |
---|---|
04. Layer 추가 (1) | 2020.01.23 |
03. 빌드 설정 (0) | 2020.01.23 |
01. 구성 (2) | 2020.01.23 |