Yocto 및 Bitbake에서 "MACHINE=foo is invalid. Please set a valid MACHINE in your local.conf" 오류 해결 가이드
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
변수를 설정하려면 다음 단계를 따르세요.
<project-directory>/build/conf/
디렉토리에.conf
파일을 만듭니다.- 파일 이름은
distribution.conf
형식이어야 합니다. - 파일에 다음 내용을 추가합니다.
[distribution]
MACHINE = qemuarm64
bitbake -d my-distribution core-image-minimal
사용할 방법 선택:
위의 방법 중 어떤 방법을 사용할지는 프로젝트 요구 사항에 따라 다릅니다. local.conf
파일을 편집하는 방법은 가장 간단하지만 다른 방법은 더 많은 유연성을 제공합니다.
- 환경 변수를 설정하면 다른 빌드에 영향을 미칠 수 있습니다.
bitbake
명령줄 옵션을 사용하는 방법은 특정 빌드에만MACHINE
변수를 설정하는 가장 간단한 방법입니다..conf
파일을 사용하는 방법은 여러 빌드에 동일한MACHINE
변수를 사용하려는 경우 유용합니다.- 배포 설정은 여러 변수를 설정해야 하는 경우 유용합니다.
yocto bitbake