如何安装此修补的b43驱动程序?
最近我购买了一台MacBook Pro,它有一个BCM4331 802.11a / b / g / n WiFi卡,不能与默认内核一起使用。
-
sudo dmidecode -s system-product-name
MacBookPro8,2
lspci |grep 4331
03:00.0网络控制器:Broadcom Corporation BCM4331 802.11a / b / g / n(rev 02)
lspci -n |grep 4331
03:00.0 0280:14e4:4331(rev 02)
在做了一些初步研究之后,我看到了这篇文章 ,它提供了有关修补应支持4331设备的最新compat-wireless的分步说明:
但是,当我尝试将修补模块modprobe到最新的Ubuntu 11.10内核(3.0.0-12-generic)时,遵循这些指令会导致以下dmesg错误
[ 5373.408581] b43: Unknown symbol bcma_core_disable (err [ 5373.408685] b43: Unknown symbol bcma_core_pll_ctl (err 0) [ 5373.408695] b43: disagrees about version of symbol bcma_driver_unregister [ 5373.408698] b43: Unknown symbol bcma_driver_unregister (err -22) [ 5373.408712] b43: disagrees about version of symbol bcma_core_enable [ 5373.408715] b43: Unknown symbol bcma_core_enable (err -22) [ 5373.408727] b43: disagrees about version of symbol bcma_core_is_enabled [ 5373.408730] b43: Unknown symbol bcma_core_is_enabled (err -22) [ 5373.408745] b43: disagrees about version of symbol bcma_chipco_gpio_control [ 5373.408747] b43: Unknown symbol bcma_chipco_gpio_control (err -22) [ 5373.408782] b43: disagrees about version of symbol__bcma_driver_register [ 5373.408784] b43: Unknown symbol __bcma_driver_register (err -22) [ 5373.408796] b43: Unknown symbol bcma_core_set_clockmode (err 0) [ 5373.408822] b43: Unknown symbol bcma_core_dma_translation (err 0) [ 5373.408878] b43: Unknown symbol bcma_core_pci_irq_ctl (err 0)
任何人都可以指出我正确的方向,以帮助正确加载此模块?
首先确保您的机器中没有安装任何b43驱动程序…如果有卸载,请使用软件中心并搜索b43
- compat-wireless:访问Linux Wireless并下载compat-wireless-2.6.tar.bz2
- 最新版本的bw43-fwcutter (版本015)
- Broadcom提供固件的专有驱动程序
所有文件都可以存储在-home-youruser-downloads中 ….
用nautilus这个树文件提取….
接下来,启用b43驱动程序。
$ cd compat-wireless-2011-11-04 $ scripts/driver-select b43
确保已启用PHY_HT。 在文件config.mk中,应存在以下行并取消注释:
sudo nano config.mk
…
CONFIG_B43_PHY_HT = Y
…
编译并安装驱动程序:
$ make $ sudo make install $ cd ..
编译b43-fwcutter:
$ cd b43-fwcutter-015 $ make
固件:
$ export FIRMWARE_INSTALL_DIR="/lib/firmware" $ sudo ./b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" /home/YOURUSER/Downloads/broadcom-wl-5.100.138/linux/wl_apsta.o $ cd ..
卸载与无线相关的所有模块,并确保未加载ndiswrapper:
$ cd compat-wireless-2011-11-04 $ sudo make wlunload $ sudo rmmod ndiswrapper
添加到文件末尾的行:
sudo nano /etc/modprobe.d/blacklist.conf
…
黑名单ndiswrapper
…
为确保没有旧模块仍然加载,最好重启系统。 现在您应该能够加载并使用新编译的b43模块:
$ sudo modprobe b43
您可能希望将b43添加到启动时加载的模块列表中(此时,模块未自动加载)。 对于Ubuntu,在文件末尾添加以下行:
sudo nano /etc/modules
…
B43
…
使用suspend和hibernate时,驱动程序不能很好地运行。 在将笔记本电脑置于睡眠状态之前卸载模块并在唤醒后重新加载模块是必要的。 对于Ubuntu,只需创建文件(或附加到文件)即可
sudo /etc/pm/config.d/default
…
SUSPEND_MODULES = “B43”
…
注意:每次内核更新后,您必须重新编译新内核的模块:
$ cd compat-wireless-2011-11-04 $ make clean $ make $ sudo make install
PS:就像原始post我只调整配置文件的扩展名,因为有缺失,修复其他的东西和错误….
确保还将ssb和bcma列入黑名单。 Bcma导致3.0.0内核出现问题。 您可能只需将模块’b43,ssb,bcma’列入黑名单,然后执行depmod -a和modprobe wl然后另一个depmod -a或重新安装软件包并重新启动。 我希望这有帮助。
我不知道为什么文章的确切复制品得到2票。 这毫无用处。 我终于通过像Rock建议的那样卸载ssb和bcma来实现它。