Yocto 30

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.05.24

M1 Macbook에서 Yocto 빌드 환경 설정 2부 (네트워킹)

Macbook에서 Docker를 이용한 Yocto 빌드 환경 설정을 하는 것에 대해서는 https://yocto.tistory.com/158 에서 소개하였다. 이 글에서는 Yocto 빌드 후 생성된 qemu 이미지를 docker 환경 내에서 실행하여 docker host 환경과 실행된 qemu 내부의 shell 간의 네트워킹을 하는 방법에 대해서 설명하고자 한다. TUN/TAP (https://en.wikipedia.org/wiki/TUN/TAP) 환경을 root유저로 만들어서 실행을 하여 네트워크를 구성하는 것을 권장하지만 docker 환경 내이고 쉽게 테스트를 하기 위해 여기에서는 qemu를 실행할 때 user networking 환경인 slirp를 이용하여 구성한다. 이전 글에서도 설명했지만 실행은..

Yocto 2023.05.23

Yocto Package Feed (패키지 피드)

Yocto에서 패키지 피드라고 해서 패키지 저장소를 놓고 바이너리 패키지 (rpm, ipk, deb)를 다운로드할 수 있도록 제공한다. 쉽게 말하면 우분투의 apt-get과 같은 명령어로 패키지를 쉽게 설치할 수 있도록 서버단에서 빌드된 패키지들을 저장소에 올려놓고 클라이언트 (타깃)에서 dnf, opkg 등과 같은 명령어로 패키지를 설치를 의존성 있는 패키지와 함께 설치하도록 도와준다. 위의 강좌에서 Package Feed를 어디서 어떻게 사용하는지에 대해서 간단히 설명했고, 최종 제품을 만들 때 사용하는 것보다는 개발 단계에서만 사용하도록 권장한다. 물론 설정을 잘해서 양산 이미지에도 사용할 수 있겠으나 의존성 관리, 재빌드 등 다양한 문제가 나올 때 대처해야한다. PR 서비스 깨지지 않는 빌드를 만..

Yocto 2023.05.20

[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

udemy에 있는 yocto 강의 후기

udemy business, coursera, linked learning 를 모두 들을 수 있게 회사에서 제공을 해준다. 요즘 yocto e-learning 자료를 만들고 있어서 다양한 yocto 강의, 자료들을 수집하면서 들어보고 있다. 최근에 udemy에 있는 yocto 강의 4파트로 되어 있는 것을 모두 듣고 간단한 후기를 남겨보고자 한다. 위에 필자가 들었던 강의들인데 대부분 아는 내용이고 어떻게 구성되어 있는 지 보려고 한 것이라서 100% 끝내지는 않았다. 전반적으로 많은 내용을 포함하려고 노력했고 이 강의를 들으면 기본적으로 Yocto에 대한 이해를 할 수 있다고 본다. yocto 버전은 zues 3.0 2019년 말에 릴리스 된 것을 기준으로 진행이 됬고 인도친구가 인도 악센트가 살짝 실..

Yocto 2023.05.07

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.05.05

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

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

Yocto 2023.05.03

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 (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 소개 자료

회사에서 개발자 대상으로 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.04.23
반응형