我无法让 14.04 版的 Broadcom BCM4331 wifi 工作

我无法让 14.04 版的 Broadcom BCM4331 wifi 工作

我昨晚刚刚在 2012 年中期的 MacBook 上安装了 14.04,我非常喜欢它。除了我花了 24 小时尝试让我的 wifi 正常工作之外。

以下是一些信息:

02:00.0 Network controller: Broadcom Corporation BCM4331 802.11a/b/g/n (rev 02)

我已经尝试过此网站上的所有方法,除了:

bcmwl-kernel-source通过在终端上发出以下命令来卸载该软件包:

sudo apt-get remove bcmwl-kernel-source

确保firmware-b43-installerb43-fwcutter 包已经安装(当然你还需要通过其他方式上网):

sudo apt-get install firmware-b43-installer b43-fwcutter

在终端中输入:

cat /etc/modprobe.d/* | egrep 'bcm'

(您可能想要复制此内容)并查看是否存在术语“blacklist bcm43xx”。如果存在,请输入:

cd /etc/modprobe.d/

进而

sudo gedit blacklist.conf

#在该行前面放置一个: blacklist bcm43xx,然后保存文件(我在终端中收到有关无法保存的错误消息,但实际上它确实保存正确)。

重启

这可行吗?如果不行,有人能提出解决方案吗?

答案1

我只是从 lspci 命令中复制了驱动程序信息,然后在此网站上搜索。我在Wi-Fi 在 Ubuntu 12.04 上的 Macbook Pro 8.2 上运行

我必须改变一些东西才能让它为我工作。以下是我所做的:

在终端中运行以下命令:

sudo apt-get install b43-fwcutter firmware-b43-installer
sudo dpkg-reconfigure firmware-b43-installer

并且会发生大量的提取。

然后输入:

dmesg | tail -2

您将收到如下回复:

[ 5866.172626] ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 5870.282827] applesmc: FS! : read arg fail

答案2

  1. 首先更新 apt-get:

    apt-get update

  2. 然后更新Linux Image,Linux Headers(此代码将确定你的系统必要的标头)并安装 Broadcom DKMS:

    apt-get install linux-image-$(uname -r|sed 's,[^-]*-[^-]*-,,') linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') broadcom-sta-dkms

  3. 删除 Broadcom WiFi 适配器的所有可能活动的驱动程序:

    modprobe -r b44 b43 b43legacy ssb brcmsmac bcma

  4. 激活 Broadcom WiFi 适配器的 wl 驱动程序:

    modprobe wl

  5. 完成以下操作后最好重新启动系统:

    reboot

答案3

我的脚本:

#!/bin/sh
#
# install_bcm43xx_firmware
#
# This script tries to download and install the firmware needed to run
# WLAN cards using Broadcom's bcm43xx chips.

# firmware for b43
URL1=http://www.lwfinger.com/b43-firmware
FILE1=broadcom-wl-5.100.138.tar.bz2
FIRMWARE1=broadcom-wl-5.100.138/linux/wl_apsta.o

# firmware for b43legacy
URL2=http://downloads.openwrt.org/sources
FILE2=wl_apsta-3.130.20.0.o

test -z "$( type -p curl)" && { echo "'curl' is not installed, aborting. Please install 'curl' and try again."; exit 1; }
test -z "$( type -p b43-fwcutter)" && { echo "'b43-fwcutter' is not installed, aborting. Please install 'b43-fwcutter' and try again."; exit 1; }
test -d /lib/firmware || mkdir -p /lib/firmware

TMPDIR=$(mktemp -d /var/tmp/bcm.XXXXXX) || exit 1

pushd $TMPDIR >/dev/null

echo "Downloading b43 firmware"
curl -# -f -o $FILE1 $URL1/$FILE1
if [ $? -eq 0 ];then
    echo "Extracting b43 firmware"
    tar xjf $FILE1
    b43-fwcutter -w /lib/firmware $FIRMWARE1
else
    echo "Could not download b43 firmware. Please look at /usr/share/doc/packages/b43-fwcutter/README."
fi

echo
echo "Downloading b43legacy firmware"
curl -# -f -o $FILE2 $URL2/$FILE2
if [ $? -eq 0 ];then
    echo "Extracting b43legacy firmware"
    b43-fwcutter -w /lib/firmware $FILE2
else
    echo "Could not download b43legacy firmware. Please look at /usr/share/doc/packages/b43-fwcutter/README."
fi

echo
if [ -d /lib/firmware/b43 ] ; then
    echo "b43 firmware successfully installed."
    sync && sync
    /sbin/modprobe -r b43
    /sbin/modprobe b43
else
    echo "b43 firmware installation failed."
fi
if [ -d /lib/firmware/b43legacy ] ; then
    echo "b43legacy firmware successfully installed."
    sync && sync
    /sbin/modprobe -r b43legacy
    /sbin/modprobe b43legacy
else
    echo "b43legacy firmware installation failed."
fi

popd >/dev/null
rm -rf $TMPDIR

exit 0

要使用,请将内容复制到具有此名称的本地文件中:

install_bcm4331.sh

然后使文件可执行

chmod +x install_bcm4332.sh

然后运行脚本

sudo ./install_bcm4332.sh

如果希望在启动系统时运行该脚本,请将该文件复制到/etc/rc.d/init.d/目录下。

相关内容