请教一个非常简单的模块程序加载的问题,请大家帮帮忙。
时间:2005-07-19
来源:互联网
文件:helloworld.c
#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")
}
我按照书上说的用了下面两条命令。
先编译:#gcc -c helloworld.c
这个通过了。
然后 :#insmod helloworld.o
这时候出现下面问题:
Warining:kernel-module version mismatch.
helloworld.o was compiled for kernel version 2.4.20
while this kernel is version 2.4.20-8.
请问我该怎么做??望各位指点,先谢过诸位。
作者: OnceMemory 发布时间: 2005-07-19
-I 指定你的头文件路径的话,那么gcc默认使用
/usr/include/linux
和
/usr/include/asm
这里的头文件,module.h 里面包含一个叫 version.h 的东西
里面有
#define UTS_RELEASE "2.4.20"
#define LINUX_VERSION_CODE 132116
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
这样的版本信息,可能和当前内核不符。
解决的办法很明显了,要么用 -I 显示指定头文件路径(推荐)
也可以把 /usr/include/linux /usr/include/asm 改成符号连接
指向 /usr/srr/'uname -r'/include 下面的 linux 和 asm-i386 目录
(一般是i386而已,看情况)
以上是针对2.4版本的kernel module,对于2.6的,因为其Makefile里面
都是 直接 -C 去使用内核的 module build的工具,所以应该没有这样的问题
前面贴过一遍了,其实有空的话,翻翻前面的帖子,找不到答案再发问
作者: xieweiyi 发布时间: 2005-07-19
但是...其实我看不太明白,我是个很新的新手。只是才学了一点gcc命令方面的东西,按照一本Linux内核指导的试验教材自己瞎学点东西。
我刚才按着你说的用-I指定目录的方法试了,insmod还是不行,是不是我指定的目录不对,应该指定哪个??
我是这样用的:gcc -I/usr/src/linux 2.4.20-8/include/asm -i386
然后把上面的改成#include <module.h>
我看到上面那个目录下面有个module.h文件。
是不是不对啊??应该怎么弄那??再次谢谢你。
作者: OnceMemory 发布时间: 2005-07-19
还有一个问题:为什么不显示Hello World那??
作者: OnceMemory 发布时间: 2005-07-19
你可以 dmesg 看到他,如果输出太多就 dmesg 5 这样输出最后5行,应该就看到了.
至于warning,你说的是什么 warning? License?
你可以在你的代码里面增加一行
MODULE_LICENSE("GPL")
来说明你的模块的LICENSE就可以了
#define MODULE
#include <linux/module.h>
MODULE_LICENSE("GPL");
int init_module(void)
{
printk("<1> Hello World!\n");
return 0;
}
void cleanup_module(void)
{
printk("<1>Goodbye!\n")
}
作者: xieweiyi 发布时间: 2005-07-19
再次感谢xieweiyi
作者: OnceMemory 发布时间: 2005-07-22
作者: paowang 发布时间: 2005-07-22
作者: deargodzw 发布时间: 2009-05-07
作者: OnceMemory
哈哈,^_^,又试了试成功了,但是给了 Warining提示,是with warning执行的
还有一个问题:为什么不显示Hello World那?? |
还请详细说下呀!
作者: haiyywvf 发布时间: 2010-04-29
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28