Broadcom wifi (BCM4318) on Ubuntu 11.10

I replaced a home server with new one. Old server was powered by OpenSuse 10.1 (it worked pretty long time %)) and it was connected to Internet by wifi.
I remember how I spent several days, trying to enable Broadcom BCM4318 [AirForce One 54g] 802.11g Wireless LAN PCI card.
This time it took me half an hour. Most of the time I was looking for a way to enable b43 module on computer start.

Here is my lspci output:

03:00.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)
	Subsystem: ASUSTeK Computer Inc. WL-138G v2 / WL-138gE / WL-100gE
	Flags: bus master, fast devsel, latency 64, IRQ 16
	Memory at dfafe000 (32-bit, non-prefetchable) [size=8K]
	Kernel driver in use: b43-pci-bridge
	Kernel modules: ssb

I needed just to run the following commands:

$ sudo apt-get install firmware-b43-installer
$ sudo modprobe -r b43 ssb
$ sudo modprobe b43

This enabled b43 module and wifi connection started working like charm. The problem appeared, when I wanted this module to be enabled during boot.

Solution was found in comments to this post Ubuntu 11.10 getting wireless BCM4311 working

1. comment blacklisted b43 module in /etc/modprobe.d/broadcom-sta-common.conf

# wl module from Broadcom conflicts with ssb
# We must blacklist the following modules:
blacklist b44
#blacklist b43legacy
#blacklist b43
blacklist brcm80211
blacklist brcmsmac
blacklist ssb
install wl /sbin/modprobe --ignore-install wl $CMDLINE_OPTS

2. add new line “b43″ to /etc/modules
In my case it looked as following:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

loop
lp
b43