编写内核模块问题,不能生成.ko文件?
编译使不能生成.ko环境是fc9,因为它本身不包含内核,所以我下载了一个,重新编译了
不知道是什么原因
# make -C /usr/src/linux-2.6.27.6 M=$PWD modules
make: Entering directory `/usr/src/linux-2.6.27.6'
Building modules, stage 2.
MODPOST 0 modules
make: Leaving directory `/usr/src/linux-2.6.27.6'
程序是按ldd3上面写的
达人指点一下,弄很长时间了
谢谢 你编译的内核执行make modules_install了吗 就是/lib/modules目录下生成了以你使用源码版本命名的目录了吗
回复 #1 我是害虫 的帖子
应该是重新编译的时候除了问题,你可以找个最简单的helloworld编译一下试试 原帖由 Godbach 于 2008-11-16 19:59 发表 http://linux.chinaunix.net/bbs/images/common/back.gif就是/lib/modules目录下生成了以你使用源码版本命名的目录了吗
make modules_install命令作了
在lib/modules下面也生成了2。6。27。6的目录 原帖由 dreamice 于 2008-11-16 20:09 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
应该是重新编译的时候除了问题,你可以找个最简单的helloworld编译一下试试
试过了,没问题
我想可能是不是,gcc还是用的以前内核头文件的原因阿,或者说当初标准库编译的时候,用的旧的内核头文件
郁闷阿 原帖由 我是害虫 于 2008-11-16 20:41 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
试过了,没问题
我想可能是不是,gcc还是用的以前内核头文件的原因阿,或者说当初标准库编译的时候,用的旧的内核头文件
郁闷阿
如果helloworld可以编译的话,你把你的代码贴出来看看,到底是怎么回事。 原帖由 dreamice 于 2008-11-16 21:28 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
如果helloworld可以编译的话,你把你的代码贴出来看看,到底是怎么回事。
#include <linux/module.h>
#include <linux/kernel.h>
int init_module(void)
{
printk(KERN_ALERT "Hello world \n");
return 0;
}
void cleanup_module(void)
{
printk(KERN_ALERT "Goodbye world\n");
}
module_init(init_module);
module_exit(cleanup_module);
makefile文件是
obj-m +=hello.o
# make -C /usr/src/linux-2.6.27.6 M=$PWD modules //在源程序目录里执行的
make: Entering directory `/usr/src/linux-2.6.27.6'
Building modules, stage 2.
MODPOST 0 modules
make: Leaving directory `/usr/src/linux-2.6.27.6'
我觉得不是程序的问题,不知道您用的是什么环境
[ 本帖最后由 我是害虫 于 2008-11-16 21:53 编辑 ] 给你一个参考的Makefile试一下
TARGET = hello
KDIR = /lib/modules/$(shell uname -r)/build
PWD = $(shell pwd)
obj-m := $(TARGET).o
default:
make -C $(KDIR) M=$(PWD) modules
clean:
$(RM) *.o *.ko *.mod.c Module.symvers
谢谢你
成功了
能告诉我是因为什么原因吗
我感觉把您给我的makefile展开,和我得差不多阿
make语句真难懂啊,给推荐本书把
再次谢谢你
[ 本帖最后由 我是害虫 于 2008-11-16 22:36 编辑 ]
页:
[1]
2