2

I am trying to build kernel module rtl8192eu for Turris Omnia router using openwrt crosscompile toolchain. Everything looks fine except that the module cannot be inserted if I set EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211. I need that option, otherwise I am not able to control the wifi dongle. But the module itself loads and recognizes the dongle without that flag enabled.

If the flag CONFIG_IOCTL_CFG80211 is enabled, insmod fails with

8192eu: Unknown symbol __ieee80211_get_channel (err 0)  
8192eu: Unknown symbol cfg80211_connect_result

However as far as I can see, cfg80211 exports 'mirrored' symbols:

➜  cat /proc/kallsyms|grep -E 'ieee80211_get_channel|cfg80211_connect_result'
bf6bea08 T ieee80211_get_channel        [cfg80211]
bf6e1010 t __cfg80211_connect_result    [cfg80211]

Since the module compiles and works on my PC from the same sources without an issue and exported symbols on PC are matching to the above 'mirrored' ones, I guess I do compile the module for router incorrectly. Maybe some linkage issue?

Grief
  • 1,839
  • 1
  • 21
  • 40
  • Are you sure that you haven't got a warning at building stage about those symbols? Normally, situations "unknown symbol" are detected at build stage. – Tsyvarev Feb 17 '19 at 18:05
  • @Tsyvarev not at all. I see all cfg80211 symbols as unresolved at compile stage. However only those two are not there in cfg80211. Anyway, I fixed this issue. But the driver still doesn't work. – Grief Feb 19 '19 at 18:26

0 Answers0