한국어
Embedded
 

Yocto 프로젝트 Dunfell 에서 Kirkstone 로 마이그레이션 작업 중 다음과 같은 에러 메시지를 마주 했다.
Variable do_install_append contains an operation using the old override syntax. Please convert this layer/metadata before attempting to use with a newer bitbake.

connman-conf.bb 레시피에 재정의된 함수는 다음과 같았다.

# Kernel IP-Config is perfectly capable of setting up networking passed in via ip=
do_install_append() {
    ...
}

Yocto 프로젝트 3.4 릴리스(honister) 와 함께 중요한 변경 사항이 있다.

재정의(Override) 구문 변경

이 릴리스에서 : (콜론)은 가장 일반적으로 변수의 조건부 할당을 수행할 때 재정의를 참조하기 위해 _(언더스코어)의 사용을 대체한다.

따라서 다음과 같은 항목은

SRC_URI_qemux86 = "file://somefile"

이제 다음과 같아야 한다.

SRC_URI:qemux86 = "file://somefile"

다음과 같은 qemux86 재정의 구문 예는

SRC_URI_append = " file://somefile"
SRC_URI_append_qemux86 = " file://somefile2"
SRC_URI_remove_qemux86-64 = "file://somefile3"
SRC_URI_prepend_qemuarm = "file://somefile4 "
FILES_${PN}-ptest = "${bindir}/xyz"
IMAGE_CMD_tar = "tar"
BASE_LIB_tune-cortexa76 = "lib"
SRCREV_pn-bash = "abc"
BB_TASK_NICE_LEVEL_task-testimage = '0'

이제 다음과 같아야 한다.

SRC_URI:append = " file://somefile"
SRC_URI:append:qemux86 = " file://somefile2"
SRC_URI:remove:qemux86-64 = "file://somefile3"
SRC_URI:prepend:qemuarm = "file://somefile4 "
FILES:${PN}-ptest = "${bindir}/xyz"
IMAGE_CMD:tar = "tar"
BASE_LIB:tune-cortexa76 = "lib"
SRCREV:pn-bash = "abc"
BB_TASK_NICE_LEVEL:task-testimage = '0'

이는 데이터 저장소에 대한 변수 쿼리에도 적용된다. 예를 들어 getVar 등을 사용할 때 d.getVar("RDEPENDS_${PN}")는 d.getVar("RDEPENDS:${PN}")가 된다.

이들 중 일부는 MACHINE 및 DISTRO 재정의와 같이 상당히 명백하지만 일부는 덜 명확하다. 예를 들어 RDEPENDS, FILES 등과 같은 패키징 변수는 패키지 이름(예: ${PN}${PN}-ptest)을 재정의로 사용한다.
이러한 재정의는 항상 OVERRIDES에 있는 것은 아니지만 패키징과 같은 특정 컨텍스트에서 조건부로 적용된다. task-<taskname>은 또 다른 컨텍스트별 재정의이며, 이 경우 컨텍스트는 특정 작업이다.

레이어 마이그레이션을 돕기 위해 OE-Core에 변환 스크립트가 제공된다. 재정의로 구성된 후 레이어에서 사용된다면 다음과 같이 실행할 수 있다.

<oe-core>/scripts/contrib/convert-overrides.py <layerdir>

💡 단, 모든 경우를 100% 처리할 것으로 예상되지 않으므로 스크립트의 메모를 읽어보자. 특히 레이어가 사용하는 오버라이드(일반적으로 머신 및 배포판 이름)를 알려야 한다.

참고로 이 변환은 BitBake가 오버라이드가 무엇인지 아닌지를 보다 안정적으로 결정할 수 있게 해주기 때문에 중요하다. 언더스코어는 오버라이드하려는 의도 없이 변수 이름에도 사용되기 때문이다.

새로운 호스트 의존성

LZ4 및 Zstandard 압축 기능을 지원하려면 이제 lz4cpzstd 및 zstd 명령을 빌드 호스트에 설치해야 한다. 이들은 일반적으로 대부분의 Linux 배포판에서 lz4 및 zstd 패키지로 제공된다. 우분투 배포판의 경우 다음과 같이 설치 할 수 있다.

sudo apt-get install zstd liblz4-tool # for Ubuntu Bionic or older
sudo apt-get install zstd lz4 # for Ubuntu Focal or newer 

또는 배포판에서 제공하지 않는 경우 buildtools tarball의 일부로 사용할 수 있다. 자세한 내용은 빌드 호스트에 필요한 패키지를 참조한다.

더 많은 정보는 이곳에서 자세하게 안내하고 있다.

 

번호 제목 글쓴이 날짜 조회 수
51 윈도우10에서 Prolific USB to Serial 드라이버 인식문제 file makersweb 2016.01.24 22759
50 USB OTG 기술의 개념 file pjk 2014.11.03 15116
49 yocto project, 라즈베리파이를 위한 Qt + 임베디드리눅스 빌드 file makersweb 2019.02.01 10952
48 [Uboot 명령어 및 환경 변수 요약]U-Boot에 Command 및 Parameter에 대한 설명 pjk 2014.01.09 10235
47 ESP-IDF 의 A2DP리뷰 (ESP32) file makersweb 2019.10.28 9489
46 ST, STM32 MCU용 ‘통합 개발 환경(IDE)’ 무료 제공 makersweb 2015.03.04 8852
45 이클립스에서 IAR프로젝트 사용방법 file makersweb 2015.07.09 8769
44 USB 핀아웃 file pjk 2014.10.11 8423
43 AVRISP mkII 펌웨어 업그레이드 file makersweb 2015.07.22 6922
42 라즈베리파이3와 PC간 Serial 통신 테스트 [1] file makersweb 2019.05.20 6338
41 플랫폼 디바이스 및 드라이버에 대해서 makersweb 2020.02.01 6049
40 임베디드 리눅스 부팅 절차 file makersweb 2019.10.21 6027
39 폴링(Polling), 인터럽트(Interrupt), DMA(Direct Memory Access) file pjk 2014.10.24 5960
38 실시간 운영 체제 또는 RTOS(Real Time Operating System) pjk 2014.12.02 5832
37 HelloWorld 커널 모듈과 yocto 레시피 추가 방법 file makersweb 2019.12.09 5543
36 STM32와 CAN(Controller Area Network) Loop Back file makersweb 2017.01.23 5375
35 디바이스 트리(Device Tree, DT) makersweb 2020.01.12 5339
34 printk() makersweb 2014.02.27 5149
33 블루투스(Bluetooth) 기초 file makersweb 2019.08.02 4865
32 AVR(AT90USB162)을 USB to Serial 로 이용하기 file makersweb 2015.02.14 4818