ashar_oz contact
Chief author, Open Source enthusiast, Web Programmer, and UI/UX Designer.
Thursday, October 6, 2011 at 04:00

Like what previously wrote in Install Ubuntu Natty in MacBook Pro some user found several problem with wireless (Broadcom BCM4331) so make their  system got freeze and need to be restart forcibly. That's Problem usually occur when we use ndiswrapper not only in MacBook Pro but also some laptop, I've experienced it in my former laptop Acer 4520.

Referencing to Raimar Sandner blog, there is a good news for us because we can use MacBook Pro 8.1 Wireless directly without Ndiswraper, so you can avoid a system freeze as before. To perform this, you need to compile the driver and patch the kernel, read following step to Fix MacBook Pro Wireless (Broadcom BCM4331) Problem issue in Ubuntu.

Install All Required Application
Before it's start, install your system with required application bellow :

sudo apt-get install build-essential automake make


Download the Patch
Download Following Source for compiling the driver (Broadcom BCM4331) and patching the kernel.


Patching and Compiling
Make a folder named bcm4331 and put all file you have download there, then
# tar xf compat-wireless-2011-08-27.tar.bz2
# tar xf patch_bcm4331.tar.bz2
# cd compat-wireless-2011-08-27/
# patch -p1 < ../bcm4331-1.patch
# patch -p1 < ../bcm4331-2.patch
# patch -p1 < ../bcm4331-3.patch

Next, enable the driver
# scripts/driver-select b43

Next, go to config.mk, find  row 276 and remove `#`, so that become
CONFIG_B43_PHY_HT=y
Compile and Install the driver
# make
# sudo make install
Unpack and Compile b43-fwcutter:
# tar xf b43-fwcutter-015.tar.bz2
# cd b43-fwcutter-015
# make
Extract the firmware
# tar xf ../broadcom-wl-5.100.138.tar.bz2
# export FIRMWARE_INSTALL_DIR="/lib/firmware"
# sudo ./b43-fwcutter -w "$FIRMWARE_INSTALL_DIR"  broadcom-wl-5.100.138/linux/wl_apsta.o
Unload all related modules that use wireless
# cd compat-wireless-2011-08-27
# sudo make wlunload
Reboot your system and load compiled Wireless b43 module
# sudo modprobe b43
Next, add the b43 to the list of modules so the system will load them on startup (the module is not automatically loaded).
# cp /etc/modules /etc/modules.old
# echo "b43" | sudo tee -a /etc/modules
Next, Sometimes the driver does not work properly after suspend and hibernate. It is necessary to unload the module before putting the laptop to sleep and to reload it after wake up. For Ubuntu, it is sufficient to create the file (or append to the file)
# cp /etc/pm/config.d/default /etc/pm/config.d/default.old
# echo 'SUSPEND_MODULES="b43"' >> /etc/pm/config.d/default
Yes it is.. I realy hope this will fix the MBP Wireless problem issue.