小弟初学内核,就碰到挫折了,帮帮我啊。

内核编译和嵌入式产品的设计与开发
回复
kabo
帖子: 9
注册时间: 2009-04-19 1:24

小弟初学内核,就碰到挫折了,帮帮我啊。

#1

帖子 kabo » 2009-09-16 22:08

我拿一个最简单的模块hello_m.c,用2.6.28.10内核编译,结果不能生成.ko,不知道出什么错误了,大牛,帮我看看啊。我的过程如下:
hello_m.c的模块:
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_INFO " Hello World enter\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_INFO " Hello World exit\n ");
}
module_init(hello_init);module_exit(hello_exit);
MODULE_AUTHOR("Song Baohua");
MODULE_DESCRIPTION("A simple Hello World Module");
MODULE_ALIAS("a simplest module");
写上一个小Makefile:
obj-m :=hello_m.o
然后放在我的/home/kabo/my_driver/
然后敲命令:make -C /home/kabo/linux-2.6.28.10/ M=/home/kabo/my_driver/ modules
出现的错误:
kabo@kabo-Ubuntu:~/linux-2.6.28.10$ make -C /home/kabo/linux-2.6.28.10/ M=/home/kabo/my_driver/ modules
make:进入目录'/home/kabo/linux-2.6.28.10'

WARNING: Symbol version dump /home/kabo/linux-2.6.28.10/Module.symvers
is missing; modules will have no dependencies and modversions.

CC [M] /home/kabo/my_driver/hello.o
在包含自 include/linux/gfp.h:4 的文件中,
从 include/linux/kmod.h:22,
从 include/linux/module.h:13,
从 /home/kabo/my_driver/hello.c:8:
include/linux/mmzone.h:18:26: 错误: linux/bounds.h:没有该文件或目录
include/linux/mmzone.h:256:5: 警告: “MAX_NR_ZONES”未定义
In file included from include/linux/gfp.h:4,
from include/linux/kmod.h:22,
from include/linux/module.h:13,
from /home/kabo/my_driver/hello.c:8:
include/linux/mmzone.h:277: 错误: ‘MAX_NR_ZONES’未声明(不在函数内)
make[1]: *** [/home/kabo/my_driver/hello.o] 错误 1
make: *** [_module_/home/kabo/my_driver] 错误 2
make:离开目录“/home/kabo/linux-2.6.28.10”
大牛们帮我看看是什么原因啊!怎么修改!!      
回复