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
여기에 두 가지 질문이 있습니다.
- 마지막 호출에서 오류가 발생했습니다.
Makefile:862: *** 먼저 Buildroot를 구성하십시오(예: "make menuconfig"). 멈추다.
- 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
.