-
Yocto 작동방식개발/기술 2016. 10. 1. 13:51
Yocto 공식 홈페이지에 있는 yocto 아키텍쳐에 따르면 yocto는 다음과 같은 방식으로 구동된다.
위의 그림은 개발자가 하는 일과 yocto가 하는 일이 뒤섞여 있다. 각각을 나눠서 설명해보면 다음과 같다.
개발자
1. 개발자가 빌드 스크립트를 작성한다.
Metadata(.bb + patches) 파일들을 작성한다. Yocto로 개발시 개발자가 주로 하는 일이다.
2. 환경설정, Machine 등을 설정한다
Machine(BSP) configuration, Policy Configuration, User Configuration. 주로 build 환경 설정 후 conf폴더 내의 .conf 파일들을 수정하는 작업을 말한다. 개발자가 작성/다운 받은 레시피들 중에서 어떤 machine 환경에서 빌드할 것인지 설정하는 작업이다.
3. bitbake 명령어로 빌드한다
작성한 Metadata 파일과 설정 환경에 따라서 Yocto를 구동시킨다. 여기까지가 개발자가 하는 일이다. 중간에 문제가 없으면 나머지는 yocto가 알아서 해준다.
이제 yocto는 개발자가 작성한 스크립트에 맞춰서 빌드를 시작한다. 빌드 작업은 다음과 같이 이뤄진다.
Yocto
1. 소스 코드를 받아온다.
Metadata에 .bb 파일을 보면 SRC_URI가 있고 여기에 주소가 입력되어 있다. 이건 위 주소에서 파일들을 받아오라는 뜻이다.
2. 패치를 적용한다.
Patch Application, SRC_URI에 가끔 file://somepatch.patch 로 패치파일이 들어가 있는 경우가 있다. 이건 소스를 받고 패치 파일을 적용하라는 뜻이다.
3. Config 파일 만들고 빌드 시작
Configuration/Compile 리눅스를 컴파일 할 때를 생각해보면 먼저 config 파일을 만들고 다음 그 config 파일을 토대로 compile을 한다. 이것도 똑같다. 1, 2에서 받아온 소스코드들을 가지고 configuration 작업을 하고 compile을 하는 것이다. 리눅스 같은 OS 코드 뿐만 아니라 gcc 컴파일러도 받아온다.
4. 생성된 package 파일들 분석
만들어진 파일들을 분석해 package 형태로 만든다. 그리고 각각의 연관 관계를 분석한다.
5. Generation
만들어지 파일들을 ipk, rpm, deb 파일의 형태로 만든다. 어디든 쉽게 적용 할 수 있게 압축된 형태로 제공하는 것이다.
6. 이미지 생성
만들어진 파일들을 모두 통합해서 통합 이미지를 만든다. 이 이미지는 아까 개발자가 입력한 Machine에 빌드 할 수 있는 이미지이다.
이미 PC에 설치된 소스코드까지 모두 받아오기 때문에 용량을 많이 잡아먹는 문제점이 있지만
- 다른 사람들과 공통된 작업 환경을 만들어 준다는 점
- 원하는 환경에 맞춰서 빌드 해준다는 점
- 한 번만 맞춰두면 컴파일러 에러는 신경쓰지 않아도 된다는 점
을 생각해본다면 Yocto는 이득인 것 같다.
'개발 > 기술' 카테고리의 다른 글
objdump 를 이용한 바이너리 깨보기 (0) 2018.05.29 그래픽 소프트웨어, 라이브러리 정리 (0) 2018.05.06 Yocto 내부 파일 분석 (1) 2016.10.02 Yocto 튜토리얼 (2) 2016.10.01 Yocto란? (5) 2016.09.16