목록기술, 나의 공부를 공유합니다./[Vehicle] Yocto (11)
yoncho`s blog

이번 학습에서는 타깃 시스템을 만들 수 있는 타깃 시트템 Image와 타깃 머신과 관련된 BSP Layer를 학습할 것이다.학습을 통해 만들고자 하는 시스템은 great이라고 할 것이고 시스템 전체 구조는 아래와 같다. 위 구조에서 Custom Layer 中 배포 Layer와 BSP Layer 작업을 이번 학습에서 진행하겠다. #목차1. Custom Image Recipe 생성2. BSP Layer3. bitbake 문법4. Custom BSP Layer 생성5. 최종 [1] Custom Image Recipe 생성앞 글에서 진행한 meta-great Layer에 추가 작업을 진행하겠다. *meta-great Layer는 우리가 별도로 커스텀한 빌드 환경과 패키지 그룹화 등을 적용한 이미지 생성 레시피..

이번 학습에서는 패키지들을 묶어 한번에 이미지 빌드 레시피에 등록하는 패키지 그룹과 커스텀 빌드 스크립트를 만들어 원하는 빌드 환경을 구축할 것이다. #목차1. IMAGE_INSTALL, IMAGE_FEATURES 변수2. Package Group3. 이미 정의된 Package Group4. Custom Build Script를 통한 빌드 환경 구축5. 최종 [1] IMAGE_INSTALL, IMAGE_FEATURES 변수(1) IMAGE_INSTALL 변수IMAGE_INSTALL 변수는 rootfs에 설치할 패키지를 나열한 변수다.우리가 앞서 hello/ nano 예제에서 core-image-minimal.bbappend 레시피 확장 파일에IMAGE_INSTALL += "" 작업을 함으로써 rootf..

개발자라면 의존성을 모를 수 없다. 우리가 만드는 모든 S/W와 사용하는 패키지들은 의존성을 가지고있다.Yocto에도 Bitbake가 제대로 이미지 빌드 및 실행 되기 위해 다른 패키지 혹은 라이브러리를 필요로한다.이를 의존성이라 하고 #목차1. 의존성의 종류2. 의존성을 제공하는 PROVIDES 변수3. 최종 [1] 의존성의 종류Yocto에는 두가지 의존성이 있다.I. 빌드의존성II. 실행 시간 의존성 짧게 각각을 설명해보면 *빌드 의존성 : 어떤 S/W 패키지를 빌드하기 전에 설치되어있어야하는 패키지 관계를 말한다.=> 즉, 빌드 의존성을 가진 패키지는 사전 설치가 완료되어야한다.*실행 시간 의존성 : 빌드와는 상관 없이 어떤 S/W가 실행 중에 사용해야하는 패키지가 있는데. 그런 패키지와의 관계를..

이번 포스트에서는 빌드 최적화에 대해 배우겠다. 크게 autotools, build history, rm-work, externalsrc가 있다. #목차1. GNU Autotools 이용 nano editor build2. Build History 3. rm-work로 disk 용량 절감4. externalsrc 이용 외부 소스로부터 소스 빌드5. 최종 [1] GNU Autotools 이용 nano editor buildGNU Autotools는 GNU build system으로 UNIX 기반 시스템에서 소스 빌드에 도움이되는 빌드 툴이다.리눅스도 이용 가능하다. Autotools는 다양한 H/W 환경을 개발자에게 동일한 빌드 환경으로 설정해주는 매우 착하고 좋고 똑똑한 친구다.oe-core build ..

이번 장에서는 리눅스 시스템 부팅 시 제일 먼저 생성되고 다른 프로세스를 실행하는 init 역할을 하는초기화 관리자라는 데몬을 설명하겠다. 원래 Yocto에서는 System V init이라는 초기화 관리자를 사용하지만 요즘 리눅스 (2015년 기점)들은 Systemd로 초기화 관리자를 바꾸고 있다. 그래서 우린 Systemd만 공부해볼것이다! 후후! 하하!! 추가로 어떤 S/W든 개발 시 디버깅이 매우 중요하다. 이건 개발일을 하는 사람들은 모두 알 것이다.이번 장에서는 초기화 관리자와 같이 로그 파일로 디버깅하는걸 배워볼 것이다. #목차1. Systemd 초기화 관리자 추가2. 로그파일을 이용한 디버깅3. 최종 [1] Systemd 초기화 관리자 추가앞서 우리는 hello 실행파일을 타깃의 rootfs..

이번 글에서는 새로운 레이어를 만들어 보는 과정을 설명하겠다. 앞서 설명드렸다시피 Poky 구조에서 개발자들이 개발에 관여하는 큰 부분은 Custom Layer이다. 이 과정에서는 bitbake 문법(.conf 파일에 작성되는 것들 위주)을 이해하고 새로운 Layer 생성과 관련된 필요 부분을 배우게 된다. #목차1. 5장 환경 구성2. Bitbake 문법 3. Hello application recipe 작성4. License, 라이선스5. 레피시 확장 파일 (.bbappend)6. Layer.conf의 BBFILE_COLLECTIONS, BBFILE_PATTERN 변수 7. 최종 [1] 5장 환경 구성 5장 진행을 위해 새로운 레이어를 만들어놓겠다. I. meta-hello 레이어추가poky/ 디렉터..

Yocto 3번 포스트 (Poky)에서 "bitbake core-image-minimal" 명령어를 실행 시키면 루프 파일 시스템 (rootfs) 이미지를 생성하기 까지 꽤 오랜시간이 소요되었음을 알 수 있다. 오래 걸린 이유는 빌드에 필요한 데이터 소스를 외부에서 받아야하고, 단순히 프로그램 하나 빌드하는게 아닌 리눅스 S/W 스택 구성 전체 패키지도 빌드하기 때문이다.그래서 우리는 다음과 같이 진행해 빌드 속도를 개선 할 것이다,.I. 로컬 소스 저장소를 구축해 빌드에 필요한 데이터를 미리 적재해놓음으로써 빌드 시간을 개선하겠다.II. Yocto가 제공하는 Shared State Cache(공유 상태 캐시)라는 캐시 저장소를 구축해 빌드 시간을 개선하겠다. #목차1. 소스 받기2. Premirrors..

Poky는 Yocto를 다루는데 도움이 될 수 있는 재료로 쓰이기 위해 배포되었다.궁극적으로 커스텀 리눅스를 구축하고 빌드하기 위해 Poky를 사용한다. Poky내에는 커스텀 리눅스를 쉽게 빌드 할 수 있는 여러 메타데이터(.conf, .bb, .class, .inc)가 존재한다.Poky => 기본적인 리눅스 스택 빌드가 되도록 Yocto가 배포한 참조 배포 서로 다른 H/W 환경을 구성하려면 리눅스 구성 S/W Stak도 달라야한다 따라서 우리는 Poky를 참고해 우리가 원하는 타깃 System에 맞는 커스텀 리눅스를 빌드할 수 있게 해야한다! 여담으로 Poky라는 말은 '매우 작은' 뜻을 가지지만 Yocto가 프로젝트 이름들을 음식과 관련된 것으로 짓는데.우리가 흔히 아는 Pocky(빼빼로) 과자에..