运行make install时出错-缺少include / generated / autoconf.h或include / config / auto.conf

ave*_*137 6 c linux makefile linux-kernel

当我尝试在自定义构建的内核上运行make install时,出现以下错误-

root@localhost [ /home/avi/dd/labs/lab1_compile_and_load ]$ make install V=1
Run Code Online (Sandbox Code Playgroud)

制作-C /lib/modules/3.12.17/build SUBDIRS = / home / avi / dd / labs / lab1_compile_and_load modules_install

make[1]: Entering directory `/home/avi/kernel/linux-3.12.17'
test -e include/generated/autoconf.h -a -e include/config/auto.conf || (        \
echo >&2;                           \
echo >&2 "  ERROR: Kernel configuration is invalid.";       \
echo >&2 "         include/generated/autoconf.h or include/config/auto.conf are missing.";\
echo >&2 "         Run 'make oldconfig && make prepare' on kernel src to fix it.";  \
echo >&2 ;                          \
/bin/false)
mkdir -p /lib/modules/3.12.17/extra
make -f /home/avi/kernel/linux-3.12.17/scripts/Makefile.modinst
  /bin/sh /home/avi/kernel/linux-3.12.17/scripts/depmod.sh /sbin/depmod 3.12.17 ""
make[1]: Leaving directory `/home/avi/kernel/linux-3.12.17'
Run Code Online (Sandbox Code Playgroud)

我的Makefile的内容如下:

obj-m := lab1_char_driver.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)

all:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD)  modules
install:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD)  modules_install

clean:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD)  clean
Run Code Online (Sandbox Code Playgroud)

我按照错误消息中的建议尝试了“ make oldconfig && make preapare”,但无济于事。我已经在fedora20和ubuntu12.04上都尝试过这个。如果执行do Make则工作正常,但make安装失败。请帮忙。任何相关的答案将不胜感激。

小智 5

您正在包括V=1导致 Make 在运行时显示命令的原因(请参阅此问题)。从它的外观来看,您实际上并没有看到错误本身,但是您看到的是它正在运行以检查这些文件是否存在的测试:

test -e include/generated/autoconf.h -a -e include/config/auto.conf || ( \ ... echo error messages here ... \ )

该测试正在运行,如果失败,它会将这些消息回显到标准错误,但事实并非如此。如果您的模块未构建,则可能是由于其他一些问题。