![debian jessie 向后移植 wifi 和蓝牙](https://linux22.com/image/76310/debian%20jessie%20%E5%90%91%E5%90%8E%E7%A7%BB%E6%A4%8D%20wifi%20%E5%92%8C%E8%93%9D%E7%89%99.png)
我正在运行 debian 8,我需要更新 bluez 和 debian 内核。 Bluez 需要高于 5.23 才能使具有 LE 的蓝牙或智能蓝牙设备正常工作。
我使用的是 Mac,我需要安装 Broadcom 无线驱动程序才能使我的 WiFi 正常工作。
如果我避免在向后移植中将内核更新到 4.2.0,我可以按照概述的步骤操作这里然后我的 wifi 工作正常,但我的蓝牙设备无法工作。
如果我升级到最新的内核,我的蓝牙设备将无法工作。当我将其与 bluetoothctl 配对并连接时它可以工作,但是一旦我停止移动鼠标,它就会取消配对并死亡。我必须再次重新配对/重新连接。新内核解决了这个问题。
所以我想尝试修复我的无线网络。
我按照以下步骤操作维基百科
当我尝试运行时,sudo modprobe wl
我得到 modprobe: FATAL: Module wl not found。
uname -r 4.2.0-0.bpo.1-amd64
cat /var/lib/dkms/broadcom-sta/6.30.223.248/build/make.log
返回此值并显示存在一些构建错误:
sudo apt-get install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') broadcom-sta-dkms
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
broadcom-sta-dkms linux-headers-amd64
0 upgraded, 2 newly installed, 0 to remove and 29 not upgraded.
Need to get 0 B/2,175 kB of archives.
After this operation, 14.5 MB of additional disk space will be used.
Selecting previously unselected package broadcom-sta-dkms.
(Reading database ... 171210 files and directories currently installed.)
Preparing to unpack .../broadcom-sta-dkms_6.30.223.248-3_all.deb ...
Unpacking broadcom-sta-dkms (6.30.223.248-3) ...
Selecting previously unselected package linux-headers-amd64.
Preparing to unpack .../linux-headers-amd64_3.16+63_amd64.deb ...
Unpacking linux-headers-amd64 (3.16+63) ...
Setting up broadcom-sta-dkms (6.30.223.248-3) ...
Loading new broadcom-sta-6.30.223.248 DKMS files...
First Installation: checking all kernels...
Building only for 4.2.0-0.bpo.1-amd64
Building initial module for 4.2.0-0.bpo.1-amd64
Error! Bad return status for module build on kernel: 4.2.0-0.bpo.1-amd64 (x86_64)
Consult /var/lib/dkms/broadcom-sta/6.30.223.248/build/make.log for more information.
Setting up linux-headers-amd64 (3.16+63) ...
blubee@naibed:~$ vi /var/lib/dkms/broadcom-sta/6.30.223.248/build/make.log
blubee@naibed:~$ cat /var/lib/dkms/broadcom-sta/6.30.223.248/build/make.log
DKMS make.log for broadcom-sta-6.30.223.248 for kernel 4.2.0-0.bpo.1-amd64 (x86_64)
Sat Oct 31 10:52:17 CST 2015
/bin/sh: 1: [: Illegal number:
/bin/sh: 1: [: Illegal number:
Wireless Extension is the only possible API for this kernel version
Using Wireless Extension API
KBUILD_NOPEDANTIC=1 make -C /lib/modules/4.2.0-0.bpo.1-amd64/build M=`pwd`
make[1]: Entering directory '/usr/src/linux-headers-4.2.0-0.bpo.1-amd64'
CFG80211 API is prefered for this kernel version
Using CFG80211 API
Kernel architecture is X86_64
LD /var/lib/dkms/broadcom-sta/6.30.223.248/build/built-in.o
CC [M] /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/shared/linux_osl.o
CC [M] /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_linux.o
CC [M] /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_iw.o
CC [M] /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.o
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_cfg80211_get_key’:
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:1390:9: warning: passing argument 1 of ‘memcpy’ discards ‘const’ qualifier from pointer target type
memcpy(params.key, key.data, params.key_len);
^
In file included from /usr/src/linux-headers-4.2.0-0.bpo.1-common/arch/x86/include/asm/string.h:4:0,
from /usr/src/linux-headers-4.2.0-0.bpo.1-common/include/linux/string.h:17,
from /usr/src/linux-headers-4.2.0-0.bpo.1-common/include/linux/bitmap.h:8,
from /usr/src/linux-headers-4.2.0-0.bpo.1-common/include/linux/cpumask.h:11,
from /usr/src/linux-headers-4.2.0-0.bpo.1-common/arch/x86/include/asm/cpumask.h:4,
from /usr/src/linux-headers-4.2.0-0.bpo.1-common/arch/x86/include/asm/msr.h:10,
from /usr/src/linux-headers-4.2.0-0.bpo.1-common/arch/x86/include/asm/processor.h:20,
from /usr/src/linux-headers-4.2.0-0.bpo.1-common/arch/x86/include/asm/thread_info.h:49,
from /usr/src/linux-headers-4.2.0-0.bpo.1-common/include/linux/thread_info.h:54,
from /usr/src/linux-headers-4.2.0-0.bpo.1-common/arch/x86/include/asm/preempt.h:6,
from /usr/src/linux-headers-4.2.0-0.bpo.1-common/include/linux/preempt.h:64,
from /usr/src/linux-headers-4.2.0-0.bpo.1-common/include/linux/spinlock.h:50,
from /usr/src/linux-headers-4.2.0-0.bpo.1-common/include/linux/seqlock.h:35,
from /usr/src/linux-headers-4.2.0-0.bpo.1-common/include/linux/time.h:5,
from /usr/src/linux-headers-4.2.0-0.bpo.1-common/include/linux/stat.h:18,
from /usr/src/linux-headers-4.2.0-0.bpo.1-common/include/linux/module.h:10,
from /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/include/linuxver.h:40,
from /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:26:
/usr/src/linux-headers-4.2.0-0.bpo.1-common/arch/x86/include/asm/string_64.h:34:14: note: expected ‘void *’ but argument is of type ‘const u8 *’
extern void *memcpy(void *to, const void *from, size_t len);
^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_cfg80211_get_station’:
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:1444:20: error: ‘STATION_INFO_TX_BITRATE’ undeclared (first use in this function)
sinfo->filled |= STATION_INFO_TX_BITRATE;
^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:1444:20: note: each undeclared identifier is reported only once for each function it appears in
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:1457:20: error: ‘STATION_INFO_SIGNAL’ undeclared (first use in this function)
sinfo->filled |= STATION_INFO_SIGNAL;
^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c: At top level:
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:1778:2: warning: initialization from incompatible pointer type
.get_station = wl_cfg80211_get_station,
^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:1778:2: warning: (near initialization for ‘wl_cfg80211_ops.get_station’)
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_inform_single_bss’:
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:2013:9: error: incompatible type for argument 3 of ‘cfg80211_inform_bss’
cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet),
^
In file included from /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
/usr/src/linux-headers-4.2.0-0.bpo.1-common/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,
^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:2015:3: warning: passing argument 7 of ‘cfg80211_inform_bss’ makes integer from pointer without a cast
(const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
^
In file included from /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
/usr/src/linux-headers-4.2.0-0.bpo.1-common/include/net/cfg80211.h:4029:1: note: expected ‘u16’ but argument is of type ‘const u8 *’
cfg80211_inform_bss(struct wiphy *wiphy,
^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:2015:26: warning: passing argument 8 of ‘cfg80211_inform_bss’ makes pointer from integer without a cast
(const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
^
In file included from /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
/usr/src/linux-headers-4.2.0-0.bpo.1-common/include/net/cfg80211.h:4029:1: note: expected ‘const u8 *’ but argument is of type ‘size_t’
cfg80211_inform_bss(struct wiphy *wiphy,
^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:2013:9: error: too few arguments to function ‘cfg80211_inform_bss’
cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet),
^
In file included from /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
/usr/src/linux-headers-4.2.0-0.bpo.1-common/include/net/cfg80211.h:4029:1: note: declared here
cfg80211_inform_bss(struct wiphy *wiphy,
^
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_notify_connect_status’:
/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:2050:4: error: too few arguments to function ‘cfg80211_disconnected’
cfg80211_disconnected(ndev, 0, NULL, 0, GFP_KERNEL);
^
In file included from /var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.c:33:0:
/usr/src/linux-headers-4.2.0-0.bpo.1-common/include/net/cfg80211.h:4584:6: note: declared here
void cfg80211_disconnected(struct net_device *dev, u16 reason,
^
/usr/src/linux-headers-4.2.0-0.bpo.1-common/scripts/Makefile.build:263: recipe for target '/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.o' failed
make[4]: *** [/var/lib/dkms/broadcom-sta/6.30.223.248/build/src/wl/sys/wl_cfg80211_hybrid.o] Error 1
/usr/src/linux-headers-4.2.0-0.bpo.1-common/Makefile:1403: recipe for target '_module_/var/lib/dkms/broadcom-sta/6.30.223.248/build' failed
make[3]: *** [_module_/var/lib/dkms/broadcom-sta/6.30.223.248/build] Error 2
Makefile:146: recipe for target 'sub-make' failed
make[2]: *** [sub-make] Error 2
Makefile:8: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.2.0-0.bpo.1-amd64'
Makefile:158: recipe for target 'all' failed
make: *** [all] Error 2
这就是构建日志。有没有什么合理的方法可以让我也拥有 wifi 和蓝牙 LE?
我在 ubuntu 错误跟踪器上发现了这个错误列表:https://bugs.launchpad.net/ubuntu/+source/broadcom-sta/+bug/1504975
看来我不是唯一面临这个问题的人。
答案1
https://launchpad.net/~longsleep/+archive/ubuntu/bcmwl 应该修一下wifi
你应该能够安装它
sudo add-apt-repository ppa:longsleep/bcmwl
sudo apt-get update
sudo apt-get install bcmwl-kernel-source
重启