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.
- the patches, here
- the latest version of bw43-fwcutter (version 015)
- Broadcom's proprietary driver to extract the firmware
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=yCompile and Install the driver
# makeUnpack and Compile b43-fwcutter:
# sudo make install
# tar xf b43-fwcutter-015.tar.bz2Extract the firmware
# cd b43-fwcutter-015
# tar xf ../broadcom-wl-5.100.138.tar.bz2Unload all related modules that use wireless
# export FIRMWARE_INSTALL_DIR="/lib/firmware"
# sudo ./b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" broadcom-wl-5.100.138/linux/wl_apsta.o
# cd compat-wireless-2011-08-27Reboot your system and load compiled Wireless b43 module
# sudo make wlunload
# sudo modprobe b43Next, 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.oldNext, 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)
# echo "b43" | sudo tee -a /etc/modules
# cp /etc/pm/config.d/default /etc/pm/config.d/default.oldYes it is.. I realy hope this will fix the MBP Wireless problem issue.
# echo 'SUSPEND_MODULES="b43"' >> /etc/pm/config.d/default