본문 바로가기

Build/Yocto

02. 빌드

 
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 checkout morty
 => git clone -b morty git://git.yoctoproject.org/poky.git 명령으로 대신할 수 있다.
$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 checkout morty
 => git clone -b morty git://git.yoctoproject.org/poky.git 명령으로 대신할 수 있다.
$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