在Ubuntu 14.04(Trusty Tahr)上为Broadcom BCM43142提供驱动程序。

我无法为我的Wi-Fi + 蓝牙卡(Broadcom BCM43142)安装驱动程序。
到目前为止,我已经尝试了以下方法:
1. 我尝试使用this网站上的驱动程序。 2. 我尝试按照here给出的指示进行apt-get安装、下载tar包并安装以及离线安装(从Ubuntu的引导DVD中)。 3. 我尝试安装bcmwl-kernel-source
在每种方法[1,2,3]的最后,当我执行sudo modprobe wl时,我总是会得到以下错误信息:
modprobe: ERROR: could not insert 'wl': Exec format error.
我还尝试过除wl之外的其他驱动程序加入黑名单,并多次尝试重新安装相同的驱动程序。
我还尝试使用了ndiswrapper,成功地使得未声明的驱动(请参见下面lshw -c Network的输出)变成了其他东西。
然而最后无线网络仍然没有显示或工作。
内核版本:3.13.0-24-generic 我已经尽力尝试了一切可能的方法。如果您能帮助我设置无线网络,将会非常有帮助。我愿意提供任何您要求我执行的命令的输出。(我已经添加了lshw -c Networklspci -nn的输出,但请随时询问我其他任何问题。)
lshw -c Network
WARNING: you should run this program as super-user.
  *-network UNCLAIMED     
       description: Network controller
       product: BCM43142 802.11b/g/n
       vendor: Broadcom Corporation
       physical id: 0
       bus info: pci@0000:02:00.0
       version: 01
       width: 64 bits
       clock: 33MHz
       capabilities: bus_master cap_list
       configuration: latency=0
       resources: memory:90500000-90507fff

lspci
02:00.0 Network controller [0280]: Broadcom Corporation BCM43142 802.11b/g/n [14e4:4365] (rev 01)

在终端中运行命令sudo apt-get install bcmwl-kernel-source,即可安装官方驱动程序(由Ubuntu提供)以支持此无线局域网卡。
sudo apt-get install bcmwl-kernel-source
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  wireless-bcm43142-oneiric-dkms
The following NEW packages will be installed:
  bcmwl-kernel-source
0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Need to get 0 B/1,126 kB of archives.
After this operation, 1,417 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 318223 files and directories currently installed.)
Removing wireless-bcm43142-oneiric-dkms (6.20.55.19~bdcom0602.0400.1000.0400-0somerville1) ...
Removing all DKMS Modules
Done.
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.103ubuntu4) ...
update-initramfs: Generating /boot/initrd.img-3.13.0-24-generic
Selecting previously unselected package bcmwl-kernel-source.
(Reading database ... 318162 files and directories currently installed.)
Preparing to unpack .../bcmwl-kernel-source_6.30.223.141+bdcom-0ubuntu2_amd64.deb ...
Unpacking bcmwl-kernel-source (6.30.223.141+bdcom-0ubuntu2) ...
Setting up bcmwl-kernel-source (6.30.223.141+bdcom-0ubuntu2) ...
Loading new bcmwl-6.30.223.141+bdcom DKMS files...
Building only for 3.13.0-24-generic
Building for architecture x86_64
Building initial module for 3.13.0-24-generic
Done.

wl:
Running module version sanity check.
 - Original module
 - Installation
   - Installing to /lib/modules/3.13.0-24-generic/updates/dkms/

depmod.......

DKMS: install completed.

这是我一直反复遇到的错误:
modprobe: ERROR: 无法插入 'wl':执行格式错误
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.103ubuntu4) ...
update-initramfs: Generating /boot/initrd.img-3.13.0-24-generic

另外,同样是什么意思?
我查看了以下的Ask Ubuntu问题:
- [如何为Dell Vostro 3460/3560安装BCM43142无线驱动程序?](link1) - [安装Broadcom无线驱动程序](link2)
第二个问题似乎是所有可能方法的非常全面的总结... 但我仍然被这个“Exec Format error”困扰着。

这个特定的驱动程序已经在这个网站上进行了覆盖这里。你试过那个吗? - Jos
@Jos 第一个答案对我没用!(同样的modprobe错误)。第二个答案似乎适用于很多人。我在其他论坛上也看到了相同的情况。但不幸的是,链接已经失效...谢谢你的回复 :) - Raghav RV
对我来说,这些链接都是有效的 - 特别是.deb文件的链接都可以使用(在某人的Dropbox中)。这似乎是你可以轻松尝试的事情。 - Jos
Dropbox的deb软件包不起作用,当我运行modprobe wl时,会再次抛出之前提到的错误。我指的是这个链接http://jas.gemnetworks.com。你能打开吗? - Raghav RV
哦,我现在明白你的意思了。没关系。 - Jos
你需要运行 sudo apt-get update,更新 pci 列表 请执行 sudo update-pciids 然后安装驱动程序:sudo apt-get install bcmwl-kernel-source - αғsнιη
我能够通过遵循Ayushya Chitransh在链接http://askubuntu.com/questions/553615上的建议来使我的新Lenovo G50-70 i5上的WLAN运行。 - user390309
5个回答

好的,所以我最终解决了这个问题 :D
首先,这是我在过程中学到的一些东西:
1. 不要随意地用不同的驱动程序或模块来破解你的操作系统,至少在没有 a) 知道你在做什么和为什么,以及 b) 最重要的是如何撤销相同操作之前,不要这样做。
2. 当你尝试不同的驱动程序、模块或包时,首先卸载你之前安装的同类软件包。
感谢 @chili555 指出前一个软件包的残留是问题的原因。
所以我做的是:
我尝试在一个运行着Ubuntu 14.04的实时系统上安装bcmwl-kernel-source,并通过有线网络检查无线局域网是否正常工作。(没错,确认了Ubuntu 14.04 / BCM43142 / bcmwl-kernel-source不是问题所在。)
我进入了/etc/modprobe.d目录,并与我硬盘安装版本中同名文件夹进行了对比。
这个/etc/modprobe.d目录包含了配置文件,其中包含了不同模块的黑名单信息。我记录下了可用的文件,然后从我的硬盘安装版本中的相同文件夹中删除了不存在的文件。
我进入了/lib/modules/3.*/updates/目录。这个目录存储了所有的模块(wl, b43等),也是我用各种自定义的wl模块补丁版本搞砸的地方,这些版本在各种论坛上都有列出。
在与我硬盘安装版本的lib/modules/3.*/updates/目录进行对比后,我手动删除了所有与蓝牙/无线/ dkms / wl(特别是mac80211)相关的模块,并清理了其他与无线局域网有关的模块。
最后,我用实时系统的相同目录替换(递归复制到)了我的硬盘安装版本的/etc/modprobe.d和/lib/modules/3.*/updates/目录。
重新启动电脑。
执行sudo apt-get install bcmwl-kernel-source命令。这是Ubuntu 14.04的BCM43142官方工作驱动程序。
重新启动电脑并执行sudo modprobe wl命令,无线网络就可以正常工作了!
最后,我要真诚地向所有在IRC中一再发布、重复发送这个问题的人道歉。 :P
注意:只有那些最近才安装操作系统的人才建议替换/删除硬盘安装文件。否则,您可能会替换/删除与此问题无关的其他设备已安装的文件/模块。
再次感谢chili555 :)
编辑:我最近更新了我的内核,以支持我的USB显示器的DisplayLink驱动程序,结果Wi-Fi消失了。
盲目尝试重新安装bcmwl-kernel-source时,在构建日志中出现了以下错误。
"alloc_netdev" requires 4 arguments, but only 3 given

原来驱动程序没有针对升级的内核(版本3.18)进行更新。通过一些搜索,我找到了这篇帖子 -

https://bugs.launchpad.net/ubuntu/+source/bcmwl/+bug/1358966

如果有可用的链接指向与升级内核兼容的wl的修补版本。

我手动下载并安装了this,无线网络恢复正常。

现在我可以安心地浏览lolcats了。阿门。


3我比较幸运。在更新后,我失去了我的WiFi连接。通过USB威胁,我只需执行你的8个步骤:sudo apt-get install bcmwl-kernel-source —— 然后瞬间恢复了。不需要重新启动就可以正常工作了。 - Felipe
这个答案是我找到的最可靠的,但对我来说没有起作用,我正在处理一个联想Z40和一个新安装的Ubuntu 16.04。有什么升级答案的指点吗? - Idea W
@IdeaW 你可能使用的是升级版的 Linux 内核,该内核与未修补的 wl 模块不兼容。也许可以尝试我的最新编辑,看看是否适用于你? - Raghav RV

我在安装Linux Mint、Ubuntu 13.10和14.04时也遇到了同样的问题。 我不得不使用LAN电缆或通过手机进行USB共享网络来安装bcmwl-kernel-source,这似乎是适用于我的DELL Inspiron 15的唯一可用的无线驱动程序。
然而,在运行后,我能够在软件更新的附加驱动程序部分看到bcmwl-kernel-source
sudo apt-get update

从终端上建立了通过局域网或USB共享网络连接之后,你会看到额外的驱动程序列表,我就是从那里很容易地安装了驱动程序。

我也曾经遇到过Ubuntu 11.10和12.10的同样问题。问题在于BCM43142 Sony VAIO FIT 15E上无法检测到Wi-Fi。因此,当我尝试安装Ubuntu 13.10时,在安装过程中勾选了“安装第三方软件”选项,这对我起了作用!请参见安装Ubuntu的第2步,子部分准备安装Ubuntu。你也可以尝试这个方法。

嗯...我记得我选择了第三方选项,因为我最近才安装了这个Ubuntu 14。但是现在有没有办法再次进行相同的操作而不必重新安装Ubuntu呢? - Raghav RV

我遇到了这个问题,为了解决它,我只需要运行下面的命令:
# (sudo rmmod b43 ; sudo rmmod bcma ; sudo rmmod wl ; sudo modprobe wl ; sudo modprobe lib80211_crypt_tkip)

似乎b43或bcma与wl模块发生了冲突。
希望能对某人有所帮助...

在Ubuntu 20.04上的HP笔记本上出现类似问题。 解决方案: 预先: 确定您的芯片组:
lspci -vvnn | grep -A 9 Network 

你会在第一行或第二行得到芯片的ID。(例如BCM4331) 实际解决方案 安装(如果通过以太网有互联网访问)Broadcom STA无线驱动程序(专有)。
sudo apt-get update
sudo apt-get --reinstall install bcmwl-kernel-source

测试并通过以下方式避免重新启动:
sudo modprobe -r b43 ssb wl brcmfmac brcmsmac bcma
sudo modprobe wl

这是从以下网页中提取的: 这个Ubuntu帮助页面

  • 相关问题