LinuxSir.cn,穿越时空的Linuxsir!

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

新手:关于自己写的第一个内核模块的问题!!!

[复制链接]
发表于 2004-7-27 17:47:21 | 显示全部楼层 |阅读模式
我的代码如下:
#define MODULE
#include<linux/module.h>

int init_module(void)
{
printk("<1>Hello World!\n");

return 0;
}

void cleanup_module(void)
{
printk("<1>Goodbye!n\n");
}

gcc -c -O2 filename.c 编译通过
insmod filename.o时出现错误
insmod: error inserting 'helloworld.o': -1 Invalid module format
请各位大侠给指条明路!感激不禁!!!
 楼主| 发表于 2004-7-27 17:53:24 | 显示全部楼层
补充一下,我用的是fedora c2 kernel 2.6.6
发表于 2004-7-27 18:52:42 | 显示全部楼层
内核模块我没有研究过,但感觉编译参数好象少了什么东西。你到网络上搜索看看内核编译时需要带什么参数。
发表于 2004-7-27 20:53:55 | 显示全部楼层
LDD2上面的程序是for 2.4.x以及以下的,2.6.x的模块编程已经有了一些变化了,看看这个系列http://lwn.net/Articles/driver-porting/
发表于 2004-7-28 08:37:41 | 显示全部楼层
gcc -I/usr/src/linux-2.4.20-8/include -c -O2 filename.c

这样编译试试? (注意 -I 是大写的 -i )
发表于 2004-7-28 08:39:13 | 显示全部楼层
sorry, 楼上的 linux-2.4.20-8 要换成你自己系统上的相应目录
发表于 2004-7-28 08:56:34 | 显示全部楼层
编译内核不同于编译一般的程序的,建议你还是按照网上的例子一步步来
发表于 2004-7-28 12:27:38 | 显示全部楼层
http://www.linuxfans.org/nuke/mo ... ewtopic&t=64141

CFLAG= -D__KERNEL__ -DMODULE -I$(KERNELDIR)/include -O
发表于 2004-7-29 10:31:57 | 显示全部楼层
楼主编译出来的东东只能用在2。4的机器上了。
 楼主| 发表于 2004-7-29 22:29:59 | 显示全部楼层
多谢大家了,我解决了,按照TecHunter给的网址上的资料
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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