Linux Mint 17.3 wifi keeps disconnecting


As title says my wifi connection keeps dropping, sometimes after 10 minutes, sometimes after a few hours after connecting.

I have searched for the solution and looks like it's the common problem on linux machines.

I've done all updates, but I'm not sure what to think about my driver version, and what else to try.

Here is information about my computer:

Computer: HP Elitebook 840
OS: Linux Mint 17.3 Cinnamon 64-bit
Cinnamon version: 2.8.6
Kernel: 3.19.0-generic

When I run lshw -c network command:

       description: Ethernet interface
       product: Ethernet Connection I218-LM
       vendor: Intel Corporation
       physical id: 19
       bus info: pci@0000:00:19.0
       logical name: eth0
       version: 04
       serial: 64:51:06:9e:b0:62
       capacity: 1Gbit/s
       width: 32 bits
       clock: 33MHz
       capabilities: bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=2.3.2-k firmware=0.3-4 latency=0 link=no multicast=yes port=twisted pair
       resources: irq:50 memory:d0700000-d071ffff memory:d073e000-d073efff ioport:3080(size=32)
       description: Wireless interface
       product: BCM43228 802.11a/b/g/n
       vendor: Broadcom Corporation
       physical id: 0
       bus info: pci@0000:02:00.0
       logical name: wlan0
       version: 00
       serial: 18:cf:5e:81:b5:fd
       width: 64 bits
       clock: 33MHz
       capabilities: bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=wl0 driverversion= (r487574) ip= latency=0 multicast=yes wireless=IEEE 802.11abg
       resources: irq:19 memory:d0500000-d0503fff

I don't know what else to say. Hopefully you can help me to find the solution.


Here is information about my wifi connection:

Frequency:2.412 GHz (Channel 1)
Quality=52/70  Signal level=-58 dBm
IE: IEEE 802.11i/WPA2 Version 1
    Group Cipher : CCMP
    Pairwise Ciphers (1) : CCMP
    Authentication Suites (1) : PSK

And output for tail -f /var/log/dmesg:

[    7.142644] init: failsafe main process (762) killed by TERM signal
[    7.281183] init: samba-ad-dc main process (894) terminated with status 1
[    7.862247] media: Linux media interface: v0.10
[    7.870277] Linux video capture interface: v2.00
[    7.965046] uvcvideo: Found UVC 1.00 device HP HD Webcam (05c8:0369)
[    7.973955] input: HP HD Webcam as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/input/input25
[    7.974072] usbcore: registered new interface driver uvcvideo
[    7.974076] USB Video Class driver (1.1.1)
[    8.140923] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    8.172888] input: ST LIS3LV02DL Accelerometer as /devices/platform/lis3lv02d/input/input26


Output for lspci -vnn | grep -i net:

00:19.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection I218-LM [8086:155a] (rev 04)
02:00.0 Network controller [0280]: Broadcom Corporation BCM43228 802.11a/b/g/n [14e4:4359]

Best Answer

Most likely, the answer lies in following in detail (I'll explain in a second) the instructions in this Askubuntu reply. Let me remark that:

  1. The proprietary driver, wl is of considerably lower quality than the OpenSource one, b43. There are many reasons for this, but, blurb notwithstanding, your case is a perfect proof of this. Just remember though that the FOSS driver b43 still misses some features, the most noteworthy of which is an ability to operate at 5GHz. The list of currently missing features can be found at the second link above.

  2. b43 and wl support, to a large extent, the same devices (not exactly, but close). To prevent possible mistakes, the installation of wl blacklists b43. This is what, on the first reference above, modifying the file /etc/modprobe.d/blacklist.conf is all about. So, removing the package bcmwl-kernel-source is not, by itself, enough to allow b43 to work, one also needs to make sure that the module b43 is not blacklisted. This is, most likely, the reason why you failed to make b43 work the first time around, and the reason why I suggested you follow the instructions above closely.

  3. Though the driver b43 is OpenSource, a component in it (the so-called firmware) is proprietary; for this reason the purest among all Linux distributions (Debian, Arch,...) do not provide the driver and its accompanying firmware out of the box (nor the proprietary driver, either). Yet both drivers and the firmware can be downloaded in all distros. For what little experience I have, this is the major stumbling block for people who just moved to Linux from Windows or MacOS.

Should you run into other problems in the future, make sure you check the list of currently unavailable features (second reference above), it might spare you running into a wall.