Browse Source

ifupdown: Add dual network dhcp

For visionfive2, there are two network interface
Add dual network dhcp for the 2nd interface

Signed-off-by: Jianlong Huang <jianlong.huang@starfivetech.com>
Jianlong Huang 1 year ago
parent
commit
491e262342
2 changed files with 40 additions and 0 deletions
  1. 25 0
      package/ifupdown-scripts/ifupdown-scripts.mk
  2. 15 0
      system/Config.in

+ 25 - 0
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))

+ 15 - 0
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)