Devkit8000용 LDD를 만들 수 없습니다

Devkit8000용 LDD를 만들 수 없습니다

Devkit 8000용 Linux 장치 드라이버를 빌드하려고 합니다. 다음과 같은 오류 메시지가 나타납니다.

에러 메시지

그 지침을 따르려고 했을 때, 저는 잘 이해하지 못하는 예/아니오 질문을 많이 받았습니다. 마지막으로 25개의 프로세서(?) 중에서 선택할 수 있습니다.

프로세서 선택

이것은 내 빌드 파일입니다.

ifeq ($(KERNELRELEASE),)

KERNELDIR = ~/sources/linux-3.2.6
PWD := $(shell pwd)
modules:
$(MAKE) ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- -C $(KERNELDIR) M=$(PWD) modules

.PHONY: modules clean

else
# called from kernel build system: just declare what our modules are
obj-m := LED_timer.o
endif

내 코드 자체는 아직 관련성이 없다고 생각합니다.알다내 소스 코드는 오류로 가득 차 있으니 보고 싶지 않으실 겁니다. 하하.

답변1

사용 중인 소스 코드를 어디서 구했는지는 밝히지 않았지만 분명히 .config유효하지 않습니다. 프로세서 종류 등 다양한 옵션을 설정하는데 사용됩니다. 이러한 옵션은 문자 그대로 수백 가지가 있으며 서로 복잡한 종속성을 갖고 있습니다(예를 들어 선택한 프로세서는 다른 선택 사항에 영향을 미칩니다).

바닐라 소스 에는 .config제공하거나 생성해야 하는 항목이 없습니다. 이전 버전에서 나올 때 make oldconfig사용되며 업데이트해야 합니다. .config때때로 이 프로세스는 완전히 자동화될 수 없으며 기본적으로 CLI 인터페이스를 사용하여 실행하게 됩니다 . 구성하지 않고 make config시도하는 경우 make oldconfig에도 발생할 수 있습니다 .

make menuconfig모든 것을 더 잘 이해하려면 좀 더 그래픽적인 내용을 확인해야 합니다 .

그러나 처음부터 시작하여 자신에게 적합한 구성을 얻으려고 노력하는 것은 자신이 무엇을 하고 있는지 알지 못하면 불가능합니다. 이상적으로는 실행 중인 커널을 만드는 데 사용한 커널로 시작하는 것이 좋습니다. 이는 단지 모듈을 빌드하는 경우 특히 그렇습니다. 실제 커널을 빌드할 필요는 없지만 모듈을 컴파일하려면 사용하려는 커널이 어떻게 컴파일되었는지 알아야 합니다.

/proc/config.gz대상 시스템에서 찾을 수 있기를 바랍니다 . 이는 디스크 파일이 아니며 이를 검색하려면 시스템이 실행 중이어야 합니다. gzip으로 압축되어 있습니다

gunzip config.gz
mv config .config

해야 할 것. 이를 소스 트리에 복사하고 make menuconfig지침을 실행하여 빌드할 모듈을 추가합니다.

그렇지 않은 경우 사용된 구성을 추적해야 합니다. 또한 모듈을 빌드하는 경우 정확히 동일한 커널 버전을 사용해야 한다는 점에 유의하세요.

이것은일반 개요(도움이 될 수 있는) 컴파일 프로세스에 대한 정보를 보려면 먼저 2번과 3번을 읽어보세요.

답변2

먼저 이전 구성(예: )을 지워야 합니다 make mrproper.

그런 다음 다시 실행하십시오 make menuconfig. 원하지 않는 항목을 명시적으로 선택하면 .config 해당 항목이 생성되지 않습니다.

관련 정보