Call for testing: improved WiFi via iwd

Your installation notes above are very brief and I would think that they are inadequate to deal with the issues that people are going to run up against. I put iNet Wireless Daemon in yesterday after reading an article in Linux Magazine and following (often correcting!) the instructions there.
Overall, it’s working fine now. (For the record, I use iwd 1.5-1 on a Dell Inspiron 7xxx laptop with Ubuntu 20.04LTS with a 16 GB RAM and a 12 GB swapspace. ) But I had a number of issues during and after installation of the package.

  1. It’s best to just disable the existing WPA Supplicant service before installing and enabling iwd.

  2. Do not remove wpa_supplicant package as you may have issues during changeover that require re-engaging it to browse the web.

  3. After installing and enabling iwd, enter the iwctl command, you are then within the [iwd] environment.
    You find your device name via the command, device list. This is usually wlan0 and you can see more details on it via the command, device wlan0 show.
    Now you can scan for available wifi networks via: station wlan0 scan. Then display available wifi networks via: station wlan0 get-networks.
    The resulting list of available networks should include your own home (or office) wifi. It will be named by its SSID string. Previous posters have seen that where an ISP provides both a 2.4 GHz and 5 GHz speed service, it is important to distinguish between the two: they must be given separate SSID strings. More importantly, the SSID strings must not have spaces, e.g. VM545A32E 5ghz. If an SSID has a space, it will trigger a non-acceptance of that network SSID when the iwd selection command is entered:
    station wlan0 connect VM545A32E 5ghz

This is because the iwd response parser stops at the first space in the SSID string.

So if you have a space in your network SSID, you must phone your network provider and ask them to change the SSID by removing the space(s) or else inserting a hyphen.
Once spaces are removed, the connect command shown above is readily accepted and iwd will prompt you for the passphrase (= password) that accompanies the SSID submitted. This is usually set by the network provider (and shown on a sticker or card on the modem) but may be changed by the user if they so wish. After you enter your passphrase, it is stored at /var/lib/iwd directory for future connections to that network at PC startup.

  1. DNS Resolution
    Create a /etc/iwd/main.conf file with the listing below

[General]
EnableNetworkConfiguratio=true

[Network]
NameResolvingService=systemd

  1. Integration With Network Manager

First stop the existing Network Manager service via: $ sudo systemctl stop NetworkManager.service

Then edit the Network Manager configuration file at /etc/NetworkManager/NetworkManager.conf with the lines:

[device]
wifi.backend=iwd

Now reboot your Ubuntu machine.

  1. Small iwd GUI Client (Optional)

Go to https://github.com/J-Lentz/iwgtk and download the zip folder for the project.
Check that packages, libgtk-3-dev and libglib2.0-dev-bin are installed on your PC. If not, install them.
Unzip the iwgtk-master folder, and use the README.md file to install the package.
Verify the presence of the iwgtk icon on your desktop’s Show Applications menu.
Click on the icon to open the iwd GUI client and explore its functions.

  1. WPS (Optional)

If you have a WPS button on your modem, this option may interest you.
Check WPS compatibility with your device via:

[iwd] wsc list

If this shows your wifi device (e.g. wlan0), then you may use WPS.

Then you can enter:

wsc wlan0 push-button

and press the modem’s WPS button.

If a PIN is needed, enter:

wsc wlan0 start-user-pin

followed by an 8 digit PIN.

As said earlier, I have just installed iwd yesterday so my experience is limited.
Clearly, the DNS resolution is now being done by systemd, so the previous DNS configuration I had applied to my WiFi configurations for DNS (i.e. on IPv4 tab, turn off the default “automatic” and enter the Google IPs 8.8.8.8,8.8.4.4) are now overwritten.
I observe no slowing of the domain name resolution.
Like others here, I also saw the SSID and SSID1 connections issue. But this was resolved by removing the old SSID connection that was created by wpa_supplicant. On rebooting, there was only SSID connection - and that was the one created by iwd.

If any useful observations emerge over the next month, I’ll report them here, if this page is still open.

3 Likes

I am trying use iwd in 18.04, use rtl 8812au usb dongle
and success to installed it (by manually add focal’s repository).

after following the instruction,
no SSID shown in NetworkManager

try restarting iwd few times, but still no SSID shown up…

Using 18.04 is most probably too old and many integration bits have not been implemented there. This guide was intended to be used with 20.04 or newer.

it cannot connect to an already same name network that was defined by wpa_supplicant since wpa_supplicant is now masked - hence the 1 for the iwd connection - you can delete both if you want then reboot and connect again and only one connection will be there or you can remove the original connection without the 1

I would argue that the description you used here illustrates a “works fine on my machine” response from a developer to a “user” when their expectations are unmet. This leads to very poor User Experience IMO.

1 Like

Have you tried installing with the procedure I gave above, diddledan ?

It’s 6 months since I installed Intel WiFi Daemon and there are no problems to report.
It works fine and seems quicker to respond that the predecessor, wpa_supplicant.

The only “odd event” was lately when trying to install Wine (a Windows interfacing suite for applications that only run on Windows) when the installer removed a load of apps and drivers that were not 32-bit compatible. Not suspecting any such effect, I found my web access gone along with some browsers and other major apps including Java.
Eventually I restored the system with Timeshift, then slow-motioned forward again to discover the nature of the problem. Standard Wine insists on 32-bit and 64-bit compatibility. So I dumped the Wine idea and used VirtualBox instead for evaluating Windows only apps like Affinity Designer.

So, good performance so far from iwd.

1 Like

Thank you very much @tamjk for this long-term test! It’s good to hear that the setup works as expected for you.

We’ve been in touch with Intel/iwd about some of the issues reported in this thread and we recently got the feedback that most of the problems reported here are supposed to be fixed in an iwd/1.15 & NetworkManager/1.32 setup.

Both of those packages/versions are currently on their way landing in the Ubuntu development release (Impish Indri, 21.10). And we should soon be able to kick-off a 2nd evaluation, checking those new version.

2 Likes

Good to hear. :grinning:
I’m on an LTS version of Ubuntu and have to stay on that as I’ll be coding for a server running the same version.

Would the new iwd and NetworkManager versions be available separately from 21.10 so we can test on 20.04 LTS ?

A good link on iwd not visible here is
https://wiki.archlinux.org/title/Iwd

P.S. Why does this forum not allow edits after a certain period ?
I would have liked to add this link to the list of info hyperlinks after the starting post from Lukas Märdian . . .

Hello there! I was using iwd on Ubuntu 20.04, and it was working great. Since the last update with kernel 5.11 when suddenly iwd had stopped working. I’ve tried to reinstall it but it didn’t help. Quick google search showed that this is actually a wide spread problem since kernel 5.9. So i wish to ask is there going to be a solution of some kind?

Hellion,

More details on your iwd version please.

$ iwctl
[iwd] # version
????????

Myself, I changed to version 1.15 about 3 weeks ago.

My neofetch system profile below:

OS: Ubuntu 20.04.2 LTS x86_64
Host: Inspiron 5567
Kernel: 5.11.0-25-generic
Uptime: 48 mins
Packages: 2596 (dpkg), 19 (snap)
Shell: bash 5.0.17
Resolution: 1280x1024
DE: GNOME
WM: Mutter
WM Theme: Adwaita
Theme: Yaru [GTK2/3]
Icons: Yaru [GTK2/3]
Terminal: gnome-terminal
CPU: Intel i5-7200U (4) @ 3.100GHz
GPU: Intel HD Graphics 620
GPU: AMD ATI Radeon R7 M260/M265 / M
Memory: 2611MiB / 15909MiB

If you are on a higher kernel version we should be worried about updates . . .

tamjk,
my version is:
$iwctl
[iwd]# version
IWD version 1.15

My neofetch system profile is:

OS: Ubuntu 20.04.3 LTS x86_64
Host: Aspire VN7-791G V1.11
Kernel: 5.11.0-25-generic
Uptime: 8 hours, 29 mins
Packages: 2333 (dpkg)
Shell: bash 5.0.17
Resolution: 1920x1080
DE: GNOME
WM: Mutter
WM Theme: Adwaita
Theme: Yaru [GTK2/3]
Icons: ubuntu-mono-dark [GTK2/3]
Terminal: gnome-terminal
CPU: Intel i7-4720HQ (8) @ 3.600GHz
GPU: Intel 4th Gen Core Processor
GPU: NVIDIA GeForce GTX 960M
Memory: 2304MiB / 7880MiB

I’ve posted a bug report here https://bugs.launchpad.net/ubuntu/+source/iwd/+bug/1938650, and finally got it working by using (by suggestion of another user called A B Steel) the unsupported slyon’s ppa. Nevertheless I still think that it shouldn’t be that way.

Interesting.

slyon also gave me the ppa from which I installed iwd 1.15 . . .

Looks like I dodged a bullet there.

The issue you’re having is due to the Linux kernel deprecating AF_ALG RC4 support. You can follow the discussion for why the kernel devs wanted to do this here:
https://lkml.org/lkml/2020/8/4/512

iwd has been shipping its own version of RC4 since that time, but iwd 1.5 does not have it and still depends on the kernel RC4 support to be enabled.

Easiest solution, as you have already found out, is to use a newer version of iwd.

There has been some increased activity here recently. Therefore, I’d like to publish the unofficial PPA for Ubuntu Focal 20.04 and Ubuntu Hirsute 21.04, that contains iwd 1.15 and NetworkManager 1.32.2 (as can be found in the current Ubuntu development release 21.10). I did not yet find the time to do a lot of testing on those PPA packages myself, but if they fix some issues for some of you they should be good enough for testing. The combination of those newer version should fix many of the problems reported in this thread, so feel free to upgrade using the PPA and please report back your findings!

https://launchpad.net/~slyon/+archive/ubuntu/iwd+nm

Just reporting back on iwd 1.15 , seems to work without hiccups so far for the past 2 weeks on one of my test systems. Neofetch:
OS: Ubuntu 20.04.3 LTS x86_64
Host: 20Y1CTO1WW ThinkPad P14s Gen 1
Kernel: 5.10.0-1044-oem
Uptime: 11 mins
Packages: 1784 (dpkg)
Shell: zsh 5.8
Resolution: 1920x1080
DE: GNOME
WM: Mutter
WM Theme: Adwaita
Theme: Adwaita-dark [GTK2/3]
Icons: Yaru [GTK2/3]
Terminal: gnome-terminal
CPU: AMD Ryzen 7 PRO 4750U with Radeon Graphics (16) @ 1.700GHz
GPU: AMD ATI 07:00.0 Renoir
Memory: 1164MiB / 13713MiB

Note: I have issues on iwd 1.15 running on another test machine with the same specs (Arch 5.10-61 LTS, even with the latest iwd 1.17) - have to restart the iwd service after ‘most’ boots.

2 Likes

I’m testing iwd on Ubuntu 21.10, no issues so far with my home network that uses WPA3 encryption (MT7915 based router with OpenWrt) and my laptop has a QCA6174 (ath10k) card. WiFi on this laptop feels more responsive with iwd rather than wpa_supplicant (I’m not talking about raw speeds but latency wise).

I hope Ubuntu can switch to iwd by default soon.

1 Like

Upon my upgrade to 21.10 I started having issues with my wifi. Before this upgrade all was working fine (21.04). On my syslog I get this:

Oct 21 09:34:08 joax-ubuntu iwd[2123]: message repeated 13 times: [ WARNING: src/scan.c:scan_parse_attr_bss() condition wiphy_estimate_data_rate(wiphy, ies, ies_len, bss, &bss->data_rate) < 0 failed]

joax@joax-ubuntu:~$ iwctl
[iwd]# version
IWD version 1.15

Also the neofetch:

joax@joax-ubuntu

OS: Ubuntu 21.10 x86_64
Host: MacBookPro15,1 1.0
Kernel: 5.13.12-mbp-16x-wifi
Uptime: 33 mins
Packages: 3484 (dpkg), 24 (flatpak), 25 (snap)
Shell: bash 5.1.8
Resolution: 2880x1800
DE: GNOME 40.5
WM: Mutter
WM Theme: Yaru-dark
Theme: Yaru [GTK2/3]
Icons: Yaru [GTK2/3]
Terminal: gnome-terminal
CPU: Intel i9-9880H (16) @ 2.300GHz
GPU: AMD ATI Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X
Memory: 3971MiB / 15900MiB

To give a brief update on this topic: The iwd package is currently being reviewed to make it’s way into the main component of the Ubuntu archive, so it can be used as a default in a future release.

2 Likes