728x90

openembedded 31

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

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

Yocto 2024.01.07

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

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

Yocto 2023.12.11

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

Yocto Project vs Buildroot

Yocto Project와 Buildroot 모두 Embedded Linux를 쉽게 만들기 위한 빌드 프레임워크이고, 많은 프로젝트에서 사용중에 있다. 필자는 Yocto Project 경험이 있지만 Buildroot 경헙은 거의 없고 단지 문서만 읽고 둘간의 차이를 간단히 비교해 보고자 한다. Yocto Project/OpenEmbedded는 Python 기반의 Task scheduler인 bitbake와 metadata로 이루어져 있고, Buildroot는 make 문법 기반이고 대부분 shell script로 이루어져 있다. 빌드 및 환경 설정은 kernel 과 유사하다. 가볍고 확장성이 적은 프로젝트를 한다면 Buildroot를, 대규모 프로젝트이며 다양한 SoC, 확장성을 고려하면 Yocto Pr..

Yocto 2023.04.21

Automotive Linux Summit (ALS) 2017 참석 후기

요즘 Automotive 에 대한 IT 바람이 거세게 불고 있다. 차량용 오픈 소스 OS는 크게 유럽을 중심인 GENIVI와 일본 중심인 AGL (Automotive Grade Linux)이 있다. AGL은 Linux Foundation 산하의 프로젝트이고 이번에 일본 도쿄에서 5월 31일에서 6월 2일까지 Summit, http://events.linuxfoundation.org/events/automotive-linux-summit?utm_source=press-release&utm_campaign=als17&utm_medium=press을 해서 분위기를 파악하고자 다녀왔다. 전체적인 느낌은 Toyota를 중심으로한 일본 완성차 업체가 주도하는 오픈소스 단체였다. Community Manager (W..

Development 2023.04.20
728x90
반응형