蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 | -->
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程 -->


    

蓝森林 http://www.lslnet.com 2006年8月16日 14:08

redhatSMP下驱动程序编译加载问题

我写了一个驱动程序,在redhat6.0-6.2、turbo6.1&SMP下编译加载均无问题,但是在redhat6.1SMP下编译可以通过,加载时显示unresolved symbol free_irq ...等等类似的连接错误。是否在redhat下编译或加载时还要加一些特殊参数?(已加-D__SMP__)
望高手不吝赐教!小弟感激不尽!



Re: redhatSMP下驱动程序编译加载问题

我在编译软猫的驱动时也遇到过,
解决方法是重编内核,编译之前把Loadable Module Support
里面的Set version info..........选项去掉.

我是空空的肥皂泡,色彩全部来自阳光。
我拒绝充实,那样我会堕落。

Re: redhatSMP下驱动程序编译加载问题

谢谢!我马上试试。另外,我不明白为什么redhat自身带的驱动程序没有问题呢?



Re: redhatSMP下驱动程序编译加载问题

按照您说的方法我重新编译时出现下面的错误:
/usr/src/linux-2.2.12/include/linux/kernel_stat.h:44: `smp_num_cpus' undeclared
(first use in this function)
这是为什么?如何解决呢?

redhat 6.1 2.2.12SMP



Re: redhatSMP下驱动程序编译加载问题

因为他的模块都是在那个环境下编译的。

说到这我想起个问题,你的驱动是完全从源码编译的吗?
如果是的话,其实也可以把那个选项设上的。不过还
是得编译内核一次。
我那次编译软猫,有些部分是以编译的,所以只能
改内核设置了。

我是空空的肥皂泡,色彩全部来自阳光。
我拒绝充实,那样我会堕落。

Re: redhatSMP下驱动程序编译加载问题

驱动程序是我用c写的,有完整的源代码。为什么我需要再重新编译核心呢?编译时还需要改变什么选项吗?
在SMP下网卡的驱动用nm看时显示类似pcibios_find_device_Rsmp97d49c4d
而我的驱动显示为
pcibios_find_device
是不是这里不同呢?




Re: redhatSMP下驱动程序编译加载问题

SMP支持选上了吗?

我是空空的肥皂泡,色彩全部来自阳光。
我拒绝充实,那样我会堕落。

Re: redhatSMP下驱动程序编译加载问题

>在SMP下网卡的驱动用nm看时显示类似pcibios_find_device_Rsmp97d49c4d
这就是那个选项设置了之后的结果,在每个内核symbol后面加上了版本
信息,而你的模块中的引用没有这些信息,等于是symbol不匹配。
去掉那个选项后再编译内核,那些版本信息就没了,和你的模块的
引用就匹配了。

我是空空的肥皂泡,色彩全部来自阳光。
我拒绝充实,那样我会堕落。

Re: redhatSMP下驱动程序编译加载问题

怎样才能使我的驱动中的引用也成为类似pcibios_find_device_Rsmp97d49c4d
的呢?
(我去掉set version info ...之后编译核心有/usr/src/linux-2.2.12/include/linux/kernel_stat.h:44: `smp_num_cpus' undeclared
(first use in this function)的错误




Re: redhatSMP下驱动程序编译加载问题

试一下这样:

在你的Makefile 里include /usr/src/linux/Rule.make,
然后再定义CONFIG_MODVERSIONS,应该可以。

我是空空的肥皂泡,色彩全部来自阳光。
我拒绝充实,那样我会堕落。

Re: redhatSMP下驱动程序编译加载问题

谢谢,我再试试!



Re: redhatSMP下驱动程序编译加载问题

test





Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com