我最近买了一台联想500-15ACZ笔记本,并在其上安装了Ubuntu 16.04。安装后,我发现我无法连接到Wifi。当我搜索这个问题时,这似乎是Broadcom无线网卡的常见问题。我在askubuntu上找到this question,并按照路易斯阿尔瓦拉多的回答的步骤。
命令lspci -nn -d 14e4:
告诉我,我的设备的pci.id是14e4:43ae rev 02
,这在Linux中还不支持。
然而,在GIT中,试图通过反向移植来解决这个脚本(link to project):Broadcom 14e4的Backport安装脚本:43ae wifi控制器故障
#!/bin/bash cd /tmp git clone https://github.com/kvalo/ath10k-firmware.git cd ath10k-firmware/QCA9377/hw1.0 sudo mkdir -p /lib/firmware/ath10k/QCA9377/hw1.0 sudo cp board.bin /lib/firmware/ath10k/QCA9377/hw1.0 sudo cp firmware-5.bin_WLAN.TF.1.0-00267-1 /lib/firmware/ath10k/QCA9377/hw1.0/firmware-5.bin sudo modprobe -r ath10k_pci cd /tmp wget https://www.kernel.org/pub/linux/kernel/projects/backports/2015/11/20/backports-20151120.tar.gz tar -xf backports-20151120.tar.gz cd backports-20151120 make defconfig-ath10k make sudo make install
但是,当我试图运行此,make
引发了以下错误:
Building backport-include/backport/autoconf.h ... done. CC [M] /tmp/backports-20151120/compat/main.o In file included from /tmp/backports-20151120/backport-include/backport/backport.h:7:0, from :0: ./include/asm-generic/qrwlock.h: In function ‘__qrwlock_write_byte’: /tmp/backports-20151120/backport-include/linux/kconfig.h:25:28: error: implicit declaration of function ‘config_enabled’ [-Werror=implicit-function-declaration] #define IS_BUILTIN(option) config_enabled(option) ^ ./include/asm-generic/qrwlock.h:156:26: note: in expansion of macro ‘IS_BUILTIN’ return (u8 *)lock + 3 * IS_BUILTIN(CONFIG_CPU_BIG_ENDIAN); ^ ./include/asm-generic/qrwlock.h:156:37: error: ‘CONFIG_CPU_BIG_ENDIAN’ undeclared (first use in this function) return (u8 *)lock + 3 * IS_BUILTIN(CONFIG_CPU_BIG_ENDIAN); ^ /tmp/backports-20151120/backport-include/linux/kconfig.h:25:43: note: in definition of macro ‘IS_BUILTIN’ #define IS_BUILTIN(option) config_enabled(option) ^ ./include/asm-generic/qrwlock.h:156:37: note: each undeclared identifier is reported only once for each function it appears in return (u8 *)lock + 3 * IS_BUILTIN(CONFIG_CPU_BIG_ENDIAN); ^ /tmp/backports-20151120/backport-include/linux/kconfig.h:25:43: note: in definition of macro ‘IS_BUILTIN’ #define IS_BUILTIN(option) config_enabled(option) ^ cc1: some warnings being treated as errors scripts/Makefile.build:294: recipe for target '/tmp/backports-20151120/compat/main.o' failed make[6]: *** [/tmp/backports-20151120/compat/main.o] Error 1 scripts/Makefile.build:567: recipe for target '/tmp/backports-20151120/compat' failed make[5]: *** [/tmp/backports-20151120/compat] Error 2 Makefile:1524: recipe for target '_module_/tmp/backports-20151120' failed make[4]: *** [_module_/tmp/backports-20151120] Error 2 Makefile.build:6: recipe for target 'modules' failed make[3]: *** [modules] Error 2 Makefile.real:88: recipe for target 'modules' failed make[2]: *** [modules] Error 2 Makefile:40: recipe for target 'modules' failed make[1]: *** [modules] Error 2 Makefile:30: recipe for target 'default' failed make: *** [default] Error 2 CC [M] /tmp/backports-20151120/compat/main.o In file included from /tmp/backports-20151120/backport-include/backport/backport.h:7:0, from :0: ./include/asm-generic/qrwlock.h: In function ‘__qrwlock_write_byte’: /tmp/backports-20151120/backport-include/linux/kconfig.h:25:28: error: implicit declaration of function ‘config_enabled’ [-Werror=implicit-function-declaration] #define IS_BUILTIN(option) config_enabled(option) ^ ./include/asm-generic/qrwlock.h:156:26: note: in expansion of macro ‘IS_BUILTIN’ return (u8 *)lock + 3 * IS_BUILTIN(CONFIG_CPU_BIG_ENDIAN); ^ ./include/asm-generic/qrwlock.h:156:37: error: ‘CONFIG_CPU_BIG_ENDIAN’ undeclared (first use in this function) return (u8 *)lock + 3 * IS_BUILTIN(CONFIG_CPU_BIG_ENDIAN); ^ /tmp/backports-20151120/backport-include/linux/kconfig.h:25:43: note: in definition of macro ‘IS_BUILTIN’ #define IS_BUILTIN(option) config_enabled(option) ^ ./include/asm-generic/qrwlock.h:156:37: note: each undeclared identifier is reported only once for each function it appears in return (u8 *)lock + 3 * IS_BUILTIN(CONFIG_CPU_BIG_ENDIAN); ^ /tmp/backports-20151120/backport-include/linux/kconfig.h:25:43: note: in definition of macro ‘IS_BUILTIN’ #define IS_BUILTIN(option) config_enabled(option) ^ cc1: some warnings being treated as errors scripts/Makefile.build:294: recipe for target '/tmp/backports-20151120/compat/main.o' failed make[5]: *** [/tmp/backports-20151120/compat/main.o] Error 1 scripts/Makefile.build:567: recipe for target '/tmp/backports-20151120/compat' failed make[4]: *** [/tmp/backports-20151120/compat] Error 2 Makefile:1524: recipe for target '_module_/tmp/backports-20151120' failed make[3]: *** [_module_/tmp/backports-20151120] Error 2 Makefile.build:6: recipe for target 'modules' failed make[2]: *** [modules] Error 2 Makefile.real:88: recipe for target 'modules' failed make[1]: *** [modules] Error 2 Makefile:40: recipe for target 'install' failed make: *** [install] Error 2
**Does anyone know how to fix this?**
Please let me know if you need any other info.
Thanks in advance!
更新: 我安装了broadcom- sta-dkms包如你所建议的。不幸的是,你是对的。这没有奏效。
当我试图WL驱动,dmesg | grep -i wl
回到
[但是,我怕我不知道这意味着什么。对于其他车手,dmesg什么也没有返回。12.459884] wl: loading out-of-tree module taints kernel. [ 12.459890] wl: module license 'MIXED/Proprietary' taints kernel. [ 12.468203] wl: module verification failed: signature and/or required key missing - tainting kernel [ 12.487603] wl driver 6.30.223.271 (r587334) failed with code 1001 [ 12.487606] ERROR @wl_cfg80211_detach : [ 12.487607] NULL ndev->ieee80211ptr, unable to deref wl
感谢详细的解答!我目前正在工作,但当我回家时我会尝试你的建议。至于剧本,我试图用这个,因为这个项目的描述说:“_A很小的脚本,应使件14e4:在Linux上43ae博通的Wi-Fi芯片组,我已经使用这个对我的联想IdeaPad 500S在的Wi- Fi在Linux上无法使用。“ – deadpool
不客气。是的,我还在Github上看到过这样的脚本,他们提到了Broadcom,但实际上下载了QCA软件包。这太奇怪了!我无法得到它。另外,请注意,由于我在原始版本中犯了一些错误,因此我做了一些编辑。也就是说,我不小心混淆了'wl'和'brcm80211'驱动程序 - 它们不一样。用两个词来说,在内核中可以使用'b43'(遗留,反向工程)和'brcm80211'(Broadcom的**开源**驱动程序)。 –
'wl'是Broadcom的另一个驱动程序 - 一个官方授权的驱动程序,它是单独发行的(Ubuntu的'broadcom-sta-dkms'软件包)。所以,现在我澄清了区别。有关更多信息,请参阅我的更新答案。 –