Thanks Sven for having a good look.
There is no cfg80211 module present on the system (find /lib/modules/4.15.0-1032-aws/ -name *80211*). Package linux-modules-4.15.0-1032-aws is installed.
The module linux-modules-extra-4.15.0-1032 installs the following files:
/lib/modules/4.15.0-1032-gcp/kernel/net/wireless/cfg80211.ko /lib/modules/4.15.0-1032-gke/kernel/net/wireless/cfg80211.ko /lib/modules/4.15.0-1032-azure/kernel/net/wireless/cfg80211.ko
But this is not in the *-aws path.
On 7/6/19 2:16 PM, Sven Eckelmann wrote:
On Friday, 5 July 2019 16:51:56 CEST Moritz Warning wrote:
on an AWS server I get this error:
$ modprobe batman-adv $ dmesg ... [ 1310.125438] batman_adv: Unknown symbol cfg80211_get_station (err 0)
$ uname -a Linux ip-172-31-47-217 4.15.0-1032-aws #34-Ubuntu SMP Thu Jan 17 15:18:09 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
I have downloaded the headers [1] and they have following defined in include/config/cfg80211.h:
#if IS_ENABLED(CONFIG_CFG80211) /** * cfg80211_get_station - retrieve information about a given station * @dev: the device where the station is supposed to be connected to * @mac_addr: the mac address of the station of interest * @sinfo: pointer to the structure to fill with the information * * Returns 0 on success and sinfo is filled with the available information * otherwise returns a negative error code and the content of sinfo has to be * considered undefined. */ int cfg80211_get_station(struct net_device *dev, const u8 *mac_addr, struct station_info *sinfo); #else static inline int cfg80211_get_station(struct net_device *dev, const u8 *mac_addr, struct station_info *sinfo) { return -ENOENT; } #endif
So this function should be always defined by the kernel. Either through this header or through the cfg80211 module (which can be part of the kernel binary itself).
I have then downloaded the config deb [2]. It has the .config file included
$ grep CONFIG_CFG80211 usr/src/linux-headers-4.15.0-1032-aws/.config CONFIG_CFG80211=m # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_CERTIFICATION_ONUS is not set CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y CONFIG_CFG80211_DEFAULT_PS=y CONFIG_CFG80211_DEBUGFS=y CONFIG_CFG80211_CRDA_SUPPORT=y CONFIG_CFG80211_WEXT=y
So it is enabled as a module. So please load this module. And if it is not included in any package (what I am currently suspecting), please contact the maintainers [3]. They either have to ship the modules or disable any modules in their build. But building them and not shipping is breaking the dependencies of other modules (as shown by you).
Kind regards, Sven
[1] http://mirrors.kernel.org/ubuntu/pool/main/l/linux-aws/linux-aws-headers-4.1... [2] http://mirrors.kernel.org/ubuntu/pool/main/l/linux-aws/linux-headers-4.15.0-... [3] https://bugs.launchpad.net/ubuntu/+source/linux-aws/+filebug