Linux 模块版本错误"Invalid module format"



我做了一个Linux外部模块,因为我的模块需要Linux内核符号,

我设置Modversion配置并使其生效。

我的模块是在lib/modules/(My linux)/extra/

但是当我插入模块时,shell打印错误信息

insmod: ERROR: could not insert module oxen_aggregator_module.ko: Invalid module format

这是dmesg contents

[  341.458351] oxen_aggregator_module: version magic '3.17.8-gentoo-r1 SMP mod_unload modversions ' should be '3.17.8-gentoo-r1 SMP mod_unload '

但是我需要modversions标志,因为如果我没有设置那个标志,Module。服务器只有0x00000000个地址。

你能帮我吗?我该如何解决?

My Make file

SRCS    = oxen_aggregator_module.c
OBJS    = $(SRCS:.c=.o)
obj-m += $(OBJS)
KBUILD_EXTRA_SYMBOLS={/usr/src/linux-$(shell unamr -r)/Module.symvers}
all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules_install
clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
    $(RM) Module.markers modules.order

您尝试将模块加载到内核中,但它(模块)尚未为此构建。或者您为一个内核构建模块,但是使用KBUILD_EXTRA_SYMBOLS与为另一个内核创建的Module.symvers文件。

如果您需要使用KBUILD_EXTRA_SYMBOLS与内核的 Module.symvers file,那么它肯定是混乱的不同的内核某处

相关内容

  • 没有找到相关文章

最新更新