-
-
Save torresashjian/e97d954c7f1554b6a017f07d69a66374 to your computer and use it in GitHub Desktop.
| sudo apt-get purge bcmwl-kernel-source | |
| sudo apt update | |
| sudo update-pciids | |
| sudo apt install firmware-b43-installer | |
| sudo reboot #note that this will restart your computer | |
| sudo iwconfig wlp3s0 txpower 10dBm | |
| #sudo iwconfig wlp2s0 txpower 10dBm |
@jonpontet I am going to try this
https://easylinuxtipsproject.blogspot.com/p/root-command-startup.html
to see if it will automatically run the command on reboot, which does not really address the problem, but will save some time
@jonpontet the above worked for me. In step #4 and #8 you must replace "xed" by "gedit" . I replaced "5" by "10" in step #5. Hope it works for you.
I got the same procedure to work for Kali Linux 2023.3 on a late 2013 MBP. The only difference is the adapter designation in Kali is simply wlan0. However, the procedure is solid and worked on the first attempt. Thanks for posting this!
Thanks, this worked great!
How can this step possibly work?
- sudo apt install firmware-b43-installer
The installer goes and tries to download this file:
https://www.lwfinger.com/b43-firmware/broadcom-wl-6.30.163.46.tar.bz2
Which is impossible if you don't already have wifi connection to begin with...
@satellite73 same for me -- I have to run the command
sudo iwconfig wlp2s0 txpower 10dBmafter each reboot. I have not yet found a solution.
This worked for me:
sudo nano /etc/systemd/system/set-wifi-power.service
Enter the following:
[Unit]
Description=Set Wi-Fi transmit power
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/sbin/iwconfig wlp3s0 txpower 10dBm
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Now enable the service:
sudo systemctl enable set-wifi-power.service
reboot
I had the problem on my old i7 MacBook Pro 2016 (MacBookPro13,3), running Ubuntu 24.04.2 LTS. The Macbook did have WiFi, could detect access points, etc., but simply wouldn't accept the password and would refuse to connect, asking me for the password over and over again.
So I set out to fix it and found this post. I'll give my experiences.
I took the exact following steps in a shell, as per the recommendations:
sudo apt-get purge bcmwl-kernel-source
sudo apt update
sudo update-pciids
sudo apt install firmware-b43-installer
sudo reboot
After reboot, typed:
sudo iwconfig wlp3s0 txpower 10dBm
Connected, and it worked, my password was accepted and I had the internet connection working fine.
Then I did what phpmaven did, because I wanted this to be permanent (but using vi, I'm a vi-man ;)):
sudo vi /etc/systemd/system/set-wifi-power.service
Entered following:
[Unit]
Description=Set Wi-Fi transmit power
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/sbin/iwconfig wlp3s0 txpower 10dBm
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Enabled the service:
sudo systemctl enable set-wifi-power.service
Rebooted.
And now my WiFi fully works.
However, after doing all that, I got to think a bit more. I think that the problem was not the firmware at all, because my system could scan the WiFi access points even before installing the b43 driver. It might have simply been that the WiFi was in some low-power or simply some unsupported power TX mode, which caused timeouts or drops on the communication with the access point (I saw some messages about timeouts in the system journal). Even though my laptop is only 1 meter away from the access point.
To test my theory, I went back to an older install from before I installed the b43 driver and only typed this into a shell:
sudo iwconfig wlp3s0 txpower 10dBm
And then I could connect fine as well.
So most probably, it's not even necessary to install the b43 driver. Which means that I actually only had to do what phpmaven did.
I checked by typing just iwconfig, and saw that the TX-Power is set to 31dBm by default. Setting the TX-Power to 10dBm is probably the only thing necessary.
Be aware that I was doing this on Ubuntu 24.04.2 LTS. For other versions it could still be necessary to install the b43 drivers. If setting the TX Power doesn't fix your problem, you should probably only then try installing the b43 driver.
Cheers!
This worked for me! 2014 Macbook air using the Broadcom BCM 4360 WiFi card, Ubuntu 24.04.2. WiFi did not even appear as an option before, now it does and works perfectly!
How can this step possibly work?
- sudo apt install firmware-b43-installer
The installer goes and tries to download this file: https://www.lwfinger.com/b43-firmware/broadcom-wl-6.30.163.46.tar.bz2
Which is impossible if you don't already have wifi connection to begin with...
First of all: If your WiFi chip is detected, i.e. you have the WiFi option in Linux and if you choose it, you see a list of access points, but just can't seem to connect to any, then you will not need to package
Well, I think there are these options.
Use a USB network dongle to connect to a wired network (this is what I did)
Try using your phone as access point, it might be more lenient (or less, you won't know until you try).
-
On a computer with internet connectivity, download the broadcom installer package (.deb) file and all its dependent packages from the following locations:
- bzip2 - https://packages.debian.org/trixie/amd64/bzip2/download
- pciutils - https://packages.debian.org/trixie/amd64/pciutils/download
- b43-fwcutter - https://packages.debian.org/trixie/amd64/b43-fwcutter/download
- firmware-b43-installer - https://packages.debian.org/trixie/all/firmware-b43-installer/download
Remember the names of the downloaded files. The names change with version updates. But for my example, I'll use the current versions.
- bzip2 - bzip2_1.0.8-6_amd64.deb
- pciutils - pciutils_3.14.0-1_amd64.deb
- b43-fwcutter - b43-fwcutter_019-14_amd64.deb
- firmware-b43-installer - firmware-b43-installer_019-14_all.deb
-
Copy these files to a USB stick and copy them to the computer without network connection. Remember where you copied them. ;)
-
Open a shell and cd to the folder where you copied the files to.
-
Then one by one manually install the packages. Be sure to keep to this order because some packages depend on others to be installed first.
sudo apt install ./bzip2_1.0.8-6_amd64.debsudo apt install ./pciutils_3.14.0-1_amd64.debsudo apt install ./b43-fwcutter_019-14_amd64.debsudo apt install ./firmware-b43-installer_019-14_all.deb
You might get some messages about 'package already installed' (maybe bzip2 is already installed). That's great, all you did was waste a little time, but nothing more serious.
-
Reboot
-
After reboot, type:
sudo iwconfig wlp3s0 txpower 10dBm
Now you should expect your WiFi to work.
The next steps should be to do what phpmaven did. It creates a script that will be run as a service at every reboot, and will automatically set the transmit power after every reboot.
One important caveat is that I have never tried to do option #3 myself. I have never had to, and I am restating what I did for other packages at one time.
It might be that apt will ask for more dependencies. But the mechanism to install those will be the same, you only have to identify the missing dependencies and install them as mentioned above. Here you can see the list of dependent packages:
Hi @RetepV will this be feasible on Ubuntu 24.04? I previously tried it and rolled back to SierraOS on my MacBookPro 2017.
Suffice to say, I was unable to make it work, including the Type-C USB LAN converter I connected to the Mac.
I'm interested in your insight before I try it again.
@tikg I have Ubuntu 24.04 running on my Macbook Pro 2016, with i7 processor. If in Macos, you go to Apple
Menu->About This Mac, you will see info on your Mac. There is the button ‘System Report’, click that.
In the System Report, click Hardware, you’ll get some info on your Macbook. In my case, amongst others:
- Model Identifier: MacBookPro13,3
- Processor Name: Quad-Core Intel i7
In the list on the left, find the entry Wi-Fi under Network, and click that.
You will now see info on your Wi-Fi chip. In my case, amongst others:
- Card Type: Wi-Fi (0x14E4, 0x15A)
- Firmware Version: Broadcom BCM43xx 1.0 (7.77.111.1 AirPortDriverBrmcNIC-1710.4)
This means that my MacBook has a Broadcom BCM43-type Wi-Fi chip. If your MacBook also has a ‘BCM43xx’ chip, you should be able to make it work.
When Installed Ubuntu 24.04, my Wi-Fi chip was detected and Linux had installed drivers. I could list Wi-Fi access points, but not connect, so the chip was properly detected and the original driver worked. I did not have to update the drivers.
In my case, all I had to do was to open a console window and type this:
sudo iwconfig wlp3s0 txpower 10dBm
After that I tried to connect again, and my Wi-Fi worked flawlessly, until a reboot. Then I would have to do this again to get it to work. This setting is not persistent.
So, to prevent having to type the same again, after reboot, I created the set-wifi-power.service, like I showed a few posts earlier. And now Linux automatically sets the Wi-Fi transmit power to 10dBm at boot time.
The only other thing of note is that you need to know the name of the Linux driver. For some people it seems to be wlp2s0, for me it was wlp3s0. You can list your wifi devices with this command in a console window:
iwconfig
This will return some info on wireless devices. There you should see an interface with the name wlpXsY. On my system it says wlp3s0, on other systems it might be something different. I only have one system, so I can’t know what other systems will use.
In Linux, you can also get the exact type (instead of just BCM43xx, like Macos shows) of the Wi-Fi controller chip by typing this:
lspci | grep -i network
In my case that shows that my Macbook has a BCM43602 (rev 02) Wi-Fi controller.
So, all I can say more is that with this configuration, I have Wi-Fi running flawlessly, and that I expect that if your system is similar, you should get it to work too.
I also expect that the exact Wi-Fi chip type is not even really an issue, any BCM43xxx chip will probably work and benefit from this fix.

@satellite73 same for me -- I have to run the command
sudo iwconfig wlp2s0 txpower 10dBmafter each reboot.I have not yet found a solution.