当前位置: 技术问答>linux和unix
kernel里面export出来的接口无法使用
来源: 互联网 发布时间:2017-05-08
本文导语: 请各位大侠帮忙看看这个问题。 我在板子上弄无线wifi的驱动,下了一个驱动回来编译通过,加载驱动的时候有错误打印: unknown symbol cfg80211_scan_done 不止这一句,后面还有很多句,大概都是这类似的函数。 我跟踪...
请各位大侠帮忙看看这个问题。
我在板子上弄无线wifi的驱动,下了一个驱动回来编译通过,加载驱动的时候有错误打印:
unknown symbol cfg80211_scan_done
不止这一句,后面还有很多句,大概都是这类似的函数。
我跟踪了一下,在 linux/net/wireless/scan.c里面有这个接口,而且也有
EXPORT_SYMBOL(cfg80211_scan_done)
sacn.c这个代码是编译到了的。
请问这种问题一般是什么地方出错才会产生呢,小弟刚接触者方面的开发,不太懂,请各位指点一下。
非常感谢!
我在板子上弄无线wifi的驱动,下了一个驱动回来编译通过,加载驱动的时候有错误打印:
unknown symbol cfg80211_scan_done
不止这一句,后面还有很多句,大概都是这类似的函数。
我跟踪了一下,在 linux/net/wireless/scan.c里面有这个接口,而且也有
EXPORT_SYMBOL(cfg80211_scan_done)
sacn.c这个代码是编译到了的。
请问这种问题一般是什么地方出错才会产生呢,小弟刚接触者方面的开发,不太懂,请各位指点一下。
非常感谢!
|
比如你代码编译后生成了n个ko,假设你当前加载a.ko报错,而cfg80211_scan_done是在b.ko里面实现的,那你需要先加载b.ko再加载a.ko
如果只生成了一个ko,那要么 linux/net/wireless/scan.c代码没编译到,要么驱动模块少了
如果只生成了一个ko,那要么 linux/net/wireless/scan.c代码没编译到,要么驱动模块少了
|
当前的ko模块没有cfg80211_scan_done这个函数
如果cfg80211_scan_done是在其他模块,那你得先加载那个模块,那个模块代码里面要 EXPORT_SYMBOL(cfg80211_scan_done)
如果cfg80211_scan_done是在其他模块,那你得先加载那个模块,那个模块代码里面要 EXPORT_SYMBOL(cfg80211_scan_done)