You are not logged in.

#1 2024-03-23 15:30:21

tsj
Member
Registered: 2017-07-06
Posts: 7

systemd-networkd-wait-online --any fails when wireless interface is up

Hello, I have a simple config with systemd-networkd & wpa_supplicant based config to manage a wireless interface, ie connect & authenticate to wireless network at boot.

I have noticed however that `/lib/systemd/systemd-networkd-wait-online --any` fails. If I supply the interface manually like `/lib/systemd/systemd-networkd-wait-online --interface=wlp0s20u4`, the process terminates. Why would this be? Help for `--any` states that it will "Wait until at least one of the interfaces is online". I'd rather not enable any systemd-networkd-wait-online@ services and just allow any available interface to satisfy an "online" check.

I also noticed that the interface (wlp0s20u4) is reported as "unmanaged" by networkctl, is this expected?

> networkctl list
IDX LINK            TYPE      OPERATIONAL SETUP
  1 lo              loopback  carrier     unmanaged
  2 eno1            ether     no-carrier  unmanaged
  3 wlp3s0          wlan      no-carrier  unmanaged
  4 wlp0s20u4       wlan      routable    unmanaged
  5 wg0             wireguard routable    unmanaged
  6 tun0            none      routable    unmanaged
  7 br-e494102d60e0 bridge    routable    unmanaged
  8 docker0         bridge    no-carrier  unmanaged
 10 veth7454682     ether     enslaved    unmanaged
 12 veth92ebb7e     ether     enslaved    unmanaged
 14 veth5e1646d     ether     enslaved    unmanaged

11 links listed.

Finally, I enabled dhcpcd@wlp0s20u4 because without it I never obtained an IP on that interface. I don't remember having to enable this on a previous config for a different wireless adapter, but maybe I did... what then is the point of `DHCP=yes` in `/etc/systemd/network/25-wireless.network` as mentiond in the systemd-networkd wiki page?

My config is below. In summary:

1. Why does `/lib/systemd/systemd-networkd-wait-online --any` fail when the interface is up?
2. Is it normal that the interface be reported as "unmanaged" by networkctl?
3. Why do I need to start dhcpcd@ when DHCP=yes is in the .network file?

Config:

> ls /etc/systemd/network/
25-wireless.network

> cat /etc/systemd/network/25-wireless.network
[Match]
Name=wlp0s20u4

[Network]
DHCP=yes
IgnoreCarrierLoss=3s
> cat /etc/wpa_supplicant/wpa_supplicant-wlp0s20u4.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=1

network={
  <redacted>
}
> find /etc/systemd -type l -exec test -f {} \; -print | awk -F'/' '{ printf ("%-40s | %s\n", $(NF-0), $(NF-1)) }' | sort -f
audiobookshelf.service                   | multi-user.target.wants
caddy.service                            | multi-user.target.wants
cronie.service                           | multi-user.target.wants
dbus-org.freedesktop.network1.service    | system
dhcpcd@wlp0s20u4.service                 | multi-user.target.wants
docker.service                           | multi-user.target.wants
fail2ban.service                         | multi-user.target.wants
fstrim.timer                             | multi-user.target.wants
gcr-ssh-agent.socket                     | sockets.target.wants
getty@tty1.service                       | getty.target.wants
gnome-keyring-daemon.socket              | sockets.target.wants
ip6tables.service                        | multi-user.target.wants
iptables.service                         | multi-user.target.wants
jellyfin.service                         | multi-user.target.wants
krb5-kdc.service                         | multi-user.target.wants
lm_sensors.service                       | multi-user.target.wants
nix-daemon.service                       | multi-user.target.wants
ntpd.service                             | multi-user.target.wants
p11-kit-server.socket                    | sockets.target.wants
pipewire-pulse.socket                    | sockets.target.wants
pipewire-session-manager.service         | user
pipewire.socket                          | sockets.target.wants
prometheus-node-exporter.service         | multi-user.target.wants
prometheus-systemd-exporter.service      | multi-user.target.wants
rankmirrors.timer                        | timers.target.wants
remote-fs.target                         | multi-user.target.wants
sshd.service                             | multi-user.target.wants
systemd-networkd.service                 | multi-user.target.wants
systemd-networkd.socket                  | sockets.target.wants
systemd-networkd-wait-online@wlp0s20u4.service | network-online.target.wants
systemd-network-generator.service        | sysinit.target.wants
systemd-timesyncd.service                | sysinit.target.wants
tor.service                              | multi-user.target.wants
wg-quick@wg0.service                     | multi-user.target.wants
wireplumber.service                      | pipewire.service.wants
wpa_supplicant@wlp0s20u4.service         | multi-user.target.wants
xdg-user-dirs-update.service             | default.target.wants
yggdrasil.service                        | multi-user.target.wants

(I have systemd-networkd-wait-online@wpl0s20u4 enabled, for now, in the above.)

Offline

Board footer

Powered by FluxBB