|
|
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
|