发新话题
打印

insmod 加载内核模块 出现“段错误”

insmod 加载内核模块 出现“段错误”

最近找了很多关于内核模块设计的资料,但连最简单的hello world都通过不了,试了很多人的,最后加载模块时都会出现“段错误”。

#include <linux/module.h>
#include <linux/init.h>
MODULE_LICENSE("GPL");// 新,否则有 waring, 去掉了 #define MODULE, 自动定义
static int hello_init(void)
{
printk(KERN_ALERT "Hello, world\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel world\n");
}
module_init(hello_init);// 必须!!
module_exit(hello_exit); // 必须!!


Makefile里面就一句
obj-m := hello.o

#make -C /usr/src/linux SUBDIRS=$PWD modules

insmod ./hello.ko就会提示段错误。
不知道是不是我系统哪里配置错误的原因,我安装的是debian4.0
kernel 2.6.18,默认不安装内核,我重新编译了的。      

TOP

等待高手回答,我也试了n个版本,还下了2.6.22-rc5的内核,重新编译了还是不行,但我的错误总是一样的,就是: no module found in object      

TOP

你的内核重新编译过么? Linux 2.6 在编译模块时要求你已经编译过一个内核,而且编译过程中生成的临时文件还没有删除(也即编译后没有执行 make clean),make 的 -C 选项的参数应该指定为编译内核时对应的目录。      

TOP

可是我的编译了呀,晕晕      

TOP

发新话题