728x90

openembedded 33

Yocto 병렬 빌드 옵션 최적화

Yocto 프로젝트에서 병렬 빌드 옵션을 설정하면 빌드 속도를 크게 향상시킬 수 있다. 일반적으로 Yocto 프로젝트는 OpenEmbedded 빌드 시스템을 사용하며, 병렬 빌드 옵션을 설정할 때 다음 두 가지 주요 변수를 설정해야 한다.BB_NUMBER_THREADS: BitBake가 병렬로 실행할 수 있는 스레드의 수를 지정한다.PARALLEL_MAKE: make가 병렬로 실행할 수 있는 작업의 수를 지정한다.이 변수의 기본 값은 빌드하는 호스트의 CPU 개수 값으로 meta/conf/bitbake.conf 파일에 설정 되어 있다. 작은 프로젝트나 Yocto 프로젝트의 레퍼런스인 Poky를 빌드할 때 기본 옵션을 사용해도 크게 상관은 없지만 이 옵션들은 빌드 호스트 머신의 성능과 프로젝트에 맞게 커스..

Yocto 2024.06.10

Yocto의 logging 함수 (파이썬, 쉘)

Yocto에서는 디버깅을 할 때 로그를 남길 수 있도록 logging 함수를 파이썬과 shell로 각각 제공한다. 각 logging 함수의 종류와 비슷하지만 약간 다른 파이썬과 쉘 로깅함수에 대해서 이 글에서 간단히 알아보고자 한다.Logging 함수 종류파이썬: bb.fatal, bb.error, bb.wran, bb.note, bb.plain, bb.debugshell 스크립트: bbfatal, bberror, bbwarn, bbnote, bbplain, bbdebug함수 이름설명bb.fatal, bbfatal메시지를 출력하고 빌드를 중단시킨다.bb.error, bberror에러를 출력하지만 빌드가 중단되지는 않는다.bb.warn, bbwarn경고메시지만 출력한다.bb.note, bbnote사용자 정..

Yocto 2024.05.14

Yocto 패키지 디버깅 (oe-pkgdata-util) 방법

Yocto의 레퍼런스인 Poky의 scripts 디렉토리 밑에 다양한 툴이 있다. 이번글에서는 oe-pkgdata-util 스크립트를 가지고 간단히 패키지를 디버깅하는 방법을 알아보고자 한다. 다음은 help 명령어를 사용한 결과로 어떤 옵션들을 사용할 수 있는지를 알 수 있다. 이 글에서는 많이 사용하는 다음 명령어들을 사용해보면서 간단히 설명해보고자 한다.list-pkgs: 패키지 목록 출력. grep 명령어와 조합해서 특정 레시피의 패키지 목록을 찾아본다.list-pkg-files: 패키지에 있는 파일 목록 출력find-path: 파일 이름으로 패키지 이름 탐색. 디렉토리 경로까지 함께 주어야지 찾아진다.package-info: 패키지 버전 정보 출력 curl 레시피를 예를 들어 간단하게 현재기준 ..

Yocto 2024.05.14

[도서 리뷰] Yocto, 쉽게 이해하고 깊게 다루기

국내 최초의 Yocto 저서 "Yocto, 쉽게 이해하고 깊게 다루기"를 구매해서 3일 동안 편하게 훓어보았다. 작년인가 제작년에 에이콘 출판사에서 이 책을 출간한다고 해서 리뷰를 간단히 한 적이 있는데 .. 기술적인 내용을 더 얻기 보다는 궁금해서 읽어보았다. 전반적으로 Yocto 를 처음 접하거나 개념을 잡을 때 시작하기 좋은 책인 것 같다. 지금까지 나온 다른 원서보다 내용도 쉽게 설명되어 있고 필요한 대부분의 내용이 초보자 수준에서 다 기술되어 있다. 물론 여기서 말하는 초보자는 약간의 임베디드 지식을 알고 있는 Yocto 초보자에 해당된다. 이 책을 읽기전에 임베디드 리눅스 개발에 대한 지식이 있으면 훨씬 더 이해하기 좋을 것 같다. 600쪽이 넘지만 글자도 크고 내용이 (필자 기준) 어렵지 않..

Book 2024.05.04

Yocto 빌드 속도 개선 작업

요즘 내부 핫 토픽 중 하나는 Yocto 기반의 리눅스 Subsystem의 빌드 성능 향상 작업이다. 여러가지 원인으로 인해 성능이 좋은 AWS EC2 Instance를 사용해도 빌드 속도가 엄청나게 오래 걸린다. 물론 지금 모든 이야기는 shared state cache를 사용하지 않고 측청한 결과를 이야기한다. Yocto 공식 Wiki에서 빌드 성능을 향상시키기 위해 Build 서버에서 다음과 같이 설정하라고 가이드 한다. Put the build directory on its own disk. This is good practice in its own right since the build system has a tendency to wear disks heavily. Use the ext4 fil..

Yocto 2023.10.01

초보자들이 볼만한 Yocto 소개 자료

회사에서 개발자 대상으로 Yocto Training 자료 정리하는 중에 도움이 될 만한 자료가 있어 공유하고자 한다. 첫번째 두 세션은 Yocto 프로젝트에 대한 개념을 소개하고 나머지 두 세션은 layer, image, application 생성에 대한 실습을 하면서 필요한 yocto 개념을 설명한다. Yocto는 임베디드 개발에서 프로그래밍을 하는 것에 대한 기본 지식을 가지고 이해해야 해서 약간의 사전 지식이 필요하다. Yocto 프로젝트에 대한 짧은 소개 - 개념 잡기 (5분) Getting started with Yocto (1:03:26) Embedded Linux 에 대한 간단한 정의부터 시작해서 1시간 동안 Yocto Project에 대해 소개한다. 아래 총 4개의 세션으로 나누어져 있는 ..

Yocto 2023.09.22

Yocto 개발 환경 (SDK, eSDK, devtool 등)

Yocto 기반으로 임베디드 리눅스를 개발할때 일반적으로 많이 사용하는 개발 환경을 소개하고자 한다. 다들 알고 글을 읽고 있겠지만 간단히 Yocto에 대해서 다시 소개하자면 하드웨어 아키텍처와 무관하게 커스텀 임베디드 리눅스를 만들기 위한 빌드 프레임워크이다. 자세한 내용은 https://www.yoctoproject.org/ 를 방문해서 문서와 함께 살펴보면 된다. Yocto 기반으로 개발을 해본 분들은 알고 있겠지만 일단 Yocto 자체를 배우는 것에 대한 시간이 소요된다. 오죽하면 "욕나오고 토나온다고 해서" 욕토라고 하겠는가? :) 물론 Yocto 원어는 10의 -24승, 아주 작은 단위를 말한다. 이유야 어찌되었건 그만큼 Yocto 환경에서 개발하는데 어렵다는 의미이다. 그럼 왜그렇게 다들 어..

Yocto 2023.09.21

Yocto에 최적화된 AWS EC2 Instance 사양

필자의 회사는 Yocto를 사용하여 Embedded Linux 빌드를 하고 있다. CI는 Jenkins를 사용하고 있으며 Jenkins Slave는 Docker환경을 AWS EC2 Instance에서 사용하고 있다. 제품을 빌드시간이 엄청나게 오래 걸려 여러가지 방안으로 줄이려는 노력을 하고 있다. AWS EC2 Instance Type 조정 Incredibuild 솔루션 도입 검토 (PoC 진행 완료) 빌드 시간 오래 걸리는 컴포넌트 아키텍처 수정 및 내부 코드 최적화 ccache 적용 검토 이 글에서는 1. AWS EC2 Instance Type 테스트 한 결과를 바탕으로 필자 회사의 환경에 최적화 된 EC2 Instance를 이야기해 보려고 한다. 현재 사용하고 있는 EC2 Instance Type..

Development 2023.04.23

Heading for the yocto project (Yocto 프로젝트를 처음 시작하는 개발자들을 위한 오픈 소스 책)

Yocto 프로젝트를 처음 시작하는 독자들을 위한 50 page 정도의 입문서가 오픈 소스로 github, https://github.com/CollaborativeWritersHub/heading-for-the-yocto-project에서 작업되고 있다 https://github.com/CollaborativeWritersHub/heading-for-the-yocto-project/releases 에 가보면 첫번째 버전을 볼 수 있고 아주 기초적인 내용들을 볼 수 있다. 안타깝지만 영어로 되어 있고, 곧 필자가 시간이 되면 번역하여 한국어판으로도 github에서 볼 수 있게 할 예정이다. 이 책은 Yocto 프로젝트의 기술적인 내용보다는 Yocto 프로젝트가 무엇이며 프로젝트에 적용하면 어떤 점이 좋고..

Yocto 2023.04.21

Yocto Project Developer Day Europe 2017 참석 후기

올해도 역시 작년에 이어 체코 프라하에서 열린 Yocto Project Developer Day Europe 2017 , https://www.yoctoproject.org/yocto-project-developer-day-europe-2017 참석하였다. 역시나 한국에서는 안왔고, 같이간 회사 동료만 1명 참석하였다. 초보자를 위한 Introductory Track과 고급 사용자를 위한 Advanced Track 두가지로 구성이 되며 개발 보드(Intel Minnowboard, Qualcomm Dragonboard 410c, BeagleBone Black 중 택 1)를 하나씩 준다. 필자는 다른 2개는 있어서 Poky의 레퍼런스 보드인 BeagleBone Black을 받았다. Advanced Track..

Development 2023.04.21
728x90
반응형