728x90

yocto 66

Yocto 버전 Upgrade 과정

Yocto dunfell (3.1)이 릴리스되기 전까지 Yocto는 기본적으로 6개월 주기의 릴리스 과정을 거치고 새로운 버전이 릴리스되면 이전버전의 유지보수를 멈추었다. 하지만 많은 요구사항 중에 하나는 Kernel과 같이 LTS (Long Term Support)를 해달라는 것이였고 Board 미팅에서 지원하기로 결정했다. 그 시작은 Yocto dunfell (3.1)부터였고 2년간 유지보수를 하기로 결정하였다. 하지만 2년이 지나서도 커뮤니티 및 보드 멤버 회사에서 추가적인 유지보수를 요구하였고 dunfell은 4년 동안 유지보수를 하기로 결정하였다. 그리고 그 다음 LTS 버전은 kirkstone (4.0)이고 이미 릴리스가 되어 있다. 현재 프로젝트는 dunfell을 사용하고 있고 필자의 동료가..

Yocto 2023.07.31

QNX를 Yocto를 이용하여 빌드하는 것에 대한 생각

QNX를 SafeOS로 사용하고 있는데 빌드 시스템이 엉망이다. QNX에서는 기본적으로 제공하는 것은 단순 Makefile + 약간 QNX 수정사항이 들어가 있는 qconfig.mk 파일을 사용한다. 작은 프로젝트는 괜찮지만 의존성과 형상관리를 잘 하면서 빌드를 잘 할 수 있는 도구들이 어떤 것이 있을까 생각해보았다. 회사에서는 CMake를 기반으로 한번 더 감싼 빌드 시스템을 사용하였고 Docker 환경에서 돌아간다. 코드는 모두 소스가 아니고 일부는 바이너리로 제공되고 뭔가 CMake로 커버하기에는 불안정하고 workaround가 많다. QNX는 SDP (Software Development Platform) 에서 toolchain, 기본 바이너리 등을 제공한다. SDP를 받을 때 SoC 벤더의 So..

Yocto 2023.06.05

[yocto] ld: cannot find /lib/libc.so.6: No such file or directory

Yocto 빌드는 원칙적으로 툴체인을 포함한 모든 컴포넌트를 직접 빌드해서 사용한다. 컴포넌트를 빌드할 때 host 빌드 서버의 라이브러리들을 참고해서는 안된다. 이번에는 dunfell에서 잘 빌드되던 컴포넌트가 kirkstone으로 오면서 아래와 같은 에러가 발생했다. aarch64-poky-linux/11.3.0/ld: cannot find /lib/libc.so.6: No such file or directory /lib/libc.so.6 이 경로를 참조하면 안된다. sysroot의 경로를 제대로 참고해야하기 때문에 LDFLAGS += "-L${STAGING_LIBDIR}" 한줄을 yocto recipe에 라이브러리 PATH를 staging 에 명시적으로 넣어주면 된다.

Yocto 2023.05.19

[도서 리뷰] Embedded Linux Development using Yocto Project 3판

2023년 4월에 필자가 첫번째로 번역한 Embedded Linux Development using Yocto 프로젝트 3판이 나왔다. 번역본 1판이 다 팔려서 서 2판을 번역했고, 최근에 3판이 나와서 출판사에서 번역 검토요청이 왔다. 출판사에서 검토요청이 오면 책 원본은 PDF파일로 보내주고 그것을 보고 리뷰한 후 의견을 회신하면 된다. 일단 아래와 같은 내용들이 2판에 비해서 변경이 되었다. rocko 2.4 (2017년 10월 릴리스)버전에서 kirkston 4.0 (2022년 4월 릴리스) 기반으로 코드와 설명이 변경 기존에 있던 장의 내용이 일부 보강 QEMU 장과 Best Practice 장이 추가 이 책은 Yocto 프로젝트에 대한 첫번째 나온 책이고 2판, 3판이 계속 증쇄/변경되어 나오..

Book 2023.05.09

M1 Macbook에서 Yocto 빌드 환경 설정

M1 Macbook Pro를 필자는 사용하고 있고 여기서 Yocto (OpenEmbedded) 오픈소스 기여를 하기 위해 Poky master 를 Docker (Apple Silicon 버전)를 활용하여 빌드하고 있다. 이 글에서는 M1 Macbook에서 Yocto 빌드 환경을 설정하기 위한 방법을 간략히 소개하고자 한다. Intel (linux/amd64) 버전의 docker image는 https://hub.docker.com/r/crops/poky 에서 docker pull crops/poky 명령을 통해 받을 수 있지만 arm64 버전은 받을 수 없어서 https://github.com/crops/yocto-dockerfiles 에서 제공하는 dockerfile를 이용하여 docker image를..

Yocto 2023.04.23

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

Yocto (kirkstone) build for raspberrypi4 64 on M1 pro macbook

M1 Macbook Pro에서 Docker를 설치하고 그 안에서 Yocto 빌드한 결과를 간단히 공유하고자 한다. 빌드하는 동안 약간의 발열 있었지만 팬이 돌아갈 정도는 아니였고 Intel (Core i9) Mackbook 처럼 엄청 뜨거워지지 않았고, 소음도 거의 없었다. 이부분에서 특히 Apple Silicon 에 감탄하였다. Docker 이미지는 간단하게 docker pull ubuntu 명령어로 통해 설치하였고 그 내부에서 apt로 빌드에 필요한 라이브러리와 도구를 설치하였다. M1 Mackbook Pro 16 inch Spec OS: macOS Monterey (12.6) Chip: Apple M1 Pro (10 Cores - 8 performance and 2 efficiency) Memory..

Yocto 2023.04.23

Yocto vs Debian (package-based) build system

Yocto 프로젝트와 Package-based 기반의 Debian 빌드 시스템을 비교한 자료이다. 요약하자면 Debian 빌드 시스템은 잘 갖추어진 환경에서 빠른 PoC 를 진행하기에 좋고, 오랫동안 유지하면서 플랫폼을 개발하려면 Yocto 가 좋은 것 같다. 물론 둘다 장단점이 있다. 좀 더 두 다른 시스템을 공부해서 비교해보면 좋을 것 같긴하다. Package-based 기반이 Suse에서 제공하고 삼성 Tizen에서 사용하고 있는 OBS도 있고 레드햇의 RPM 기반도 있다. Reference https://www.bytesnap.com/debian-vs-yocto-for-embedded-systems/ https://www.prevas.dk/download/18.58aaa49815ce6321a327..

Yocto 2023.04.23

Consolidation in In-vehicle Infotainment Software Architecture

이 글에서는 IVI (In-Vehicle Infotainment) 아키텍처의 통합에 대해 간단히 설명하고자 한다. 현대 고급차에서는 수백개의 ECU가 사용되고 있고, 이는 비용적, 소프트웨어 아키텍처 측면에서 상당히 부담으로 작용하고 있고, 이를 점차 통합하여 적게 가는 방향으로 가고 있다. 그 예로 기존에 각각 다른 SoC를 사용하던 Cluster와 IVI가 통합되어 Hypervisor를 사용하여 하나로 가려고 하고 있다. 간단히 설명하면 Cluster는 Safety Critical하기 때문에 ASIL 등급을 만족하여야 하고 현재 Linux가 아직까지는 사용되기 어려워 RTOS를 위에 Cluster Application을 개발하고 있다. 물론 Linux Foundation의 ELISA 프로젝트에서 Li..

Automotive 2023.04.23

면접관으로 Job Interview 후기 - 2021

팀에서 Yocto Expert 2 명을 채용하고 PO 1명을 채용하는데 서류부터 기술 인터뷰까지 관여를 하면서 느낀점을 간단히 적어보고자 한다. 채용 Position은 "Embedded Linux Engineer with Yocto expertise (all genders) - in Berlin" 이고 Job Description은 아래와 같다. 채용시까지 Position이 오픈되고 있고 현재도 최종 확정이 안되어 진행중에 있다. 필자 회사의 기본 채용 과정은 서류-HR 인터뷰-Hackrank-기술 인터뷰(Hiring Manager, 팀원)-Head 인터뷰-HR Head/CEO 인터뷰-Offer 순서로 진행된다. 약 1달동안 100여명의 지원자가 세계 각지에서 지원을 했다. 서류에서는 10명정도가 통과되..

Etc 2023.04.23
728x90
반응형