3

On a laptop running Linux Mint, I can run these commands to stand up a WiFi hotspot:

nmcli con add type wifi ifname [interface name] con-name test_ssid autoconnect yes ssid test_ssid
nmcli con modify test_ssid 802-11-wireless.mode ap ipv4.method shared
nmcli con modify test_ssid wifi-sec.key-mgmt wpa-psk
nmcli con modify test_ssid 802-11-wireless-security.pairwise ccmp
nmcli con modify test_ssid 802-11-wireless-security.group ccmp
nmcli con modify test_ssid wifi-sec.psk [password]

The resulting test_ssid can be joined by iPhone, Windows, and even Intel MacBook Pros running macOS 12.6. But it can't be joined by an M1 MacBook Pro running macOS 13.0. Does anyone know why, or if there's a way to get M1 Macs to join Linux WiFi hotspots, or if there's a way to get debug output from the connection attempt? When I try to join the network from the M1 MBP, it says The Wi-Fi network "test_ssid" requires a WPA3 Personal., which is odd.

Giacomo1968
  • 58,727
Theron S
  • 231

1 Answers1

5

The solution, in this particular case, is to add a line like the following.

nmcli con modify test_ssid wifi-sec.pmf disable

This will disable SAE and force the use of WPA2 Personal/SHA-256/AES. It would be preferable to get WPA3/SAE working, but I have not been able to do so with my Qualcomm Atheros QCA6174. I suspect this card performs the authentication itself rather than delegate it to the OS (Linux in this case), and because it's from 2015 or so, is too old to do SAE.


Original answer: The problem was wpa_supplicant 2.10 on Linux. Hotspots created with wpa_supplicant 2.9 are able to be joined by the M1 MacBook Pro. When making a network with these commands

nmcli con add type wifi ifname wlp2s0 con-name test_ssid autoconnect yes ssid test_ssid
nmcli con modify test_ssid 802-11-wireless.mode ap ipv4.method shared
nmcli con modify test_ssid wifi-sec.key-mgmt wpa-psk
nmcli con modify test_ssid 802-11-wireless-security.pairwise ccmp
nmcli con modify test_ssid 802-11-wireless-security.group ccmp
nmcli con modify test_ssid 802-11-wireless-security.proto rsn
nmcli con modify test_ssid wifi-sec.psk 12345678
nmcli con up test_ssid

On wpa_supplicant 2.10, and scanning for that network from an M1 MacBook Pro with this command:

/System/Library/PrivateFramework/Apple80211.framework/Versions/Current/Resources/airport -s

The network shows this in the security column:

RSN(PSK,PSK-SHA256,SAE/AES/AES)

On wpa_supplicant 2.9, it shows this in the security column:

RSN(PSK,PSK-SHA256/AES/AES)
Giacomo1968
  • 58,727
Theron S
  • 231