QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1757|回复: 2

模块加载的版本问题

[复制链接]
发表于 2005-9-16 19:37:07 | 显示全部楼层 |阅读模式
内核源代码阅读交流 - 模块加载的版本问题

--------------------------------------------------------------------------------
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的,大家请多包涵 。
发表于 2005-9-17 22:47:01 | 显示全部楼层
指的是你的内核代码目录!
回复

使用道具 举报

发表于 2006-1-1 14:55:23 | 显示全部楼层
版本问题,解决如下:
  把/usr/include/linux/version.h里的版本号改一致,即加上"-8"

这个问题解决后如出现license问题,则在#include<linux/module.h>后加上
MODULE_LICENSE("GPL");
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-6-26 19:00 , Processed in 0.442915 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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