Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v4] Allow a single DHCP configuration via the system configuration submenu
@ 2015-01-16 13:08 Jérémy Rosen
  2015-01-16 15:19 ` Thomas Petazzoni
  2015-02-02 16:36 ` Peter Korsgaard
  0 siblings, 2 replies; 11+ messages in thread
From: Jérémy Rosen @ 2015-01-16 13:08 UTC (permalink / raw)
  To: buildroot

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

Signed-off-by: J?r?my Rosen <jeremy.rosen@openwide.fr>

---
v4 : - changed condition to also depend on ifupdown or busybox
       suggestion by Gustavo Zacarias

v3 : - move the condition from shell logic to make logic
       (reusing the code proposed by Thomas Petazzoni)

v2 : - inline shell section instead of providing a script
     - add one Config.in option instead of two
---
 system/Config.in                       | 21 +++++++++++++++++++++
 system/skeleton/etc/network/interfaces |  4 ----
 system/system.mk                       | 25 +++++++++++++++++++++++++
 3 files changed, 46 insertions(+), 4 deletions(-)
 delete mode 100644 system/skeleton/etc/network/interfaces

diff --git a/system/Config.in b/system/Config.in
index 4d7a4e3..71d8689 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -324,6 +324,27 @@ config BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW
 
 endif # BR2_ROOTFS_SKELETON_DEFAULT
 
+
+config BR2_SIMPLE_DHCP
+	string "Name of the physical network interface to run DHCP on"
+	default ""
+	depends on !BR2_PACKAGE_SYSTEMD_NETWORKD && (BR2_PACKAGE_BUSYBOX || BR2_PACKAGE_IFUPDOWN)
+	help
+	  The name of the network interface to configure automatically.
+	  A DHCP request will automatically happen on startup on the selected
+	  interface.
+
+	  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.
diff --git a/system/skeleton/etc/network/interfaces b/system/skeleton/etc/network/interfaces
deleted file mode 100644
index 218b82c..0000000
--- a/system/skeleton/etc/network/interfaces
+++ /dev/null
@@ -1,4 +0,0 @@
-# Configure Loopback
-auto lo
-iface lo inet loopback
-
diff --git a/system/system.mk b/system/system.mk
index e4a3160..96aa342 100644
--- a/system/system.mk
+++ b/system/system.mk
@@ -38,6 +38,31 @@ ifneq ($(TARGET_GENERIC_ROOT_PASSWD),)
 TARGETS += host-mkpasswd
 endif
 
+define SET_NETWORK_LOCALHOST
+        echo "# interface file auto-generated by buildroot" >  $(TARGET_DIR)/etc/network/interfaces
+        echo                                                >> $(TARGET_DIR)/etc/network/interfaces
+        echo "auto lo"                                      >> $(TARGET_DIR)/etc/network/interfaces
+        echo "iface lo inet loopback"                       >> $(TARGET_DIR)/etc/network/interfaces
+        echo                                                >> $(TARGET_DIR)/etc/network/interfaces
+endef
+
+NETWORK_DHCP_IFACE = $(call qstrip,$(BR2_SIMPLE_DHCP))
+
+ifneq ($(NETWORK_DHCP_IFACE),)
+define SET_NETWORK_DHCP
+        echo "auto $(NETWORK_DHCP_IFACE)"                   >> $(TARGET_DIR)/etc/network/interfaces
+        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
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-02-16  8:46 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-16 13:08 [Buildroot] [PATCH v4] Allow a single DHCP configuration via the system configuration submenu Jérémy Rosen
2015-01-16 15:19 ` Thomas Petazzoni
2015-01-16 15:30   ` Jeremy Rosen
2015-02-02 16:36 ` Peter Korsgaard
2015-02-02 16:38   ` Jeremy Rosen
2015-02-14 16:18     ` Steve Kenton
2015-02-15 20:12       ` Peter Korsgaard
2015-02-15 22:04         ` Steve Kenton
2015-02-15 22:11           ` Peter Korsgaard
2015-02-16  3:06             ` Steve Kenton
2015-02-16  8:46         ` Jeremy Rosen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox