From c30b506664fbd65a1c7ac9cc6fe52fc07efccce2 Mon Sep 17 00:00:00 2001 From: Jianlong Huang Date: Fri, 16 Sep 2022 15:35:27 +0800 Subject: [PATCH 1/3] 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 --- package/ifupdown-scripts/ifupdown-scripts.mk | 25 ++++++++++++++++++++ system/Config.in | 15 ++++++++++++ 2 files changed, 40 insertions(+) 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) From 4af5f4a9136a64af51e3eabfd60e5c4cf94cf77d Mon Sep 17 00:00:00 2001 From: Samin Guo Date: Tue, 6 Dec 2022 16:09:08 +0800 Subject: [PATCH 2/3] package/ifupdown-scripts: add hotplug support When you plug the network cable, you can call ifplugd to automatically release and obtain the IP Signed-off-by: Samin Guo --- package/ifupdown-scripts/ifupdown-scripts.mk | 28 ++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/package/ifupdown-scripts/ifupdown-scripts.mk b/package/ifupdown-scripts/ifupdown-scripts.mk index 97f88959..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) @@ -39,8 +53,21 @@ 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 ; \ @@ -51,6 +78,7 @@ define IFUPDOWN_SCRIPTS_DHCP_DUAL 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) From 9b17acc9aab4730398587cf290a040ed666b95a2 Mon Sep 17 00:00:00 2001 From: Samin Guo Date: Tue, 6 Dec 2022 17:25:40 +0800 Subject: [PATCH 3/3] package/ifplugd: add eth1 support. Support the automatic IP acquisition/release of eth1. Signed-off-by: Samin Guo --- package/ifplugd/0006-add-eth1.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 package/ifplugd/0006-add-eth1.patch 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.)