Yocto 45

AWS에서 Yocto Shared State Cache 설정 (CI 환경)

빌드 속도 최적화 및 AWS 비용 최적화 작업을 진행중에 있다. MR (Merge Request) / PR (Pull Request) 하나에 10개 이상의 빌드가 동시에 돌아가고 이에 따라 AWS 비용이 엄청나게 증가하고 있다. 또한 경우에 따라 빌드가 안정적이지 않아 다양한 이슈가 생기고 있다. Yocto Shared State CacheYocto 프로젝트의 sstate cache(Shared State Cache)는 빌드 속도를 크게 향상시키기 위해 사용되는 기능이다. 이를 통해 Yocto는 재빌드 시 동일한 작업을 반복하지 않고 이미 완료된 작업을 재사용할 수 있다. 이전 글 (https://www.yocto.co.kr/291) 에서 Shared State Cache에 대해서 조금 더 이야기 했으니..

Yocto 2024.06.25

Yocto의 PREMIRROR와 Shared State Cache (빌드 속도 향상)

Yocto 빌드 속도를 향상시키는 방법 여러가지가 있다. 대표적으로 소스코드의 파일을 다운로드해서 미리 저장해 놓는 PREMIRROR, 그리고 Yocto에서 지원하는 Shared State Cache이다.PREMIRRORYocto 프로젝트에서 premirror는 빌드 속도를 향상시키기 위한 중요한 기능 중 하나다. premirror는 빌드 중 다운로드되는 소스 코드, 패치 파일, 그리고 기타 필요한 파일들을 저장하는 미러 서버를 설정하는 기능을 말한다. 이를 통해 네트워크 다운로드 시간을 줄이고, 빌드 환경에 필요한 파일들을 신속하게 접근할 수 있다. premirror를 설정하면 Yocto 빌드 시스템이 소스 파일을 다운로드할 때 먼저 지정된 미러 서버를 확인한다. 만약 미러 서버에서 파일을 찾지 못하면..

Yocto 2024.06.13

Yocto 병렬 빌드 옵션 최적화

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

Yocto 2024.06.10

git send-email 에서 gmail 사용시 비밀번호는?

오랜만에 Yocto 커뮤니티에서 iptables 버그 리포트가 날라왔다. 이유인 즉슨 이전 iptables 1.8.10 업그레이드 할 때 특정 패치도 함께 뺐기 때문이다. 다시 살리려고 빌드 환경을 셋업해서 테스트를 하고 아래 명령어를 통해 yocto에 올렸다. OE에 기여하는 방법과 gmail 환경 설정하는 방법은 https://www.yocto.co.kr/26 글을 참고하기 바란다. git send-email --to=openembedded-core@lists.openembedded.org --confirm=always -M -1 --subject-prefix="OE-core][PATCH" git send-email 명령어로 메일 주소와 함께 날리려고 하니 비밀 번호를 묻는다. 아주 오래전에 보안 문..

Yocto 2024.05.28

Yocto 프로젝트 Release

2024년 5월 16일 기준 Yocto 최신 릴리스는 5.0 Scarthgap 이다. 2024년 4월에 릴리스 되었고 4년동안 유지되는 LTS (Long Term Support) 버전이다. 기본적으로 Yocto 프로젝트는 6개월 단위로 릴리스를 하고 그 다음 릴리스가 나오면 유지보수를 종료시킨다 2020년에 Dunfell 3.1 버전부터 커뮤니티의 요구에 따라 2년 단위의 LTS 버전과 2년 유지보수를 결정했었다. 하지만 최근에 LTS 유지보수 기간을 2년에서 4년으로 연장하는 결정을 하였다. 위는 최근 릴리스 버전을 https://wiki.yoctoproject.org/wiki/Releases 에서 캡쳐해서 올려놓았다. https://docs.yoctoproject.org/next/migration-g..

Yocto 2024.05.16

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

GPT3.5를 이용하여 cjson hello world 코드와 yocto recipe 생성

GPT3.5를 사용하여 yocto 레시피 및 cjson 코드를 얼마나 잘 생성하는지 알아보려고 간단히 테스트해 보았다. 결과적으로 완벽하진 않지만 잘 이용하면 정말 유용할 것 같다. 단, 현재까지는 단순히 도와주는 용도이지 완벽히 100% 신뢰하면 안된다. 그렇게 되면 코드 퀄리티가 안좋아질 것은 자명하다. 이 말은 GPT를 사용하기 전에 기반 지식은 개발자가 다 알아야 한다는 이야기이다. 어떤 것이 옳고 그른지에 대한 판단, 코드를 정리하고 잘 짤 수 있는 능력이 사전에 있어야 한다. 요청 1: cjson hello world 코드를 cmake 빌드 파일과 함께 만들어달라고 요청하면서 시작한다. 소스코드와 CMakeLists.txt 파일은 생략하고 Yocto recipe만 붙여 넣었다.  요청 2: 결..

Yocto 2024.04.28

처음 시작하는 Yocto 프로젝트 강좌 소개

드디어 첫 이러닝 강의를 오픈했다. 앞 글에서 이야기한 것처럼 5개월정도의 작업 끝에 B2C로 오픈을 해서 누구나 들을 수 있게 되었다. 제목은 "처음 시작하는 Yocto 프로젝트"이고 임베디드를 개발하는 개발자라면 누구나 들을 수 있도록 최대한 기초를 담으려고 노력했다. https://www.codepresso.kr/course/307 에서 들을 수 있다. 최대한 쉽게 구성하려고 했지만 임베디드 지식이 있으면 더 좋다. 앞뒤 소개하는 장을 건너뛰고 실제로는 다음과 같이 구성되어 있다. 총 3시간 51분의 영상 강의로 진행이 되고 2시간 30분정도가 이론 강의 그리고 나머지 1시간 20분정도가 필자의 MACBOOK에서 실제로 실행하면서 설명하는 실습 강의로 구성된다. 4장. Yocto 프로젝트 소개 - ..

Yocto 2023.10.14

Yocto e-learning 제작 후기

지난주 말에 드디어 Yocto 기초 과정 e-learning 을 마치고 공급업체(코드프레소)에 전달했다. 5월초부터 시작해서 10월초까지 계약부터 제작까지 총 5개월정도의 시간이 걸렸다. 시작은 코드프레소에서 지인에게 의뢰가 먼저 들어왔는데, 지인이 소개시켜줘서 진행하게 되었다. e-learning 제작은 처음이라서 코드프레소에서 준 가이드대로 열심히 만들어서 주고 피드백을 받아 수정을 했다. 기본 템플릿을 받았고 거기에 강의 자료를 100장 이상 만들어서 전달했고 이후 2-3주간 코드프레소에서 발표자료에 리터칭을 해서 훨씬 보기 좋게 되었다. 역시 전문가의 손길을 타니 다르긴 달랐다. 진행 일정 5월 초 ~ 6월 중순: 발표자료 완성 6월 중순 ~ 6월 말: 리터칭 (코드프레소) 7월 초 ~ 9월: 녹..

Yocto 2023.10.10
728x90