Multi-port boards (e.g. NanoPi R6S) frequently have unused interfaces with
no-carrier. With the default systemd-networkd-wait-online behavior this can
result in "Online state: partial" and a timeout while waiting for all managed
links to become online.
That failure breaks units that depend on network-online.target such as
apt-daily-upgrade / unattended-upgrades.
Install a systemd drop-in overriding ExecStart to use:
systemd-networkd-wait-online --any --timeout=20
This keeps the intended "wait for networking" semantics while preventing
unplugged/unused ports from blocking boot and timers.
- only affects systemd-networkd-using builds (MINIMAL images?)
- does NOT affect NetworkManager
- this allows network administrators to give out IPv6 addresses over DHCPv6 based on the MAC address (which should be stable) instead of systemd's own notion of it's "DUID", which is based on the machine-id and changes on every redeployment
- Rename extensions with "net-*" prefix
- Put the extensions into their own folder
- Split off time sync packages into their own extensions to be able to be used separately
- Put their config files into directories instead of using inline `cat <<- EOF >`
- Move some other NetworkManager related stuff into the extension
- Remove unneeded steps
- Install iproute2 by default on all images (for the `ip` command)