UBuntu 14.04가 VirtualBox에 설치된 환경에 Yocto 설치 과정 설명.
Yocto 빌드는 초기에는 시간이 많이 소요되므로 되도록 전용 머신을 권고하고 있지만
yocto만을 위해 장비를 따로 두기도 어렵고해서 VirtualBox환경에서 빌드를 진행하기로 함. 사실 느릴거라는 걱정외에 다른 문제가
있을것이라고는 생각되지 않기도 하고..
몇몇 machine type 테스트 결과 "문제없이 잘되더라"가 지금까지 테스트 결과.
뭐.. 좀더 해보다 보면 문제를 만날수도 있을것 같은데 지금까지는 문제 없이 잘되고 있음 확인.
머신따로 없어도 될것같아 다행 ㅎㅎ
실행 명령어 목록 및 설명 - 기본사양
1.
tool 설치
$
cd ~
$ sudo apt-get update
$
sudo apt-get install git tar python
$ sudo apt-get install gawk wget git-core diffstat
unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm
2. 디렉토리 생성및 최신 버전 다운로드
$ mkdir yocto
$ cd yocto
$ git clone git://git.yoctoproject.org/poky
$ cd poky
$ git checkout -b jethro origin/jethro
3. 빌드환경 초기화. x86용 빌드디렉토리(qemux86) 생성
$ source oe-init-build-env qemux86
4. 빌드. 여러 이미지를 선택가능하나 그중 GUI가 그럴듯한 core-image-sato 선택.
나의 환경에서는 4시간 소요.
$ bitbake core-image-sato
5. 실행.
$ runqemu qemux86
qemu 실행 이미지.
한번 빌드가 되면 이후 동일한 machine type(이 경우는 x86)의 이미지 빌드는 소요시간이 대폭적으로 단축됨.
$ bitbake core-image-minimal 과 같이 간단한것은 10분 이내로 단축됨.
ARM용 빌드
빌드 디렉토리에 대한 특별한 룰은 없으나 machine type 에 따라 빌드 디렉토리를 따로 관리하는것이 좋다고 "Embedded Linux Projects Using
Yocto cookbook"에서는 권고하고 있어 ARM용 빌드용 디렉토리를 따로 만듬.
1. 빌드환경 초기화 및 디렉토리(qemuarm) 생성.
$ cd ~/yocto/poky
$ source oe-init-build-env qemuarm
2. 빌드. 이번에는 간단한
core-image-minimal로 빌드. 1시간 정도 소요.
$ MACHINE=qemuarm bitbake core-image-minimal
MACHINE는 machine type을 의미하며 conf/local.conf에 설정 값이
있다.
conf/local.conf를 에디팅해서 MACHINE=qemuarm로 했다면 bitbake 명령 서두에
굳이 MACHINE=qemuarm을 추가 하지 않아도 된다.
3. 실행. 간단한 text
콘솔화면을 볼수 있음.
$ runqemu qemuarm core-image-minimal
테스트로 x86용 이미지를 빌드했으나 문제 없이 잘됨. 책에서 말한것은 어디까지나 권고사항 이었음..
$ MACHINE=qemux86 bitbake core-image-minimal
생성된 이미지들은 tmp/deploy/images 아래에 생성됨. 따라서 qemuarm과 qemux86 디렉토리가 생성되었음을 확인할수 있다.
아래 그림과 같이 각 폴더내에는 image 종류에 따라 빌드된 이미지들이 들어 있음을 확인할 수 있다.
참고로 아래 3가지 이미지가 생성되었음을 확인 할 수 있다.
- core-image-minimal
- core-image-minimal-dev
- core-image-sato
Default images are: 이미지 종류
- core-image-minimal : This is the smallest BusyBox-, sysvinit-, and udev-based console-only image
- core-image-full-cmdline : This is the BusyBox-based console-only image with full hardware support and a more complete Linux system, including bash
- core-image-lsb : This is a console-only image that is based on Linux Standard Base compliance
- core-image-x11 : This is the basic X11 Windows-system-based image with a graphical terminal
- core-image-sato : This is the X11 Window-system-based image with a SATO theme and a GNOME Mobile desktop environment
- core-image-weston : This is a Wayland protocol and Weston reference compositorbased image
You will also find images with the following suffixes:
- dev : These images are suitable for development work, as they contain headers and libraries.
- sdk : These images include a complete SDK that can be used for development on the target.
- initramfs : This is an image that can be used for a RAM-RAM-based root filesystem, which can optionally be embedded with the Linux kernel.
2008년 구입한 저의 Core i5 16Gb ram 1Tb hdd로는 최초 빌드하니 2시간이 넘게 걸리네요 ssd를 windows로 돌리고 있어서 ssd에는 못해봤는데.. 오늘 새로 ssd 주문했으니 ssd에 올려놓고 다시 해봐야겠습니다
답글삭제작성자가 댓글을 삭제했습니다.
답글삭제어제 밤 주문한 ssd가 도착하여 ssd에 소스 받고 빌드하였는데 결과가 대동소이합니다 약 2시간. ssd에 리눅스를 설치하고 빌드하면 어떻게 결과가 나올지는 잘 모르겠지만 아마도 큰 차이가 없을 것 같습니다 저의 1차 결론은 빌드 과정에서 안드로이드처럼 io가 많은 것이 아니라 compile time 자체가 많거나 build process가 아직 최적화되지 않은 것으로 추측됩니다 일례로 빌드 중간에 cpu를 하나만 사용하고 있는 시간이 많습니다
답글삭제