Cross compiling Linux wifi driver
-
15-06-2021 - |
Question
I'm trying to cross compile a Realtek wifi driver for an Airlink AWLL6075 wireless n usb adapter. The chip set is apparently RTL8191SU and I've obtained the drive for Linux from the Realtek download site. When cross compiling for the ARM Linux with OpenEmbedded the compilation fails with the following messages:
os_dep/linux/mlme_linux.c: In function 'rtw_os_indicate_scan_done':
os_dep/linux/mlme_linux.c:222:34: error: implicit declaration of function 'wdev_priv'
The offending section from mlme_linux.c is:
extern void indicate_wx_scan_complete_event(_adapter *padapter);
void rtw_os_indicate_scan_done( _adapter *padapter, bool aborted)
{
#ifdef CONFIG_IOCTL_CFG80211
rtw_cfg80211_indicate_scan_done(wdev_to_priv(padapter->rtw_wdev), aborted);
#endif //CONFIG_IOCTL_CFG80211
indicate_wx_scan_complete_event(padapter);
}
Any suggestions on how to fix this?
Regards, Matt
Solution
Implicit declaration of function means that the compiler can't find the function declaration in the header.
Try and track down the header file containing this guy. Perhaps dependency is missing.
A quick google gives out cfg80211.h as the culprit. Found in http://www.takatan.net/lxr/ident?i=wdev_priv
Searching for cfg80211 gives http://www.linuxwireless.org/en/developers/Documentation/cfg80211
As far as I can see, all you need to do is download the cfg80211.h file from the first link and include in your project.