Call for testing: improved WiFi via iwd

iwd 1.5-1 on Ubuntu 20.04.1 with current updates works great on multiple WPA2 networks I have tried, and across suspend/resume cycling on my Qualcomm Atheros QCA6174 (ath10k) hardware on x86.

iwd has a Resident Set Size of 4628kB (47%) of wpa_supplicant’s 9680kB; a good step for embedded systems.

The only issue I have noted is iwconfig reports the correct 5GHz channel information for the BSSID, whereas ‘nmcli dev wifi’ shows the BSSID and other SSIDs on 2.4GHz channels only.

Thanks,
Daniel

1 Like

I’ve just tested on Ubuntu 20.04.1 LTS with iwd 1.5-1. It works well on my 2.4 GHz network. The only issue I found is what others already mentioned earlier: it created a new network and added “1” to its name.

1 Like

I just installed iwd 1.5-1 on Ubuntu 20.04.1. It works very well with WPA2 home WiFi (I am connecting to a range extender indeed, no problem so far right now): browsing the web for studying activities and Netflix or Disney+ viewing. Fast connecting, stable and effectively less energy consumption.
After I typed sudo apt install iwd in the terminal I went offline, but after just clicking on the icon in the tray, I was able to reconnect without any problems. Actually without even doing the next setup steps. I didn’t really realize it, I did them later anyway.
If your connection shows the “1” already mentioned above at name ending, just go to Settings -> WiFi -> Click on the gear near the name of the connection and forget them both. And then reconnect.

1 Like

This is great. I’ve been testing this on my personal laptop and work laptop today. I’ve come across numerous issues. Where do we raise bugs? What details do you want? How do we debug the issues ourselves?

Most of my issues may be with Gnome Network Manager, although I don’t know if that’s the case.

1 Like

Hey @psiphi75 thanks for helping with those early tests. For now we’re mostly interested in a higher level overview of what is working and what is not (see “Testplan” from above), also it would be great if you could explain how you ended up in a state where something isn’t working, so that it can be reproduced later.

If you traced down some specific issues, you could also report those to the upstream developers:

Debugging can be done with the likes of:

  • systemctl status iwd
  • journalctl -u NetworkManager

WPA3 Personal does not work. New connection is not choosing WPA3 and when I edit the profile, it either silently create a new profile with WPA2 or sometimes I get an error message when trying to use it:

Connextion XXX is not available on device wlan0 because
profile is not compatible with device (connection authentication type
not supported by IWD backend

OS: Ubuntu 20.10, fully updated
AP: FritzBox 6590 Cable, FRITZ!OS: 07.19-80650 BETA

1 Like

It did not work at all for me:

  • Upon reboot, it took a very long time (+1min) for the wifi list to populate - in fact, nm-applet did not show any networks until I opened gnome-settings wifi separately. This could be a coincidence, but in any case a long time.
  • It would not connect to my wifi (Schmilblick 5GHz on the logs) - did not connect automatically upon login nor did it connect when I selected the network manually (either in gnome-settings or nm-applet)

Ubuntu 20.04
Dell XPS 9560
Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter

  • journalctl -U NetworkManager --> you probably want to look at the last entries after the last reboot at “Aug 13 12:52:13” as the first reboot has dirty logs with me enabling/disabling NM and the second reboot is back to wpa_supplicant to look at this post.
  • systemctl status iwd
  • dmesg
1 Like

Ubuntu 20.04 so far so good has picked up twice number of local wifi networks than supplicant
image

2 Likes

I have testing this on both Ubuntu 20.04 and 20.10. I used the same laptop and wireless network.

2 Issues:

  1. After connecting to my home network, 2 appear. IE: “network_name” AND “network_name 1”. I tried to connect to the normal one, but ended up connecting to the “1” network.
  2. I have a 5GHz network, but I connect to the 2.4GHz network instead.
2 Likes

Well, that’s not unexpected. NetworkManager stores passwords in plain text too. A system-wide connection needs to store its credentials in plain text, as you can’t have encryption without a key, and it seems pointless to prompt the user during boot for some credential storage password when they can use full disk encryption and get prompted for that.

Now yes, you could store the key in the user’s password store which is encrypted with the user’s login password. But: That means you need the user to login before you can establish a connection, and you can’t login as another user. Which is suboptimal.

Use full disk encryption.

  1. NetworkManager creates a duplicate connection. It’s a bit annoying.
  2. NetworkManager shows the connection as 2.4 GHz, even though it’s 5 GHz.
1 Like

In Xubuntu 20.04 NM not duplicate connection, only after switch to iwd ask for password while connect firstime to before stored wifi, with prefilled password, then is need only accept.

1 Like

so far so good !!

barthezz@fcnb666it:~$ ps -A |grep iwd
root 2337 0.0 0.0 13680 4268 ? Ss 14:24 0:00 /usr/libexec/iwd
barthezz 3385 0.0 0.0 18804 724 pts/0 S+ 14:34 0:00 grep --color=auto iwd
barthezz@fcnb666it:~$ sudo pmap 2337
2337: /usr/libexec/iwd
0000558cbd815000 44K r---- iwd
0000558cbd820000 548K r-x-- iwd
0000558cbd8a9000 220K r---- iwd
0000558cbd8e1000 8K r---- iwd
0000558cbd8e3000 16K rw— iwd
0000558cbd8e7000 8K rw— [ anon ]
0000558cbe669000 264K rw— [ anon ]
00007fa1dc647000 10192K r–s- hwdb.bin
00007fa1dd03b000 12K rw— [ anon ]
00007fa1dd03e000 148K r---- libc-2.31.so
00007fa1dd063000 1504K r-x-- libc-2.31.so
00007fa1dd1db000 296K r---- libc-2.31.so
00007fa1dd225000 4K ----- libc-2.31.so
00007fa1dd226000 12K r---- libc-2.31.so
00007fa1dd229000 12K rw— libc-2.31.so
00007fa1dd22c000 16K rw— [ anon ]
00007fa1dd230000 4K r---- libdl-2.31.so
00007fa1dd231000 8K r-x-- libdl-2.31.so
00007fa1dd233000 4K r---- libdl-2.31.so
00007fa1dd234000 4K r---- libdl-2.31.so
00007fa1dd235000 4K rw— libdl-2.31.so
00007fa1dd236000 8K rw— [ anon ]
00007fa1dd255000 4K r---- ld-2.31.so
00007fa1dd256000 140K r-x-- ld-2.31.so
00007fa1dd279000 32K r---- ld-2.31.so
00007fa1dd282000 4K r---- ld-2.31.so
00007fa1dd283000 4K rw— ld-2.31.so
00007fa1dd284000 4K rw— [ anon ]
00007ffc720be000 132K rw— [ stack ]
00007ffc721e5000 16K r---- [ anon ]
00007ffc721e9000 8K r-x-- [ anon ]
ffffffffff600000 4K --x-- [ anon ]
total 13684K
barthezz@fcnb666it:~$ sudo pmap 2337 | tail -n 1
total 13684K

1 Like

2: I went in to my router and checked, it is actually a 2.4 GHz connection not 5 GHz. If I revert and reboot it will display 5 GHz in network manager and on the router.

I also tested the up/down speeds and I was getting ~50 Mbps down ~19 Mbps up with it was saying 2.4 GHz and ~280 Mbps down and ~19 Mbps up on 5 GHz.

From what I can see it looks like I am really connecting to the 2.4 GHz network. It is not just a UI glitch.

Ubuntu 20.10, iwd 1.8-1

1 Like

Using full disk encryption doesn’t solve anything, as soon as the disk is unlocked the file is there, open to anyone with access to the computer. There’s a reason if most guidelines discourage or prohibit saving passwords on disk if they can’t be protected with another passphrase, even if the disk is encrypted.

And some computers are not single user machines, multiple users may login onto them regularly or they may be used temporarily by another person, so no, global credentials on disk just don’t cut it.

1 Like

Keep in mind that iwd runs as root and, if configured correctly, the settings are not normal-user readable. The settings are currently global and there is no per-user store at this time. This is similar to how other daemons operate, bluetoothd for example.

There is no need to store passwords (or user names) in clear text for EAP networks. iwd will ask for these if they’re missing via its D-Bus Agent framework and will forget them once the network goes out of range. Refer to ‘man iwd.settings’ for more details. This does of course imply that you will need to provide EAP credentials whenever iwd is restarted.

1 Like

Hi,

Thanks for a focused effort in making sure IWD is ready for prime time.

I have been experimenting with IWD as a wpa_supplicant replacement several times, because it fixes a bunch of AP bouncing issues, that wpa_supplicant seems suffer from. My experience seems to match that of @woutervb, mentioned earlier.

For me - for now - the current need for manually maintained IWD provisioning files outweighs the problems I have with wpa_supplicant, so I always end up having to switch back.

I just ran a fresh test, to see if any recent updated might have changed that, but alas. Connection through Network Manager still fails:

reason="Connection 'MyPEAPNetwork' is not available on device wlan0 because profile is not compatible with device (802.1x connections must have IWD provisioning files)

This is on a fully updated 20.04, so I will perform the same test on 20.10 in a few moments (as soon as my machine is done updating).

Thanks again.

1 Like

So after updating to 20.10 development version on one of my machines, the requirement for provisioning files have not changed, unfortunately.

1 Like

Hi,

I use Mint which is based on 20.04 LTS which would be iwd 1.5-1, testing iwd on a simple PSK 2.4/5G network has been going well.
I did encounter a segfault in iwd though when trying to restart a seemingly crashed stack resulting in ‘unavailable’ in the Network Manager wireless system tray.

[  483.809448] iwd[697]: segfault at 28 ip 000055ced3fd31ab sp 00007fff9741eee0 error 4 in iwd[55ced3f72000+89000]
[  483.809470] Code: cb e6 ff ff 48 8b 7b 18 41 8b 54 24 04 48 89 ee e8 0a 6a ff ff 48 89 c7 48 85 c0 75 e2 4c 8d 74 24 04 eb 5a 0f 1f 00 8b 55 0c <49> 8b 7d 28 48 8d 35 3a d9 ff ff e8 95 67 ff ff 48 85 c0 74 28 83
1 Like

Hi,

I’ve had this bug since 20.04:

Using iwd instead of wpa_supplicant seems to somehow solve it.
FYI

1 Like