LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2661|回复: 6

内核模块编译:make: Nothing to be done for `default'.

[复制链接]
发表于 2006-10-17 13:26:52 | 显示全部楼层 |阅读模式
我按照LDD3写的那种方法,把代码放在一起,
demo.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 void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);


Makefile

# If KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq ($(KERNELRELEASE),)
obj-m := demo.o
# Otherwise we were called directly from the command
# line; invoke the kernel build system.
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif


运行make时提示:
make: Nothing to be done for `default'
我有自己的源代码树,而且两套内核。
即便没有指定上面的脚本也能确定啊,
为什么不行,高手帮忙啊!
发表于 2006-10-17 16:37:58 | 显示全部楼层
参看《linux1.0核心游记》第3部分关于模块的描述!
回复 支持 反对

使用道具 举报

发表于 2006-10-19 15:54:30 | 显示全部楼层
下面是我自己用的:
$cat Makefile   
obj-m += testmodule.o

$cat build.sh
#!/bin/bash
make -C kernel-src-dir SUBDIRS=$PWD modules

可以参考
http://dirac.org/linux/writing/l ... kmpg_chs/book1.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-19 22:03:46 | 显示全部楼层
不好意思,2 楼 的书没看过,不过关于内核的书可是看了些,包括赵博士的。
3楼的文章也看过了,还有什么Understanding the linux kernel 也看过 一部分,
LDD也看过了,不过不是第三版本的 。我用的是2。6内核,根本不能用。

这几天一直在愁那该死的Debian的内核,本来2。6。8的,想升级到2。6。18
SUSE的一次就起来了。可是Debian到现在也成功不了。升级不了不内核,装不上Drcom。
上不了网,上不了网,就更新不了系统。
呵呵。

谢谢3楼的ro4tub;
我用你的方式解决了。我才发现我只用了make 。
也谢谢2楼的朋友又给我介绍了一本好书。

另外,我想问下:

obj-m +=

obj-m :=没区别吧。
回复 支持 反对

使用道具 举报

发表于 2006-10-20 01:26:40 | 显示全部楼层
Post by souldump

obj-m +=

obj-m :=没区别吧。

They do have difference. Please check this:
http://linuxsir.cn/bbs/showthread.php?t=243166
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-27 14:49:21 | 显示全部楼层
谢谢楼上,不过有点模糊,
回复 支持 反对

使用道具 举报

发表于 2006-11-13 18:27:50 | 显示全部楼层
可能是 $(MAKE) 不存在?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表