LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: pink_tulip

请问这个makefile为什么出错?

[复制链接]
 楼主| 发表于 2006-2-15 16:24:20 | 显示全部楼层
晕,在RH9上通过了,FC4上还是不行,加载时说格式错误

上面的错误原因是:FC4的config.h默认不准加载模块,删掉其中的相应行就通过了,但是又说格式不对。
回复 支持 反对

使用道具 举报

发表于 2006-2-15 18:49:15 | 显示全部楼层
建Makefile, 注意M是大写的,内容只有一行
obj-m += hello.o

然后在命令行下输入
make -C /lib/modules/$(uname -r)/build M=$(pwd) modules

参照这里
http://www.linuxforum.net/forum/ ... d&sb=5&o=31
回复 支持 反对

使用道具 举报

发表于 2006-2-15 18:56:08 | 显示全部楼层
Post by echofrompat
makefile 应该这样写:
[php]obj-m += hello.o

all:
        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean[/php]



这不是对的吗
就是在复制代码的时候把命令行前的空格改成tab
然后把makefile改为Makefile
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-15 19:28:25 | 显示全部楼层
Post by co63
建Makefile, 注意M是大写的,内容只有一行
obj-m += hello.o

然后在命令行下输入
make -C /lib/modules/$(uname -r)/build M=$(pwd) modules

参照这里
http://www.linuxforum.net/forum/ ... d&sb=5&o=31



[root@localhost test]# insmod hello.o
insmod: error inserting 'hello.o': -1 Invalid module format
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-16 00:52:05 | 显示全部楼层
另外,请问Makefile为什么M一定要大写呢?我看make的帮助上说大小写都可以,大写只是可以在列表时更靠前而已。
回复 支持 反对

使用道具 举报

发表于 2006-2-16 01:51:37 | 显示全部楼层
kernel2.4和kernel2.6的模块格式不一样,在kernel2.4上编译出来的.o可以直接作为模块插入,而在kernel2.6上,必须要编译成.ko的形式。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-16 09:34:53 | 显示全部楼层
Post by cobranail
kernel2.4和kernel2.6的模块格式不一样,在kernel2.4上编译出来的.o可以直接作为模块插入,而在kernel2.6上,必须要编译成.ko的形式。


请问具体怎么做?
回复 支持 反对

使用道具 举报

发表于 2006-2-16 10:31:26 | 显示全部楼层
Post by pink_tulip
请问具体怎么做?

makefile 的M可以大写也可以小写.
我写的makefile就可以生成hello.ko呀.:beat
回复 支持 反对

使用道具 举报

发表于 2006-2-16 16:05:36 | 显示全部楼层
可能不同的系统有所不同,
我的文件名为makefile时,报错,找不到“Makefile”
如果系统不报错,那你就小写。
回复 支持 反对

使用道具 举报

发表于 2006-2-16 16:05:36 | 显示全部楼层
可能不同的系统有所不同,
我的文件名为makefile时,报错,找不到“Makefile”
如果系统不报错,那你就小写。
回复 支持 反对

使用道具 举报

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

本版积分规则

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