본문 바로가기

SW/Yocto

yocto 사용자 레이어 생성과 레시피 커스터마이즈에 대해 알아볼까요? 새로운 레이어 추가새로운 레이어를 생성하기 전에 항상 오픈임베디드 메타데이터 인덱스에 이미 이용가능한 비슷한 레이어가 있는지 확인하는 것이 좋다. 필요한 레이어를 찾을 수없으면 다음 단계로 폴더를 생성한다. $: ./poky/scripts/yocto-layer create newlayer 기본값을 사용하거나 사용자가 지정한 값을 사용할 수도 있다. 생성된 레이어의 예는 다음 그림과 같다. 사용자 레이어를 작업하기 위해 다른 레이어를 추가해야 할 필요가 있을 때 사용하는 중요한 변수는 다음과 같다. layerversion, layerdepends 의존성이 만족되지 않거나, 버전 정보가 맞지 않으면 에러가 나타난다. 레이어에서 메타데이터 추가레이어를 사용하는 논리적인 이유는 비트베이크 데이터베이스에 메타데이..
yocto GPL 규정 준수와 커스텀 임베디드 리눅스 부팅에 대해 알아볼까요? 카피레프트카피레프트는 권리를 최대한 활용하고 자유롭게 표현하기 위해 저작권을 사용하는 합법적 방법이다. 오픈소스와 무료 소프트웨어 라이선스를 다루는 것은 기업에 큰 영향을 미치기 때문에 매우 중요하다. 리눅스 배포판을 빌드할 때, 최소한 두가지 프로젝트가 사용된다. 요즘 가장 흔히 사용되는 컴파일러는 gcc다. 리눅스 커널은 GPLv2 라이선스로 릴리스 되고, GCC는 프로젝트에 사용되는 것에 의존적이며 GPLv2, GPLv2.1, GPLv3 라이선스를 가지고 릴리스 되었다. 카피레프트 규약과 상용화 코드의 비교상용화 코드와 카피레프트 코드가 같은 프로젝트에 동시에 존재할 수 있다는 것을 아는 것이 중요하다. 일부가 라이선스 호환 문제를 가지고 있기 떄문에, 코드와 함께 링크하는 라이브러리들을 주의 깊게..
yocto 프로젝트 디버깅과 외부 레이어에 대해 알아볼까요? 메타데이터와 애플리케이션 디버깅메타데이터 디버깅은 비트베이크의 작업이 목표에 맞도록 보장을하고, 문제를 일으킨 부분에 대해 식별하기 위해 필요로 한다. 작업의 실행 경로를 추적하는 것에 대한 도움을 주기 위해 호스트에서 비트베이크에 의해 생성되는 여러 로그 파일을 사용한다. 반면 런타임 시 디버깅은 애플리케이션, 라이브러리 또는 커널의 정상적인 개발 주기 동안 디버깅을 하는 것과 같아 좀 더 익숙하다. 이미지, 패키지, SDK 콘텐츠 추적예상되는 콘텐츠와 이미지, 패키지, SDK를 제대로 가지고 있는지 확인하는 가장 쉬운 방법은 빌드 히스토리 메커니즘을 사용하는 것이다. 이 콘텐츠는 레시피가 변화될 때 예상되지 않은 방법들에 의해 변화가 된다. 모든 패키지, 이미지, SDK들의 빌드된 데이터는 이 데이터..
yocto 비트베이크 메타 데이터 나누기와 프로젝트를 이용한 개발에 대해 알아볼까요? 메타데이터 사용Configuration(.conf) : 환경설정 파일은 전역으로 영향을 미치는 파일로 classes와 레시피의 동작을 위한 정보를 제공한다.Classes(.bbclass ) : classes는 전체 시스템에서 이용할 수 있고 쉬운 유지보수와 코드 중복을 피하기 위해 레시피에 의해 상속될 수 있다.Recipes(.bb .bbappend) : 레시피와 클래스는 파이썬과 셸 스크립트 코드가 혼합되어 작성된다. 메타데이터 작업비트 베이크의 환경 변수 옵션을 사용하면 각 변수의 값을 확인할 수 있다. $: bitbake -e | grep 기본 변수 설정FOO = "bar"변수 FOO값은 bar이다. 변수 확장비트베이크는 변수참조를 지원한다. 문법은 거의 셸 스크립트와 같다.A = "aval"B =..
yocto의 임시 빌드 폴더와 패키지 지원 고찰에 대해 알아볼까요? 빌드 폴더빌드 폴더는 가장 주용한 정보이자 모든 욕토 프로젝트의 사용자들을 위한 결과물 저장 공간이다. 주요 폴더는 다음과 같다. Conf/ downloads/sstate-cache/tmp 빌드 폴더 구성다운로드 : 우선 비트베이크는 소스코드를 다운로드한다. 이단계에서 build/download 폴더 내에 새로운 압축파일을 생성하는 것이 포함된다.소스 준비 : 소스코드를 모두 다운로드하고 사용하기 위해 준비한다환경설정 및 빌드 : 소스코드사용 준비가 되면 빌드를 시작할 수 있다. 빌드 옵션을 성정하고 빌드를 한다.설치 : 빌드된 결과물은 적절한 폴더에 설치된다.Sysroot 복사 : 크로스 컴파일을 하기 위해 공유될 필요가 있는 라이브러리, 헤더, 그 이외의 파일들은 build/tmp/sysroot에 복..
yocto hob와 비트베이크 툴에 대해 알아볼까요? Hob은 비트베이크의 사용자 친화적인 인터페이스Hob은 이미지를 변경하고 사용자가 원하는 방법의 이미지를 이용할 수 있도록 도움을 준다.또한 hob은 이미지를 만든 후 qemu에서 이미지를 바로 실행시킬 수 있게 한다. Hob을 사용한 이미지 빌드yang@yang:~$ source poky/oe-init-build-env [build-directory] yang@yang:~$ hob Hob은 로컬 환경설정과 이용 가능한 메타데이터 레이어를 읽어 여러 파싱 작업들을 수행한다. 이 작없이 끝난 후, hob은 이용 가능한 머신의 목록을 보여준다. Hob을 사용한 이미지 편집 레세피를 선택하고 해제함으로써 추가 삭제할 수 있다. 비트베이크는 필요한 추가 패키지를 포함하여 선택된 패키지들의 모든 의존성을 분석한다..
yocto와 poky에 대해 알아볼까요? 욕토 프로젝트여러 세부 시장을 통틀어 모든 하드웨어와 아키텍처에 적합한 사용자 맞춤 리눅스 배포판을 개발할 수 있도록 오픈 소스, 고품질의 인프라, 툴을 제공한다. 아울러, 개발자들이 좀 더 손쉽게 출발할 수 있는 시작점을 제공하도록 만들어졌다. 포키욕토 프로젝트의 레퍼런스 시스템이며, 툴과 메타데이터의 집합으로 구성된다. 포키는 플랫폼에 독립적이고 비트베이크, 오픈 임베디드 코어와 메타데이터를 사용하여 크로스 컴파일을 수행한다. 완전히 사용자화되고 완벽하고 일관성 있는 리눅스 소프트웨어를 만들기 위해 수천 개의 오픈 소스 프로젝트를 빌드하고 조합하기 위한 메커니즘을 제공한다. 비트베이크파이썬과 셸 스크립트가 함께 섞여 있는 코드를 파싱하는 작업 스케줄러이다. 파싱된 코드는 기본적인 코드 의존성에 따라 ..