fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:1236回复:5

版本不匹配问题的解决!!!10分相送!

楼主#
更多 发布于:2003-06-09 17:28
我用gcc -c hello.c生成hello.o。然后使用insmod hello.o链接到内核时,出现如下信息:hello.o是为内核版本2.4.0-0.26所编译,当前内核版本为2.2.16-22。
使用-f开关可以将其强制链接到内核,但是以上信息还是有。请问各位驱友,如何解决这个版本不匹配的问题。在此先谢过了!!!
有了驱动,人才有了力量。
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-09 19:00
看来我们遇到的问题是一样的了,虽然强制加载了,可是却有警告,后面在调用file_operation结构的时候,也是会出很多问题,说这个结构不正确!

希望高手指导一下啊!
sdssly
驱动牛犊
驱动牛犊
  • 注册日期2003-03-04
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分344分
  • 威望47点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-09 21:16
看来我们遇到的问题是一样的了,虽然强制加载了,可是却有警告,后面在调用file_operation结构的时候,也是会出很多问题,说这个结构不正确!

希望高手指导一下啊!


刚刚解决了这个问题。是因为Linux /usr/src/linux2.4/include 中 version.h 和 /include 下version.h版本不一样。

在GCC中使用 这个参数:

-I/usr/src/linux2.4/include

给分吧:)
fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-09 23:52
Think you sdssly!!
我试过了,是这样的。
有了驱动,人才有了力量。
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-10 10:44
好啊,大家真的很同步了,在GCC里使用的是-I/usr/src/linux-2.4.20-8/include
也是成功了,只是在insmod 的时候却说警告:
warning:loading /hello.o will taint the kernel:no license.
然后给了我一个网页,难道我的版本需要网上注册吗?我的是9。0的,买的正版。
还有就是用图形界面里的终端可以使用insmod.
可是回到控制台却说:insmode command can\'t find.
这个是怎么回事啊,是不是重新安装系统除了问题!
sdssly
驱动牛犊
驱动牛犊
  • 注册日期2003-03-04
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分344分
  • 威望47点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-10 10:58
这个不需要什么注册。源码都有的!你应该在module代码里加入下面的语句:

MODULE_LICENSE(\"GPL\");

更详细的内容,在google中查module_license
游客

返回顶部