Commit f4f62a3c authored by Jeremy Rosen's avatar Jeremy Rosen Committed by Peter Korsgaard
Browse files

Allow a single DHCP configuration via the system configuration submenu



This patch allows the setup of simple a single interface to be
automatically brought up and configured via DHCP on system startup.

The interface name can be set via a configuration option. This patch
does not support systemd-networkd, any complex network configuration should
be done via overlay of /etc/network/interfaces or the relevant networkd
configuration file

[Peter: rename to BR2_SYSTEM_DHCP, tweak help text & implementation]
Signed-off-by: default avatarJérémy Rosen <jeremy.rosen@openwide.fr>
Signed-off-by: default avatarPeter Korsgaard <peter@korsgaard.com>
parent d538b8bf
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -326,6 +326,26 @@ config BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW

endif # BR2_ROOTFS_SKELETON_DEFAULT


config BR2_SYSTEM_DHCP
	string "Network interface to configure through DHCP"
	default ""
	depends on !BR2_PACKAGE_SYSTEMD_NETWORKD && (BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN)
	help
	  Enter here the name of the network interface (E.G. eth0) to
	  automatically configure through DHCP at bootup.

	  If left empty, no automatic DHCP requests will take place.

	  For more complicated network setups use an overlay to overwrite
	  /etc/network/interfaces or add a networkd configuration file.

comment "automatic network configuration via DHCP is not compatible with networkd"
	depends on BR2_PACKAGE_SYSTEMD_NETWORKD

comment "automatic network configuration via DHCP needs ifupdown or busybox"
	depends on !(BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN)

config BR2_TARGET_TZ_INFO
	bool "Install timezone info"
	# No timezone for musl; only for uClibc or (e)glibc.
+0 −4
Original line number Diff line number Diff line
# Configure Loopback
auto lo
iface lo inet loopback
+29 −0
Original line number Diff line number Diff line
@@ -38,6 +38,35 @@ ifneq ($(TARGET_GENERIC_ROOT_PASSWD),)
TARGETS += host-mkpasswd
endif

define SET_NETWORK_LOCALHOST
	( \
		echo "# interface file auto-generated by buildroot"; \
		echo ;                                               \
		echo "auto lo";                                      \
		echo "iface lo inet loopback";                       \
	) > $(TARGET_DIR)/etc/network/interfaces
endef

NETWORK_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP))

ifneq ($(NETWORK_DHCP_IFACE),)
define SET_NETWORK_DHCP
	( \
		echo ;                                               \
		echo "auto $(NETWORK_DHCP_IFACE)";                   \
		echo "iface $(NETWORK_DHCP_IFACE) inet dhcp";        \
	) >> $(TARGET_DIR)/etc/network/interfaces
endef
endif

define SET_NETWORK
	mkdir -p $(TARGET_DIR)/etc/network/
	$(SET_NETWORK_LOCALHOST)
	$(SET_NETWORK_DHCP)
endef

TARGET_FINALIZE_HOOKS += SET_NETWORK

ifeq ($(BR2_ROOTFS_SKELETON_DEFAULT),y)

define SYSTEM_ROOT_PASSWD