模块加载的版本问题
内核源代码阅读交流 - 模块加载的版本问题--------------------------------------------------------------------------------
dongzy56 - 2005年 05月22日 03:46
发表主题: 模块加载的版本问题
--------------------------------------------------------------------------------
我刚开始学习linux内核 我的毕业设计题目是驱动程序的研究 希望大家一起努力我的qq:54678145 我写了一个简单的模块加载 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");
}
编译没有问题 生成helloworld.o 但是在使用insmod helloworld.o的命令时 显示kernel-module version mismatch
helloworld.o was compiled for kernel version 2.4.20
while this kernel is version 2.4.20-8.
请问 如何修改才能够在2.4.20-8的内核中运行?谢谢大家帮助!
--------------------------------------------------------------------------------
newbthzz - 2005年 05月27日 03:14
发表主题:
--------------------------------------------------------------------------------
在Makefile中加入正确的kernel路径
BTW:别忘了baidu 和google两个牛人
--------------------------------------------------------------------------------
donting - 2005年 06月22日 11:37
发表主题:
--------------------------------------------------------------------------------
我也刚刚出现同样的问题!我也是在2。4。20-8 内核中运行。
编译时gcc 的参数中加如 -I rourcepath/include 注意这个rourcepath 一定要 包涵编译的config的那个路径。
我已经通过了!
这是原来的贴子,不过我不明白 rourcepath是什么 ,可否给个例子 ,我是刚刚开始学linux的,大家请多包涵 。 指的是你的内核代码目录! 版本问题,解决如下:
把/usr/include/linux/version.h里的版本号改一致,即加上"-8"
这个问题解决后如出现license问题,则在#include<linux/module.h>后加上
MODULE_LICENSE("GPL");
页:
[1]