Yocto 및 Bitbake에서 "MACHINE=foo is invalid. Please set a valid MACHINE in your local.conf" 오류 해결 가이드

2024-07-27

Yocto 및 Bitbake에서 발생하는 "MACHINE=foo is invalid. Please set a valid MACHINE in your local.conf" 오류 해결 가이드

Yocto 또는 Bitbake를 사용하여 임베디드 Linux 이미지를 빌드할 때 다음과 같은 오류 메시지가 나타날 수 있습니다.

ERROR: OE-core's config sanity checker detected a potential misconfiguration.
Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
Following is the list of potential problems / advisories:
* MACHINE=foo is invalid. Please set a valid MACHINE in your local.conf, environment or other configuration file.

원인:

이 오류는 MACHINE 변수에 잘못된 값이 설정되어 있기 때문에 발생합니다. MACHINE 변수는 빌드하려는 타겟 하드웨어 플랫폼을 지정합니다.

해결 방법:

이 오류를 해결하려면 다음 단계를 따르세요.

유효한 MACHINE 값 확인:

Yocto 프로젝트에는 다양한 타겟 하드웨어 플랫폼을 지원하며 각 플랫폼마다 고유한 MACHINE 값이 있습니다. 사용하려는 플랫폼의 유효한 MACHINE 값을 확인하려면 다음 방법을 사용할 수 있습니다.

  • Yocto Project Documentation: Yocto Project Documentation: URL Yocto Project Documentation에서 "Machine 목록"을 참조하십시오.
  • bitbake-layers 명령어: bitbake-layers show-machines 명령어를 실행하여 사용 가능한 모든 MACHINE 값 목록을 출력합니다.
  • meta-layer 소스 코드: meta-layer/conf/machine 디렉토리를 살펴보면 각 플랫폼에 대한 MACHINE 설정 파일을 찾을 수 있습니다.

local.conf 파일 편집:

local.conf 파일을 열고 MACHINE 변수를 유효한 값으로 설정합니다. local.conf 파일은 일반적으로 다음 위치에 있습니다.

  • <build-directory>/conf/local.conf
  • <project-directory>/build/conf/local.conf

예시:

MACHINE = qemuarm64

빌드 다시 실행:

bitbake 명령어를 사용하여 빌드를 다시 실행합니다.

추가 정보:

  • MACHINE 변수에 대한 자세한 내용은 Yocto Project Reference Manual: URL Yocto Project Reference Manual의 "Machine Configuration" 항목을 참조하십시오.
  • bitbake 명령어에 대한 자세한 내용은 Bitbake User Manual: URL Bitbake User Manual을 참조하십시오.

도움이 되는 팁:

  • MACHINE 값을 설정할 때 대소문자를 구분해야 합니다.
  • local.conf 파일을 편집할 때 문법 오류가 없는지 주의해야 합니다.
  • 오류가 계속 발생하면 Yocto 또는 Bitbake 커뮤니티 포럼에서 도움을 요청할 수 있습니다.

참고 자료:

  • Yocto Project Documentation: URL Yocto Project Documentation
  • Bitbake User Manual: URL Bitbake User Manual
  • Yocto Project Community Forums: URL Yocto Project Community Forums



Yocto 및 Bitbake 예제 코드

프로젝트 설정:

mkdir my-project
cd my-project

Yocto Project sources 복제:

git clone https://git.yoctoproject.org/git/poky.git

build 환경 설정:

cd poky
source oe-init-build-env
vi conf/local.conf

MACHINE 변수 설정:

MACHINE = qemuarm64

빌드 실행:

bitbake core-image-minimal

이미지 실행:

qemu-system-arm -M versatilepb -kernel tmp/deploy/images/qemuarm64/core-image-minimal/u-boot.dtb -initrd tmp/deploy/images/qemuarm64/core-image-minimal/core-image-minimal.initramfs -append "root=/dev/mmcblk0p2 rw console=ttyAMA0"

참고:

  • 이 예제는 QEMU 에뮬레이터에서 실행하도록 설정되어 있습니다. 실제 하드웨어 플랫폼에서 빌드하려면 MACHINE 변수를 해당 플랫폼에 맞는 값으로 설정해야 합니다.
  • 빌드 과정은 사용하는 하드웨어 플랫폼과 Yocto Project 버전에 따라 다를 수 있습니다.



Yocto 및 Bitbake에서 MACHINE 변수 설정을 위한 대체 방법

환경 변수 설정:

MACHINE 변수를 환경 변수로 설정할 수 있습니다. 예를 들어, bash 쉘에서 다음 명령을 실행합니다.

export MACHINE=qemuarm64

bitbake 명령줄 옵션:

bitbake 명령줄에 -m 옵션을 사용하여 MACHINE 변수를 설정할 수 있습니다. 예를 들어, 다음 명령을 실행합니다.

bitbake -m qemuarm64 core-image-minimal

.conf 파일:

local.conf 파일 외에도 다른 .conf 파일에서 MACHINE 변수를 설정할 수 있습니다. 예를 들어, 프로젝트 디렉토리에 my-config.conf라는 파일을 만들고 다음 내용을 추가합니다.

MACHINE = qemuarm64

그런 다음 bitbake 명령줄에 -c 옵션을 사용하여 이 파일을 지정합니다. 예를 들어, 다음 명령을 실행합니다.

bitbake -c my-config.conf core-image-minimal

배포 설정:

Yocto Project에는 배포 설정이라는 기능이 있습니다. 배포 설정을 사용하여 특정 빌드에 대한 여러 변수를 설정할 수 있습니다. 배포 설정을 사용하여 MACHINE 변수를 설정하려면 다음 단계를 따르세요.

  1. <project-directory>/build/conf/ 디렉토리에 .conf 파일을 만듭니다.
  2. 파일 이름은 distribution.conf 형식이어야 합니다.
  3. 파일에 다음 내용을 추가합니다.
[distribution]
MACHINE = qemuarm64
bitbake -d my-distribution core-image-minimal

사용할 방법 선택:

위의 방법 중 어떤 방법을 사용할지는 프로젝트 요구 사항에 따라 다릅니다. local.conf 파일을 편집하는 방법은 가장 간단하지만 다른 방법은 더 많은 유연성을 제공합니다.

  • 환경 변수를 설정하면 다른 빌드에 영향을 미칠 수 있습니다.
  • bitbake 명령줄 옵션을 사용하는 방법은 특정 빌드에만 MACHINE 변수를 설정하는 가장 간단한 방법입니다.
  • .conf 파일을 사용하는 방법은 여러 빌드에 동일한 MACHINE 변수를 사용하려는 경우 유용합니다.
  • 배포 설정은 여러 변수를 설정해야 하는 경우 유용합니다.

yocto bitbake

yocto bitbake