There are a few methods to use Broadcom BCM43XX wifi chipsets in past but now it is suggested to use
b43 kernel module.
Most of the time, b43 kernel module working properly. But in some systems (especially with BCM4331 found on Apple iMAC) packets start to drop after a few minutes of normal working. If you sniff your wireless traffic when you have this problem, you can see that ARP traffics still working on your network and you can get those packets properly but you can't make any new TCP or UDP connections. It can be a bug in firmware or driver and there is a workaround. You have to disable
qos and hardware encryption in b43 module. To make this module options permanent, it must be in a
.conf file under
/etc/modprobe.d directory. We can create a new config file like below:
echo "options b43 qos=0 nohwcrypt=1" | sudo tee /etc/modprobe.d/wireless.conf
After that you have to remove b43 module and load it again or reboot your system.