我是个新手,请问个编译驱动的问题
我的Linux是CentOS 5.3,是装在虚拟机上的。
这是从书上抄来的:
一、hello.c
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void) {
printk("<1> Hello world!\n");
return 0;
}
static void hello_exit(void) {
printk("<1> Bye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
二、Makefile
obj-m :=hello.o
KDIR :=/lib/modules/$(shell uname -r)/build
PWD :=$(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules
我运行make时,出现
meke:***/lib/modules/2.6.18-128.el5/build:No such fiule or directory. Stop.
可是我在/lib/modules/2.6.18-128.el5/有个build的链接文件,
请问我错在哪了?是不是内核没有编译?如果没有编译,该怎么做呢?
(我也这样做过:yum install kernel,可是错误还是一样的)
------解决方案--------------------
可能是kernel-devel没有
比如我的
zengming@linux-008:~/workspace/s3c-linux> uname -r
2.6.37.6-0.20-desktop
zengming@linux-008:~/workspace/s3c-linux> ls /lib/modules/2.6.37.6-0.20-desktop/build
include Makefile Module.base Module.supported Module.symvers scripts
ls下,看看build指向的文件夹是否是空的。