Unique DUID Per Connection

Create a file /etc/NetworkManager/conf.d/duid.conf with the content:

[connection]
ipv6.dhcp-duid=stable-uuid

IPv6 Privacy Extensions

Create /etc/NetworkManager/conf.d/ip6-privacy.conf with the contents:

[connection]
ipv6.ip6-privacy=2

Use iwd as the WiFi Backend

Install iwd

pacman -S iwd

Create the file /etc/NetworkManager/conf.d/wifi_backend.conf with the contents:

[device]
wifi.backend=iwd

You may have to convert existing NetworkManager profiles.

cd /etc/NetworkManager/system-connections
mkdir ../system-connections-iwd
for f in *; do grep -v '^\(mac-address\|interface-name\|permissions\|bssid\)=' "$f" > ../system-connections-iwd/"$f"; done
chmod 0600 ../system-connections-iwd/*
cd /etc/NetworkManager
mv system-connections system-connections-backup
dbus-send --system --print-reply --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager/Settings org.freedesktop.NetworkManager.Settings.ReloadConnections
sleep 1
mv system-connections-iwd system-connections
dbus-send --system --print-reply --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager/Settings org.freedesktop.NetworkManager.Settings.ReloadConnections

Sharing Internet Connection

dnsmasq allows you to share your Internet connection with other devices.

Install dnsmasq

pacman -S dnsmasq

Then set NetworkManager to use it, create this file: /etc/NetworkManager/conf.d/dns.conf with the content:

[main]
dns=dnsmasq

Afterwards it’s just a matter of creating a new shared connection.

WiFi 6e Fix

By the time I wrote this post I had gone through a few installations of Arch, so I’m not entirely sure how I missed this before.

WiFi 6e wasn’t working, it turns out I didn’t have a regulatory domain set up.

~ ❯ iw reg get
global
country 00: DFS-UNSET
	(2402 - 2472 @ 40), (6, 20), (N/A)
	(2457 - 2482 @ 20), (6, 20), (N/A), AUTO-BW, PASSIVE-SCAN
	(2474 - 2494 @ 20), (6, 20), (N/A), NO-OFDM, PASSIVE-SCAN
	(5170 - 5250 @ 80), (6, 20), (N/A), AUTO-BW, PASSIVE-SCAN
	(5250 - 5330 @ 80), (6, 20), (0 ms), DFS, AUTO-BW, PASSIVE-SCAN
	(5490 - 5730 @ 160), (6, 20), (0 ms), DFS, PASSIVE-SCAN
	(5735 - 5835 @ 80), (6, 20), (N/A), PASSIVE-SCAN
	(57240 - 63720 @ 2160), (N/A, 0), (N/A)

Installing wireless-regdb fixed the problem.

If not you may need to run iw reg set AU to set it to Australia.

sudo pacman -S wireless-regdb