当前位置: 技术问答>linux和unix
debian加载模块 出现段错误
来源: 互联网 发布时间:2016-01-28
本文导语: 最近找了很多关于内核模块设计的资料,但连最简单的hello world都通过不了,试了很多人的,最后加载模块时都会出现“段错误”。 #include #include #include MODULE_LICENSE("GPL");// 新,否则有 waring, 去掉了 #define MODU...
最近找了很多关于内核模块设计的资料,但连最简单的hello world都通过不了,试了很多人的,最后加载模块时都会出现“段错误”。
#include
#include
#include
MODULE_LICENSE("GPL");// 新,否则有 waring, 去掉了 #define MODULE, 自动定义
static int hello_init(void)
{
printk(KERN_ALERT "Hello, worldn");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel worldn");
}
module_init(hello_init);// 必须!!
module_exit(hello_exit); // 必须!!
Makefile里面就一句
obj-m := hello.o
#make -C /usr/src/linux SUBDIRS=$PWD modules
#include 这一句我去掉了,原因是提示没有这个文件。
insmod ./hello.ko就会提示段错误。
不知道是不是我系统哪里没有配置的原因,我安装的是debian4.0
kernel 2.6.18,默认不安装内核,我重新编译了的。
#include
#include
#include
MODULE_LICENSE("GPL");// 新,否则有 waring, 去掉了 #define MODULE, 自动定义
static int hello_init(void)
{
printk(KERN_ALERT "Hello, worldn");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel worldn");
}
module_init(hello_init);// 必须!!
module_exit(hello_exit); // 必须!!
Makefile里面就一句
obj-m := hello.o
#make -C /usr/src/linux SUBDIRS=$PWD modules
#include 这一句我去掉了,原因是提示没有这个文件。
insmod ./hello.ko就会提示段错误。
不知道是不是我系统哪里没有配置的原因,我安装的是debian4.0
kernel 2.6.18,默认不安装内核,我重新编译了的。
|
你确定你的内核是2.6.18的吗?
make -C /usr/src/linux SUBDIRS=$PWD modules
改为 make -C /usr/src SUBDIRS=$PWD modules
make -C /usr/src/linux SUBDIRS=$PWD modules
改为 make -C /usr/src SUBDIRS=$PWD modules
|
init函数要有前缀 __init exit函数要有__exit前缀
你试试先删掉 不用的文件系统模块,然后在添加呢?
/usr/src/linux 指向具体的源码目录,其里面就是源码了
你试试先删掉 不用的文件系统模块,然后在添加呢?
/usr/src/linux 指向具体的源码目录,其里面就是源码了