Buildroot: 트리 외부 defconfig 사용

Buildroot: 트리 외부 defconfig 사용

tar 이미지를 사용하고 있습니다"buildroot-2018.02.tar.gz"내 임베디드 시스템용 Linux 이미지(커널 및 파일 시스템)를 생성합니다. 프로젝트의 최소 구성을 다시 만들어야 하는지 확인하기 위해(나중에 다른 컴퓨터에서...) 작업합니다.BR 트리에서다음과 같이 정의브럼 §8.5.

BR 및 Linux 커널을 올바르게 구성하고 두 개의 구성 파일을 만들었습니다. - myProc_defconfig - myProc_linux_defconfig

동료들이 프로젝트를 쉽게 재현할 수 있도록 이미지를 만들어보려고 합니다. 현재 다음과 같은 트리가 있습니다.

/                                   :   Git root
/README                             :   This very file
/make_buildroot_env.sh              :   Script to set up the development environment  
/myProc_kernel/                     :   Development environment prerequisite    
/myProc_kernel/configs/             :   Contains both BR & Linux configuration files
/myProc_kernel/fs_overlay/          :   Filesystem overlay, contains all applicative files
/myProc_kernel/tools/               :   Scripts and data used by BR
/myProc_kernel/tools/data           :   All data files used by scripts

아이디어는 다른 폴더에 빌드 루트(시스템은 정의된 트리에서 구축됨)의 압축을 풀고 defconfig 파일을 사용하여 구성하는 스크립트를 생성하는 것입니다.

스크립트는 위에 정의된 "Git root/"에서 시작되어 다음과 같이 시작됩니다.

make_buildroot_env.sh

tar -xaf ./MyProc_kernel/tools/data/buildroot-2018.02.tar.gz
cd buildroot-2018.02
make defconfig BR2_DEFCONFIG=../myProc_kernel/configs/myProc_defconfig
make O=../MyProc_kernel

여기에 두 가지 질문이 있습니다.

  1. 마지막 호출에서 오류가 발생했습니다.

Makefile:862: *** 먼저 Buildroot를 구성하십시오(예: "make menuconfig"). 멈추다.

  1. BR 폴더에 생성된 파일을 보면 .config매개변수가 거의 없는 것 같습니다.MyProc_defconfig

내 질문은 다음과 같습니다

  • BR은 왜 항상 오류 1에 대해 불평합니까? defconfig 파일을 가리키는 라인을 사용하여 구성을 수행해야 합니까?

  • 개발 환경을 다시 만들 때 무엇이 ​​빠졌나요?

답변1

이미 발견했듯이 이 두 줄을 병합해야 합니다.

make defconfig BR2_DEFCONFIG=../myProc_kernel/configs/myProc_defconfig
make O=../MyProc_kernel

입력하다

make defconfig BR2_DEFCONFIG=../myProc_kernel/configs/myProc_defconfig O=../MyProc_kernel 

추가 "이유" 질문에 대답하기 위해 "O="는 make 명령에 대한 래퍼를 생성하여 빌드 루트 설치의 홈 디렉터리를 사용하여 패키지를 저장하고 새로 생성된 디렉터리를 구성 파일, 빌드 및 출력을 저장하는 데 사용합니다.

defconfig를 생성하는 데 사용할 수 있도록 래퍼가 제 위치에 있어야 합니다. 또는 이 두 줄을 바꿔 먼저 래퍼를 만든 다음 이를 사용하여 구성을 만들 수 있습니다.

8.5를 확인하세요.루트 매뉴얼 빌드

사용 편의성을 위해 Buildroot는 출력 디렉터리에 Makefile 래퍼를 생성합니다. 따라서 첫 번째 실행 후 더 이상 O=<...> 및 -C <...>를 전달할 필요가 없습니다.

답변2

글쎄, 나는 그것이 원하는 것을 수행하는 방법을 알아 냈습니다. 다음 두 줄을 병합해야 합니다.

make defconfig BR2_DEFCONFIG=../myProc_kernel/configs/myProc_defconfig
make O=../MyProc_kernel

한 줄로 나누기:

make defconfig BR2_DEFCONFIG=../myProc_kernel/configs/myProc_defconfig O=../MyProc_kernel

/MyProc/그런 다음 모든 것이 폴더에 컴파일되고 해당 폴더에서는 아무 작업도 수행되지 않습니다 buildroot-2018.02.

관련 정보