system(d): allow auto net configuration with networkd

Allow automatic network configuration via systemd-networkd if selected.

If systemd-networkd is enabled and $BR2_SYSTEM_DHCP is set, then create
a .network file to configure the selected network interface via DHCP.

Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
[Thomas:
 - merge the two patches from Eric into just one
 - instead of generating the dhcp.network file completely from the .mk
   file, use a template file, and "sed" it with the right network
   interface]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Eric Le Bihan 2016-09-17 13:58:37 +02:00 committed by Thomas Petazzoni
parent c9129558b9
commit 84d997d689
2 changed files with 12 additions and 6 deletions

View File

@ -281,6 +281,14 @@ define SYSTEMD_INSTALL_RESOLVCONF_HOOK
ln -sf ../run/systemd/resolve/resolv.conf \ ln -sf ../run/systemd/resolve/resolv.conf \
$(TARGET_DIR)/etc/resolv.conf $(TARGET_DIR)/etc/resolv.conf
endef endef
SYSTEMD_NETWORKD_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP))
ifneq ($(SYSTEMD_NETWORKD_DHCP_IFACE),)
define SYSTEMD_INSTALL_NETWORK_CONFS
sed s/SYSTEMD_NETWORKD_DHCP_IFACE/$(SYSTEMD_NETWORKD_DHCP_IFACE)/ \
package/systemd/dhcp.network > \
$(TARGET_DIR)/etc/systemd/network/dhcp.network
endef
endif
else else
SYSTEMD_CONF_OPTS += --disable-networkd SYSTEMD_CONF_OPTS += --disable-networkd
define SYSTEMD_INSTALL_SERVICE_NETWORK define SYSTEMD_INSTALL_SERVICE_NETWORK
@ -383,6 +391,7 @@ define SYSTEMD_INSTALL_INIT_SYSTEMD
$(SYSTEMD_INSTALL_SERVICE_TTY) $(SYSTEMD_INSTALL_SERVICE_TTY)
$(SYSTEMD_INSTALL_SERVICE_NETWORK) $(SYSTEMD_INSTALL_SERVICE_NETWORK)
$(SYSTEMD_INSTALL_SERVICE_TIMESYNC) $(SYSTEMD_INSTALL_SERVICE_TIMESYNC)
$(SYSTEMD_INSTALL_NETWORK_CONFS)
endef endef
$(eval $(autotools-package)) $(eval $(autotools-package))

View File

@ -372,7 +372,7 @@ config BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW
config BR2_SYSTEM_DHCP config BR2_SYSTEM_DHCP
string "Network interface to configure through DHCP" string "Network interface to configure through DHCP"
default "" default ""
depends on !BR2_PACKAGE_SYSTEMD_NETWORKD && (BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN) depends on BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN || BR2_PACKAGE_SYSTEMD_NETWORKD
help help
Enter here the name of the network interface (E.G. eth0) to Enter here the name of the network interface (E.G. eth0) to
automatically configure through DHCP at bootup. automatically configure through DHCP at bootup.
@ -382,11 +382,8 @@ config BR2_SYSTEM_DHCP
For more complicated network setups use an overlay to overwrite For more complicated network setups use an overlay to overwrite
/etc/network/interfaces or add a networkd configuration file. /etc/network/interfaces or add a networkd configuration file.
comment "automatic network configuration via DHCP is not compatible with networkd" comment "automatic network configuration via DHCP needs ifupdown or busybox or networkd"
depends on BR2_PACKAGE_SYSTEMD_NETWORKD depends on !(BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN || BR2_PACKAGE_SYSTEMD_NETWORKD)
comment "automatic network configuration via DHCP needs ifupdown or busybox"
depends on !(BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN)
endif # BR2_ROOTFS_SKELETON_DEFAULT endif # BR2_ROOTFS_SKELETON_DEFAULT