diff --git a/package/ifplugd/0006-add-eth1.patch b/package/ifplugd/0006-add-eth1.patch new file mode 100644 index 00000000..53dd80eb --- /dev/null +++ b/package/ifplugd/0006-add-eth1.patch @@ -0,0 +1,12 @@ +diff -purN ifplugd-0.28.orig/conf/ifplugd.conf ifplugd-0.28/conf/ifplugd.conf +--- ifplugd-0.28.orig/conf/ifplugd.conf 2003-12-12 01:58:43.000000000 +0800 ++++ ifplugd-0.28/conf/ifplugd.conf 2022-12-06 16:37:58.939672090 +0800 +@@ -30,7 +30,7 @@ + # according to /proc/net/dev. Note that the list of interfaces + # appearing in /proc/net/dev may depend on which kernel modules you + # have loaded. +-INTERFACES="eth0" ++INTERFACES="eth0 eth1" + + # Additional parameters for ifplugd. + # (Run "ifplugd -h" for further information.) diff --git a/package/ifupdown-scripts/ifupdown-scripts.mk b/package/ifupdown-scripts/ifupdown-scripts.mk index 5ef03214..0c8f6635 100644 --- a/package/ifupdown-scripts/ifupdown-scripts.mk +++ b/package/ifupdown-scripts/ifupdown-scripts.mk @@ -18,8 +18,21 @@ define IFUPDOWN_SCRIPTS_LOCALHOST endef IFUPDOWN_SCRIPTS_DHCP_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP)) +IFUPDOWN_SCRIPTS_DHCP_HOTPLUG = $(call qstrip,$(BR2_PACKAGE_IFPLUGD)) ifneq ($(IFUPDOWN_SCRIPTS_DHCP_IFACE),) +ifneq ($(IFUPDOWN_SCRIPTS_DHCP_HOTPLUG),) +define IFUPDOWN_SCRIPTS_DHCP + ( \ + echo ; \ + echo "allow-hotplug $(IFUPDOWN_SCRIPTS_DHCP_IFACE)"; \ + echo "iface $(IFUPDOWN_SCRIPTS_DHCP_IFACE) inet dhcp"; \ + echo " pre-up /etc/network/nfs_check"; \ + echo " wait-delay 15"; \ + echo " hostname \$$(hostname)"; \ + ) >> $(TARGET_DIR)/etc/network/interfaces +endef +else define IFUPDOWN_SCRIPTS_DHCP ( \ echo ; \ @@ -30,6 +43,7 @@ define IFUPDOWN_SCRIPTS_DHCP echo " hostname \$$(hostname)"; \ ) >> $(TARGET_DIR)/etc/network/interfaces endef +endif define IFUPDOWN_SCRIPTS_DHCP_OPENRC echo "ifup $(IFUPDOWN_SCRIPTS_DHCP_IFACE)" \ > $(TARGET_DIR)/etc/ifup.$(IFUPDOWN_SCRIPTS_DHCP_IFACE) @@ -38,6 +52,41 @@ define IFUPDOWN_SCRIPTS_DHCP_OPENRC endef endif +IFUPDOWN_SCRIPTS_DHCP_DUAL_IFACE = $(call qstrip,$(BR2_SYSTEM_DHCP_DUAL)) +IFUPDOWN_SCRIPTS_DHCP_DUAL_IFACE_HOTPLUG = $(call qstrip,$BR2_PACKAGE_IFPLUGD)) + +ifneq ($(IFUPDOWN_SCRIPTS_DHCP_DUAL_IFACE),) +ifneq ($(IFUPDOWN_SCRIPTS_DHCP_DUAL_IFACE_HOTPLUG),) +define IFUPDOWN_SCRIPTS_DHCP_DUAL + ( \ + echo ; \ + echo "allow-hotplug $(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 +else +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 +endif +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 +97,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 +107,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 +119,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)