Enabling wifi in EndeavourOS on a 2015 MacBook Pro

If you’re using EndeavourOS on a Mac, and you can see networks in NetworkManager—but you never seem to be able to connect successfully—this quick guide might help.

This worked for me on my 13” 2015 MacBook Pro, which has a Broadcom BCM43602 wifi chip. Maybe it’ll work for you if you’ve got either a Mac or other computer with that chip.

It may not be of use for newer Macs that don’t show networks at all in NetworkManager. That was the case with my 2018 Mac Mini.

Note that you can use this technique not only after you’ve installed EndeavourOS, but it even worked for me with the latest EndeavourOS Ganymede installer. So I’ve been able to do an online install without ethernet or a USB wifi adapter.

Getting started

First, start your system without any usb wifi adapters connected.

Then, open a terminal window. I use the i3 window manager, so I type command-return to open it. But other environments may have other means.

Stopping NetworkManager and starting iwd

Now, we’re going to temporarily disable NetworkManager. Type the following:

systemctl disable --now NetworkManager

And we’re going to enable another service, iwd, which we’ll set up to be the back-end of NetworkManager in a bit. Type the following:

systemctl enable --now iwd

Configuring iwd

Starting iwd enables us to now set it up. We’ll do that by adding a couple lines to its configuration file. Type the following to open the config file in nano, a terminal-based text editor. Enter your password if asked.

sudo nano /etc/iwd/main.conf

In this file, type the following two lines:
[General]
EnableNetworkConfiguration=true

Type control-o and then return to save the file, and then control-x to exit nano.

Now, if you prefer to do all your networking at the command line, you could actually stop here and just use iwd instead of NetworkManager. Look up iwd at ArchWiki for instructions on using it.

Configuring NetworkManager

For our purposes, though, we’re going to use NetworkManager. Rather than using iwd directly, we’re going to assign it as the backend for NetworkManager. We’ll open another config file in nano. Again, enter your password if prompted.

sudo nano /etc/NetworkManager/conf.d/wifi_backend.conf

In this file, type the following two lines:
[device]
wifi.backend=iwd

Like before, type control-o and then return to save the file, and then control-x to exit nano.

Stopping iwd and restarting NetworkManager

Now, we’re going to do the reverse of what we did to start. We’re going to stop the iwd service, and restart NetworkManager.

To stop iwd, type the following in your terminal:

systemctl disable --now iwd

To start NetworkManager, type this:

systemctl enable --now NetworkManager

Connecting to your network

Now, you can use the NetworkManager interface to connect to your wifi. Click on its icon in the taskbar, select your network, and enter your network password. You should get a popup saying you’ve connected.

You can confirm by testing something in your terminal (like typing “ping apple.com“ or something) or trying a browser.

If it doesn’t work right away, reboot your machine and see if you can reconnect.

Good luck! Hopefully this works for you.