Makefile의 와일드카드는 효과가 없습니다.

Makefile의 와일드카드는 효과가 없습니다.

FreePBX(RHEL)에서 DAHDI라는 커널 모듈을 컴파일하려고 합니다. 다음과 같은 make 출력 오류가 발생합니다.

You do not appear to have the sources for the 3.10.0-957.21.3.el7.x86_64 kernel installed.

하지만 커널 버전, 헤더, 구성 파일을 확인했고 모두 일치하기 때문에 그것이 문제라고 생각하지 않습니다. Makefile에는 다음 블록이 있습니다.

KCONFIG:=$(KSRC)/.config
ifneq (,$(wildcard $(KCONFIG)))
  HAS_KSRC:=yes
  include $(KCONFIG)
else
  HAS_KSRC:=no
endif

$(KCONFIG)"/.config"를 반환합니다. $(HAS_KSRC)"아니요"를 반환합니다. $(wildcard $(KCONFIG))아무것도 반환하지 않습니다. 이 오류는 에서 발생합니다 ifeq (no,$(HAS_KSRC)). 즉, "와일드카드"가 적용될 때까지 커널 구성 파일을 살펴봅니다.

이 와일드카드(명령??)의 기능은 무엇인가요?

# cat /proc/version
Linux version 3.10.0-957.21.3.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Tue Jun 18 16:35:19 UTC 2019

답변1

소스 트리가 있는 것처럼 보이지만 현재 구성되어 있지 않습니다(그래서 .config누락된 것입니다).

노력하다:

  1. /boot/config-를 ${KSRC}/.config에 복사합니다.

또는

  1. make oldconfig커널 소스 트리에서 실행

관련 정보