https://www.zhihu.com/question/50518514
http://blog.csdn.net/qq_30949367/article/details/50887135
03:00.0 Network controller: Broadcom Corporation BCM4352 802.11ac Wireless Network Adapter (rev 03)
[zzh@bogon hybrid-wl]$ make
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: Entering directory `/usr/src/kernels/3.10.0-327.el7.x86_64'
CFG80211 API is prefered for this kernel version
Using CFG80211 API
CC [M] /usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.o
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_cfg80211_get_station’:
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1460:20: error: ‘STATION_INFO_TX_BITRATE’ undeclared (first use in this function)
sinfo->filled |= STATION_INFO_TX_BITRATE;
^
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1460:20: note: each undeclared identifier is reported only once for each function it appears in
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1477:20: error: ‘STATION_INFO_SIGNAL’ undeclared (first use in this function)
sinfo->filled |= STATION_INFO_SIGNAL;
^
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c: At top level:
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1799:2: warning: initialization from incompatible pointer type [enabled by default]
.get_station = wl_cfg80211_get_station,
^
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1799:2: warning: (near initialization for ‘wl_cfg80211_ops.get_station’) [enabled by default]
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_alloc_wdev’:
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1894:22: error: incompatible types when assigning to type ‘const struct wiphy_wowlan_support *’ from type ‘struct wiphy_wowlan_support’
wdev->wiphy->wowlan = wl_wowlan_support;
^
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_inform_single_bss’:
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:2037:3: error: incompatible type for argument 3 of ‘cfg80211_inform_bss’
(const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
^
In file included from /usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
include/net/cfg80211.h:4029:1: note: expected ‘enum cfg80211_bss_frame_type’ but argument is of type ‘const u8 *’
cfg80211_inform_bss(struct wiphy *wiphy,
^
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:2037:3: warning: passing argument 7 of ‘cfg80211_inform_bss’ makes integer from pointer without a cast [enabled by default]
(const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
^
In file included from /usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
include/net/cfg80211.h:4029:1: note: expected ‘u16’ but argument is of type ‘const u8 *’
cfg80211_inform_bss(struct wiphy *wiphy,
^
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:2037:3: warning: passing argument 8 of ‘cfg80211_inform_bss’ makes pointer from integer without a cast [enabled by default]
(const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
^
In file included from /usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
include/net/cfg80211.h:4029:1: note: expected ‘const u8 *’ but argument is of type ‘size_t’
cfg80211_inform_bss(struct wiphy *wiphy,
^
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:2037:3: error: too few arguments to function ‘cfg80211_inform_bss’
(const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
^
In file included from /usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
include/net/cfg80211.h:4029:1: note: declared here
cfg80211_inform_bss(struct wiphy *wiphy,
^
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_notify_connect_status’:
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:2124:4: warning: passing argument 3 of ‘cfg80211_ibss_joined’ makes pointer from integer without a cast [enabled by default]
cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
^
In file included from /usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
include/net/cfg80211.h:4219:6: note: expected ‘struct ieee80211_channel *’ but argument is of type ‘unsigned int’
void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid,
^
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:2124:4: error: too few arguments to function ‘cfg80211_ibss_joined’
cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
^
In file included from /usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
include/net/cfg80211.h:4219:6: note: declared here
void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid,
^
make[2]: *** [/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.o] Error 1
make[1]: *** [_module_/usr/local/src/hybrid-wl] Error 2
make[1]: Leaving directory `/usr/src/kernels/3.10.0-327.el7.x86_64'
make: *** [all] Error 2
[zzh@bogon hybrid-wl]$
-----------------------------------------
作者:EricTang
链接:https://www.zhihu.com/question/50518514/answer/121747899
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
前两天已经解决了,现在把解决方法写下,方便有需要的人。
[user@host hybrid-wl]$ sed -i 's/ >= KERNEL_VERSION(3, 11, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
[user@host hybrid-wl]$ sed -i 's/ >= KERNEL_VERSION(3, 15, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
[user@host hybrid-wl]$ sed -i 's/ < KERNEL_VERSION(3, 18, 0)/ < KERNEL_VERSION(3, 9, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
[user@host hybrid-wl]$ sed -i 's/ >= KERNEL_VERSION(4, 0, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
------------------------------------------------------------
[zzh@bogon hybrid-wl]$ make
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: Entering directory `/usr/src/kernels/3.10.0-327.el7.x86_64'
CFG80211 API is prefered for this kernel version
Using CFG80211 API
CC [M] /usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.o
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1799:2: warning: initialization from incompatible pointer type [enabled by default]
.get_station = wl_cfg80211_get_station,
^
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1799:2: warning: (near initialization for ‘wl_cfg80211_ops.get_station’) [enabled by default]
LD [M] /usr/local/src/hybrid-wl/wl.o
Building modules, stage 2.
CFG80211 API is prefered for this kernel version
Using CFG80211 API
MODPOST 1 modules
CC /usr/local/src/hybrid-wl/wl.mod.o
LD [M] /usr/local/src/hybrid-wl/wl.ko
make[1]: Leaving directory `/usr/src/kernels/3.10.0-327.el7.x86_64'
[zzh@bogon hybrid-wl]$
------------------------------------------------------------------------
[zzh@bogon hybrid-wl]$ ls
built-in.o Makefile Module.symvers wl.ko wl.mod.o
lib modules.order src wl.mod.c wl.o
[zzh@bogon hybrid-wl]$
-----------------------------------------------------------