diff --git a/package/ifupdown-scripts/ifupdown-scripts.mk b/package/ifupdown-scripts/ifupdown-scripts.mk index 5ef03214..97f88959 100644 --- a/package/ifupdown-scripts/ifupdown-scripts.mk +++ b/package/ifupdown-scripts/ifupdown-scripts.mk @@ -38,6 +38,27 @@ define IFUPDOWN_SCRIPTS_DHCP_OPENRC endef endif +IFUPDOWN_SCRIPTS_DHCP_DUAL_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP_DUAL)) + +ifneq ($(IFUPDOWN_SCRIPTS_DHCP_DUAL_IFACE),) +define IFUPDOWN_SCRIPTS_DHCP_DUAL + ( \ + echo ; \ + echo "auto $(IFUPDOWN_SCRIPTS_DHCP_DUAL_IFACE)"; \ + echo "iface $(IFUPDOWN_SCRIPTS_DHCP_DUAL_IFACE) inet dhcp"; \ + echo " pre-up /etc/network/nfs_check"; \ + echo " wait-delay 15"; \ + echo " hostname \$$(hostname)"; \ + ) >> $(TARGET_DIR)/etc/network/interfaces +endef +define IFUPDOWN_SCRIPTS_DHCP_DUAL_OPENRC + echo "ifup $(IFUPDOWN_SCRIPTS_DHCP_DUAL_IFACE)" \ + > $(TARGET_DIR)/etc/ifup.$(IFUPDOWN_SCRIPTS_DHCP_DUAL_IFACE) + echo "ifdown $(IFUPDOWN_SCRIPTS_DHCP_DUAL_IFACE)" \ + > $(TARGET_DIR)/etc/ifdown.$(IFUPDOWN_SCRIPTS_DHCP_DUAL_IFACE) +endef +endif + define IFUPDOWN_SCRIPTS_INSTALL_TARGET_CMDS $(INSTALL) -m 0755 -D $(IFUPDOWN_SCRIPTS_PKGDIR)/nfs_check \ $(TARGET_DIR)/etc/network/nfs_check @@ -48,6 +69,8 @@ define IFUPDOWN_SCRIPTS_INSTALL_INIT_OPENRC $(IFUPDOWN_SCRIPTS_PREAMBLE) $(IFUPDOWN_SCRIPTS_DHCP) $(IFUPDOWN_SCRIPTS_DHCP_OPENRC) + $(IFUPDOWN_SCRIPTS_DHCP_DUAL) + $(IFUPDOWN_SCRIPTS_DHCP_DUAL_OPENRC) endef define IFUPDOWN_SCRIPTS_INSTALL_INIT_SYSV @@ -56,6 +79,7 @@ define IFUPDOWN_SCRIPTS_INSTALL_INIT_SYSV $(IFUPDOWN_SCRIPTS_PREAMBLE) $(IFUPDOWN_SCRIPTS_LOCALHOST) $(IFUPDOWN_SCRIPTS_DHCP) + $(IFUPDOWN_SCRIPTS_DHCP_DUAL) endef # ifupdown-scripts can not be selected when systemd-networkd is @@ -67,6 +91,7 @@ define IFUPDOWN_SCRIPTS_INSTALL_INIT_SYSTEMD $(IFUPDOWN_SCRIPTS_PREAMBLE) $(IFUPDOWN_SCRIPTS_LOCALHOST) $(IFUPDOWN_SCRIPTS_DHCP) + $(IFUPDOWN_SCRIPTS_DHCP_DUAL) endef $(eval $(generic-package)) diff --git a/system/Config.in b/system/Config.in index b3abeddd..6945cd83 100644 --- a/system/Config.in +++ b/system/Config.in @@ -403,6 +403,21 @@ config BR2_SYSTEM_DHCP overwrite /etc/network/interfaces or add a networkd configuration file. +config BR2_SYSTEM_DHCP_DUAL + string "Dual Network interface for the 2nd to configure through DHCP" + default "" + depends on BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN || \ + BR2_PACKAGE_SYSTEMD_NETWORKD + help + Enter here the name of the network interface (E.G. eth1) 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 needs ifupdown or busybox or networkd or netifrc" depends on !(BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN || \ BR2_PACKAGE_SYSTEMD_NETWORKD || BR2_PACKAGE_NETIFRC)