请教一个问题:我在linux环境下开发一个最简单的helloworld驱动程序。编写好程序后,又写了个Makefile文件
hello.c#include<linux/init.h>#include<linux/module.h>MODULE_LICENSE(¨DualBSD/GPL¨);st...
hello.c
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE(¨Dual BSD/GPL¨);
static int hello_init(void){
printk(KERN_ALERT ¨Hello, world\n¨);
return 0;
}
static int hello_exit(void){
printk(KERN_ALERT ¨Goodbye, cruel world\n¨);
}
module_init(hello_init);
module_exit(hello_exit);
Makefile
ifneq ($(KERNELRELEASE),)
obj -m := hello.o
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
enbash-3.1# make
make -C /lib/modules/2.6.15-1.2054_FC5/build M=/root/ldd3/hello modules
make[1]: Entering directory `/usr/src/redhat/BUILD/kernel-2.6.15/linux-2.6.15.i686 '
Building modules, stage 2.
MODPOST
make[1]: Leaving directory `/usr/src/redhat/BUILD/kernel-2.6.15/linux-2.6.15.i686 '
dif
发现没有生成hello.ko文件 展开
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE(¨Dual BSD/GPL¨);
static int hello_init(void){
printk(KERN_ALERT ¨Hello, world\n¨);
return 0;
}
static int hello_exit(void){
printk(KERN_ALERT ¨Goodbye, cruel world\n¨);
}
module_init(hello_init);
module_exit(hello_exit);
Makefile
ifneq ($(KERNELRELEASE),)
obj -m := hello.o
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
enbash-3.1# make
make -C /lib/modules/2.6.15-1.2054_FC5/build M=/root/ldd3/hello modules
make[1]: Entering directory `/usr/src/redhat/BUILD/kernel-2.6.15/linux-2.6.15.i686 '
Building modules, stage 2.
MODPOST
make[1]: Leaving directory `/usr/src/redhat/BUILD/kernel-2.6.15/linux-2.6.15.i686 '
dif
发现没有生成hello.ko文件 展开
3个回答
展开全部
你装的linux内核是什么版本的,使用uname -r 查看一下,如是2.4的内核直接生成.o文件,要是2.6的内核则生成.ko文件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/usr/src/redhat/BUILD/kernel-2.6.15/linux-2.6.15.i686 在这个文件夹找找
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询