728x90

yocto 63

2024 Open UP 오픈 프런티어(기여형)

Open UP 오픈 프론티어는 다양한 분야의 오픈소스 프로젝트의 리더급 개발자를 양성 및 지원하기 위한 과학기술정통부 산하 프로그램이다. 2023년에 이어 2024년도에도 여전히 프로그램이 이어지고 올해도 3월 24일까지 모집하였고, 서류심사에 이어 지난주 금요일에 최종 발표심사를 마쳤다. 필자도 2024년도에도 서류에 통과하여 발표를 했고 이번주에 그 결과가 나오지 않을까 싶다. 2017년, 2018년도에 최종 선발되어 2년동안 이 프로그램에 참여하였고 2019년도에도 선발되었지만 해외에 있다는 이유로 2020년까지 지원을 못했다가 2021년부터 해외에 있는 개발자들도 지원대상이 되어 계속 선발되어 참여하고 있고 올해도 최종 결과를 기다리고 있다. 지원내역 지원사항은 연도마다 조금씩 변경되고 있고 초반..

Development 2024.04.08

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

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

기술 부채 (Technical Debt) - Yocto Upgrade 사례

위키피디아의 정의에 따르면 기술 부채(technical debt, design debt, code debt)는 현 시점에서 더 오래 소요될 수 있는 더 나은 접근방식을 사용하는 대신 쉬운(제한된) 솔루션을 채택함으로써 발생되는 추가적인 재작업의 비용을 반영하는 소프트웨어 개발의 한 관점이다. 기술 부채를 완전히 없이 가면 좋겠지만 현실적으로 약간의 타협을 하면서 갈 수 밖에 없다. 최악의 경우에는 계속 기술 부채를 안고 가다가 어느 순간 안고치면 더이상 나아갈 수 없는 상황이 생기기도 한다. 이번에 Yocto 업그레이드를 하다가 이 경우를 만났고 덕분에 엄청나게 일정이 지연되었다. 프로젝트 일정상 어쩔 수 없이 기술 부채를 안고 가는 경우에는 잘 기록해 놓았다가 최대한 빨리 그것을 해결해야 한다. 프로젝..

Development 2023.11.21

처음 시작하는 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

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

udemy에 있는 yocto 강의 후기

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

Yocto 2023.09.29

Yocto Package Feed (패키지 피드)

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

Yocto 2023.09.27
728x90
반응형