红联Linux门户
Linux帮助

各位老大帮小弟看看!!(恳求)

发布时间:2007-10-26 15:26:29来源:红联作者:mardar
小弟我,刚接触linux驱动,买了本《linux设备驱动程序》学习。可是刚看就遇到了问题:
我按照书写了个makefile文件:
#如果已定义KERNELRELEASE,则说明是从内核构造系统调用的,
#因此可以利用期内建语句。
ifneq ($(KERNELRELEASE),)
obj-m :=hello.o

#否则,是直接从命令行调用的,
#这是要调用内核构造系统。
else

KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules

endif

书中的hello.c也是搬书上的,可是总是出现:Nothing to be done for 'default'.
如果去掉
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules还是出错!!这到底是怎么回事啊。


各位老大,小弟初学习驱动。懂得少,所以不怕老大们BS----只要能解决问题就行,我是真地想学啊!!
文章评论

共有 3 条评论

  1. mardar 于 2007-10-26 16:59:32发表:

    内核为2.6.18

  2. mardar 于 2007-10-26 16:45:25发表:

    [font=宋体] [/font]
    [font=宋体][/size][/font]
    [font=宋体][size=14pt]各位老大这是hello.c的源码
    [/font]
    [font=宋体]#include [/font]
    [font=宋体]#include [/font]
    [font=宋体]MODULE_LICENSE("Dual BSD/GPL");[/font]
    [font=宋体] [/font]
    [font=宋体]static int hello_init(void) {[/font]
    [font=宋体] printk(KERN_ALERT "Hello, world\n");[/font]
    [font=宋体] return 0;[/font]
    [font=宋体]}[/font]
    [font=宋体] [/font]
    [font=宋体]static void hello_exit(void) {[/font]
    [font=宋体] printk(KERN_ALERT "Goodbye, cruel world\n");[/font]
    [font=宋体]}[/font]
    [font=宋体] [/font]
    [font=宋体]module_init(hello_init);[/font]
    [font=宋体]module_exit(hello_exit);[/font]

  3. mardar 于 2007-10-26 16:27:59发表:

    [font=宋体] [/font]
    [font=宋体][/size][/font]
    [font=宋体][size=14pt]各位老大这是hello.c的源码
    [/font]
    [font=宋体]#include [/font]
    [font=宋体]#include [/font]
    [font=宋体]MODULE_LICENSE("Dual BSD/GPL");[/font]
    [font=宋体] [/font]
    [font=宋体]static int hello_init(void) {[/font]
    [font=宋体] printk(KERN_ALERT "Hello, world\n");[/font]
    [font=宋体] return 0;[/font]
    [font=宋体]}[/font]
    [font=宋体] [/font]
    [font=宋体]static void hello_exit(void) {[/font]
    [font=宋体] printk(KERN_ALERT "Goodbye, cruel world\n");[/font]
    [font=宋体]}[/font]
    [font=宋体] [/font]
    [font=宋体]module_init(hello_init);[/font]
    [font=宋体]module_exit(hello_exit);[/font]