我正在尝试构建内核模块
rtl8192eu
对于使用openwrt交叉编译工具链的Turris Omnia路由器。一切看起来都很好,除了如果我设置了
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211
. 我需要那个选项,否则我无法控制wifi加密狗。但是模块本身加载并识别没有启用该标志的加密狗。
如果旗帜
CONFIG_IOCTL_CFG80211
已启用,
insmod
失败的原因
8192eu: Unknown symbol __ieee80211_get_channel (err 0)
8192eu: Unknown symbol cfg80211_connect_result
但据我所见,
cfg80211
导出“镜像”符号:
â cat /proc/kallsyms|grep -E 'ieee80211_get_channel|cfg80211_connect_result'
bf6bea08 T ieee80211_get_channel [cfg80211]
bf6e1010 t __cfg80211_connect_result [cfg80211]
由于该模块从相同的源代码编译并在我的PC上运行而没有问题,并且PC上导出的符号与上面的“镜像”符号匹配,我想我确实为路由器错误地编译了该模块。也许是联系问题?