QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2626|回复: 9

用INSMOD加载驱动版本不匹配怎么解决?????

[复制链接]
发表于 2005-4-18 17:36:36 | 显示全部楼层 |阅读模式
刚开始学习写驱动程序      
//=========hello.c      
#define    MODULE      
#include<linux/module.h>      
int    init_module(void)      
{      
                     printk("<1>hello\n");      
                     return    0;      
}      
   
void    cleanup_module(void)      
{      
             printk("<1>goodbye\n");      
}      
   
编译如下:      
gcc    -c    hello.c      
加载:      
insmod    hello.o      
就不行了,提示信息好像是说version    mismatch,然后说编译出的版本是2.4.20(好像是,记不清了),KERNEL版本是2.4.20-8,云云……      
   
怎么解决这个版本不匹配问题?      
   
PS:我的是RED    Hat    LINUX    9.0      
谢谢!!!!!!!!!!!!
 楼主| 发表于 2005-4-18 17:48:52 | 显示全部楼层
是不是程序写得不对啊,要怎么修改,大侠指教啊,谢谢~~~~~
回复

使用道具 举报

 楼主| 发表于 2005-4-18 18:21:17 | 显示全部楼层
知道怎么解决了,“红帽9下编译内核模块可以使用命令gcc -c module.c -I/usr/src/linux-2.4.20-8/include,就不会有版本提示的问题了。”

可是这样解决之后又出现了warning,说什么no licence,然后可以see :http://www.tux.org/lkml/#export-tained

怎么解决??????
回复

使用道具 举报

发表于 2005-6-22 23:51:08 | 显示全部楼层
呵呵!
在源文件中加入MODULE_LICENCE("GPL")
ok !
回复

使用道具 举报

发表于 2005-6-26 13:17:27 | 显示全部楼层
其实,有没有什么LICENCE根本不重要,只是警告而已
我用的是2.6.5的内核,用你上面的程序一样的程序(我也是想先简单看一下加载的过程),但根本就不能用insmod上去,是不是进入2.6.5以后加载的方式改变了?
回复

使用道具 举报

发表于 2005-7-15 12:42:40 | 显示全部楼层
把linux/version里面的版本号改成2.4.20就可以了。呵呵!我也遇到过这个问题。该了就好了
回复

使用道具 举报

发表于 2005-8-2 16:58:26 | 显示全部楼层
[quote:89512f90b0="NeptuneStar"]把linux/version里面的版本号改成2.4.20就可以了。呵呵!我也遇到过这个问题。该了就好了[/quote]

这个linux/version具体在哪里啊?乱改了几个地方都没有解决。谢谢
回复

使用道具 举报

发表于 2005-8-3 22:52:22 | 显示全部楼层
试试  insmod -f hello.o
回复

使用道具 举报

发表于 2005-8-4 10:26:58 | 显示全部楼层
我和楼主的问题一样,用 insmod -f hello.o 也不行!哪位有好的解决办法!!
回复

使用道具 举报

发表于 2005-8-5 17:45:50 | 显示全部楼层
我的也是这样.
rh9.2
编译驱动程序肯定要把环境配置好,怎么没有这方面的介绍?!

偶编译的时候还提示:warning: implicit declaration of function `printk'
这是怎么回事?
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-16 12:48 , Processed in 0.058071 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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