当我尝试在自定义构建的内核上运行make-install时,我得到以下错误-
root@localhost [ /home/avi/dd/labs/lab1_compile_and_load ]$ make install V=1
make-C/lib/modules/31.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'
我的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
我试着让oldconfig&;按照错误消息中的建议执行"make preapare",但无济于事。我在fedora20和ubuntu12.04上都试过这个。如果做Make,那么它工作得很好,但Make安装失败。请帮忙。如有任何相关答复,我们将不胜感激。
您包含了V=1
,它使Make在运行命令时显示命令(请参阅此问题)。从外观上看,你实际上并没有看到错误本身,但你看到的是它正在运行的测试,以检查这些文件是否存在:
test -e include/generated/autoconf.h -a -e include/config/auto.conf || (
... echo error messages here ...
)
该测试正在运行,如果失败,它会将这些消息返回到标准错误,但事实并非如此。如果您的模块没有构建,可能是由于其他问题。