(缺少 .modinfo 部分或名称字段):在对象中找不到模块
我正在尝试运行内核模块,但是当我尝试使用 insmod 加载它时,我得到了无效的模块格式 insmod:错误:无法插入模块 mymodule.ko:模块格式无效
运行 dmesg
我得到以下输出 (缺少 .modinfo 部分或名称字段):在对象 [] 模块中找不到模块:x86/modules:跳过无效的重定位目标,类型 1 的现有值非零,loc 00000
Makefile
obj-m = mymodule.o
KVERSION = $(shell uname -r)
all:
make -C /lib/modules/$(KVERSION)/build M=$(shell pwd) modules
clean:
make -C /lib/modules/$(KVERSION)/build M=$(shell pwd) clean
mymodule.c
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("ME");
MODULE_DESCRIPTION("TEST of The bla bla bla");
static int __init ModuleInit(void) {
/*
Some Code
*/
return 0;
}
static void __exit ModuleExit(void) {
printk ("Module EXIT");
}
module_init(ModuleInit);
module_exit(ModuleExit);
kernel版本:5.13.0-30-通用
I am trying to run a kernel module , however I got invalid module format when I try to load it using insmodinsmod: ERROR: could not insert module mymodule.ko: Invalid module format
running dmesg
I got the following output(missing .modinfo section or name field): No module found in object [] module: x86/modules: Skipping invalid relocation target, existing value is nonzero for type 1, loc 00000
Makefile
obj-m = mymodule.o
KVERSION = $(shell uname -r)
all:
make -C /lib/modules/$(KVERSION)/build M=$(shell pwd) modules
clean:
make -C /lib/modules/$(KVERSION)/build M=$(shell pwd) clean
mymodule.c
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("ME");
MODULE_DESCRIPTION("TEST of The bla bla bla");
static int __init ModuleInit(void) {
/*
Some Code
*/
return 0;
}
static void __exit ModuleExit(void) {
printk ("Module EXIT");
}
module_init(ModuleInit);
module_exit(ModuleExit);
kernel version : 5.13.0-30-generic
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论