Internet fluctuates greatly on old MacBook pro

I bought a MacBook Pro running Arch Linux back in 2012 which started to have issues a few days ago. Internet fluctuates a lot, even though I have been using BRM4331 network card. If I run mtr, it shows that a lot of packets are lost during the transition. It happens on the very first step (_gateway) and I have no idea why. Can someone look into the issue and help me establish the problem and then how to fix it?

Here’s few steps to tackle the fluctuation

  1. Use a computer with a broadcom network card that requires the broadcom-wl driver
  2. Scan for networks (or try to connect to a wpa-authenticated network) with wpa_supplicant (or, in my case, NetworkManager)
  3. The scan will fail and log the above failures

Hey there!
The broadcom-wl driver. It used to be portrayed in the Wiki as being something to avoid, but that has changed recently. It offers a better connection and much faster speeds, but can take a little bit more effort to set up. Just a bit.

Broadcom-wl Installation and Setup

  1. Install broadcom-wl from the AUR.
  2. Uninstall b43-firmware if it’s installed.
  3. Note what broadcom-wl has put into /etc/modprobe.d. These blacklistings will ensure no interference from other kernel modules. Also make sure you’re not blacklisting wl or its friends, if you have been.
  4. Don’t reboot yet. Go to /sys/class/net and use the command:

udevadm info -a -p /sys/class/net/ | grep address | tr [A-Z] [a-z]

(of course replacing with the names of your interfaces - probably eth0 and wlan0) This will tell you their MAC addresses. Write these down!
5. Go to /etc/udev/rules.d/ and create a file called 10-network.rules. We are going to make custom udev rules so that our interfaces are matched to their proper names at boot time. Here is a template:

SUBSYSTEM==“net”, ATTR{address}==“aa:bb:cc:dd:ee:ff”, NAME=“net0”
SUBSYSTEM==“net”, ATTR{address}==“ff:ee:dd:cc:bb:aa”, NAME=“wifi0”

Enter the MAC addresses (in lower case!) and give them names in the NAME field. Apparently it’s a good idea to choose new interface names, different from the default eth0 and wlan0. My file looks like this:

SUBSYSTEM==“net”, ATTR{address}==“58:b0:35:f6:45:0c”, NAME=“wired0”
SUBSYSTEM==“net”, ATTR{address}==“f8:1e:df:ea:99:17”, NAME=“wifi0”

  1. Go change ANYTHING that had references to the old interface names. I had to change my rc.conf, as well as settings in my wicd preferences so that it knows what names to look for.
  2. Rebuild your kernel image with
sudo mkinitcpio -p linux

(you might not have to do this, but it couldn’t hurt.)
8. Save this page. Yes, the html. This is so that you still know what to do in case of problems and no internet.
9. Reboot and enjoy your restored wireless internet.