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カーネルソースツリーで実行

関連情報