如何解决内核配置无效问题

时间:2018-05-16 03:17:26

标签: linux-kernel linux-device-driver

我正在尝试构建模块。

但是这里有一些问题。

  

错误:内核配置无效。            缺少include / generated / autoconf.h或include / config / auto.conf。            运行'make oldconfig&&在内核src上做准备以修复它。

     

警告:符号版本转储./Module.symvers              不见了;模块将没有依赖关系和modversions。

这是我的makefile

ifeq ($(KERNELRELEASE),)


KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)

modules:
    $(MAKE) -C $(KERNELDIR) M=$(PWD) modules

modules_install:
    $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install

clean:
    rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions

.PHONY: modules modules_install clean

else
    # called from kernel build system: just declare what our modules are
    obj-m := hello.o hellop.o seq.o jit.o jiq.o sleepy.o complete.o \
             silly.o faulty.o kdatasize.o kdataalign.o
endif

我试着像这样建造:

export KERNELDIR=/path/to/extern/linux/source
make

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

嗨,

好的,所以我会尝试重新安装 linux-headers。告诉我这是否有效!或者如果没有!

在终端(bash)中:

需要root权限!

如果您不是 root:

HashMap::get

mem::transmute

如果您已经是根用户:

sudo apt install --reinstall linux-headers-$(uname -r)

如果你找不到任何包,(或类似的)(来自 apt) 尝试 sudo reboot 并重新尝试上述操作。

我不知道这是否有帮助,但是 - 检查 apt install --reinstall linux-headers-$(uname -r) 是否有任何消息

答案 1 :(得分:0)

我通过以下命令解决了这个问题:

  1. 切换到kernel-source目录(例如:build/tmp/work-shared/lmm-corei7/kernel-source)。
  2. 使用内核配置复制那里的.config文件。
  3. 运行make prepare