iwd does not work for me - start iwd fails on Raspberry Pi 4

System / network info:

uname -a
Linux rpi 4.19.97-1-MANJARO-ARM #1 SMP PREEMPT Fri Jan 24 19:39:39 UTC 2020 aarch64 GNU/Linux

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether dc:a6:32:18:7f:34 brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.60/24 brd 192.168.178.255 scope global dynamic noprefixroute eth0
       valid_lft 859077sec preferred_lft 751077sec
    inet6 fe80::eb0b:6669:7e64:329e/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether dc:a6:32:18:7f:35 brd ff:ff:ff:ff:ff:ff

Doing a:

sudo systemctl start iwd

results in the following log messages

sudo[544]:       pi : TTY=pts/2 ; PWD=/home/pi ; USER=root ; COMMAND=/usr/bin/systemctl start iwd
    sudo[544]: pam_unix(sudo:session): session opened for user root by (uid=0)
    systemd[1]: Starting Wireless service...
    kernel: NET: Registered protocol family 38
    iwd[550]: No HMAC(SHA1) support found
    iwd[550]: No HMAC(MD5) support found
    iwd[550]: No CMAC(AES) support found
    iwd[550]: No HMAC(SHA256) support not found
    iwd[550]: No HMAC(SHA512) support found, certain TLS connections might fail
    kernel: cryptd: max_cpu_qlen set to 1000
    iwd[550]: No Diffie-Hellman support found, WPS will not be available
    iwd[550]: No asymmetric key support found.
    iwd[550]: TLS based WPA-Enterprise authentication methods will not function.
    iwd[550]: Kernel 4.20+ is required for this feature.
    iwd[550]: The following options are missing in the kernel:
    iwd[550]:         CONFIG_CRYPTO_USER_API_HASH
    iwd[550]:         CONFIG_ASYMMETRIC_KEY_TYPE
    iwd[550]:         CONFIG_KEY_DH_OPERATIONS
    iwd[550]:         CONFIG_CRYPTO_MD5
    iwd[550]:         CONFIG_CRYPTO_SHA256
    iwd[550]:         CONFIG_CRYPTO_AES
    iwd[550]:         CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE
    iwd[550]:         CONFIG_CRYPTO_CMAC
    iwd[550]:         CONFIG_PKCS7_MESSAGE_PARSER
    iwd[550]:         CONFIG_CRYPTO_USER_API_HASH
    iwd[550]:         CONFIG_CRYPTO_USER_API_HASH
    iwd[550]:         CONFIG_CRYPTO_HMAC
    iwd[550]:         CONFIG_CRYPTO_SHA512
    iwd[550]:         CONFIG_X509_CERTIFICATE_PARSER
    iwd[550]:         CONFIG_PKCS8_PRIVATE_KEY_PARSER
    iwd[550]:         CONFIG_CRYPTO_SHA1
    iwd[550]: The following optimized implementations might be available:
    iwd[550]:         CONFIG_CRYPTO_SHA1_SSSE3
    iwd[550]:         CONFIG_CRYPTO_AES_NI_INTEL
    iwd[550]:         CONFIG_CRYPTO_SHA512_SSSE3
    iwd[550]:         CONFIG_CRYPTO_AES_X86_64
    iwd[550]:         CONFIG_CRYPTO_SHA256_SSSE3
    systemd[1]: iwd.service: Main process exited, code=exited, status=1/FAILURE
    systemd[1]: iwd.service: Failed with result 'exit-code'.
    systemd[1]: Failed to start Wireless service.

What am I doing wrong?

It does not appear that those missing modules you indicated are available for 4.19.

You might try linux-rpi4-mainline 5.5.2-1 in the repo. Most of what you reported as missing are in this kernel and enabled except for a few.

All of them are in the linux-rpi4-mainline 5.5.6-1 and enabled except @3 I was going to release today. I had it already to push but will re-compile and enable the 3 modules that are not enabled.

These are not for the AARCH64 platform

Thank you for your quick reply.

Am I correct in concluding that 4.19 is the version that is in Manjaro ARM 20.02?

If so, could you please point me to some documentation on how to try the versions of linux you suggested.

I have already tried buildarmoem and found that also ends up with 4.19. (Or are there some parameters I should be using?)

Also, I'm unsure what you mean by

enabled except @3

4.19 is what we use by default in the rpi4 profile.

But you can install the other kernel, by doing:

sudo pacman -S linux-rpi4-mainline linux-rpi4-mainline-headers

But, the kernel with the modules enabled is only in unstable branch at the moment, so you have to switch branch to get version 5.5.6.

1 Like

Thank you for the tip.

Using 5.5.6 I was able to get iwd working with systemd-networkd.

At least I think I was, because I wanted to try starting from a minimal distribution, but wasn't able to get a successful buildarm* to work for me.

The minimal img file simply wouldn't show anything on a connected HDMI display. Sorry I can't get give you much information, I use a live USB Manjaro architect release and I have to try to recall from memory. Possible messages of interest were something about fsck.overlay, unknown format 'vfat', and another unknown format.

For what it's worth, here is what I recall testing for iwd:

  • use Rufus on Manjaro-ARM-xfce-rpi4-20.02.img.xz to create SDHC boot
  • boot the SDHC
  • do the following:
sudo pacman-mirrors -g -b unstable  # unstable branch for linux 5.5.6
sudo pacman -Syyu
sudo pacman -S iwd linux-rpi4-mainline linux-rpi4-mainline-headers
sudo reboot # reboot into 5.5.6
# get rid of networkmanager(s) and wpa
sudo pacman -R  network-manager-applet networkmanager wpa_supplicant
sudo nano /etc/iwd/main.conf  # this seemed to be needed by iwd
        [General]
        EnableNetworkConfiguration=true
sudo systemctl enable systemd-networkd  # use the base Network Manager
sudo systemctl enable iwd
sudo reboot
  • after the reboot, use a 'normal user' iwctl to communicate with iwd (assumes the wifi device is named wlan0)
iwctl
  device list
  device wlan0 show 
  station wlan0 connect the-name-of-your-SSID-here

Note: afterwards I edited the file '/var/lib/iwd/xxx.psk' (xxx is 'name-of-your-SSID' to remove the line

passphrase=xxxxx

I also noticed that I have to execute iwctl/station..connect after each reboot. Unsure if there's a way to do that automatically.

Thanks again, and creating a version of iwd one can use on a 'minimal' rpi4 for a wifi connection!

This topic was automatically closed after 90 days. New replies are no longer allowed.

Forum kindly sponsored by