build: add option to use preinit IP as LAN IP
authorStijn Tintel <stijn@linux-ipv6.be>
Wed, 7 Dec 2022 17:04:12 +0000 (19:04 +0200)
committerStijn Tintel <stijn@linux-ipv6.be>
Fri, 17 Feb 2023 14:20:03 +0000 (16:20 +0200)
We currently have build options to customize the IP address used in the
preinit phase of the boot process, but not to set the default LAN IP.

Introduce a boolean build option that, when enabled, results in the IP
address configured for the preinit phase, to be also used as the default
LAN IP address.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
package/base-files/Makefile
package/base-files/image-config.in

index 914f0598ff9c181952f20f769e64d2b1121b6ae2..8732f82fb9815ea67dc548bd897836249ea893c9 100644 (file)
@@ -89,6 +89,19 @@ define ImageConfigOptions
        echo 'pi_preinit_net_messages="$(CONFIG_TARGET_PREINIT_SHOW_NETMSG)"' >>$(1)/lib/preinit/00_preinit.conf
        echo 'pi_preinit_no_failsafe_netmsg="$(CONFIG_TARGET_PREINIT_SUPPRESS_FAILSAFE_NETMSG)"' >>$(1)/lib/preinit/00_preinit.conf
        echo 'pi_preinit_no_failsafe="$(CONFIG_TARGET_PREINIT_DISABLE_FAILSAFE)"' >>$(1)/lib/preinit/00_preinit.conf
+ifeq ($(CONFIG_TARGET_DEFAULT_LAN_IP_FROM_PREINIT),y)
+       mkdir -p $(1)/etc/board.d
+       echo '. /lib/functions/uci-defaults.sh' >$(1)/etc/board.d/99-lan-ip
+       echo 'logger -t 99-lan-ip "setting custom default LAN IP"' >>$(1)/etc/board.d/99-lan-ip
+       echo 'board_config_update' >>$(1)/etc/board.d/99-lan-ip
+       echo 'json_select network' >>$(1)/etc/board.d/99-lan-ip
+       echo 'json_select lan' >>$(1)/etc/board.d/99-lan-ip
+       echo 'json_add_string ipaddr $(if $(CONFIG_TARGET_PREINIT_IP),$(CONFIG_TARGET_PREINIT_IP),"192.168.1.1")' >>$(1)/etc/board.d/99-lan-ip
+       echo 'json_add_string netmask $(if $(CONFIG_TARGET_PREINIT_NETMASK),$(CONFIG_TARGET_PREINIT_NETMASK),"255.255.255.0")' >>$(1)/etc/board.d/99-lan-ip
+       echo 'json_select ..' >>$(1)/etc/board.d/99-lan-ip
+       echo 'json_select ..' >>$(1)/etc/board.d/99-lan-ip
+       echo 'board_config_flush' >>$(1)/etc/board.d/99-lan-ip
+endif
 endef
 
 define Build/Prepare
index ac406bc456bd91c17e5ffef7da01314a5477bdc5..2de2130b8490d9f18fa0b0189fa1ed7432e9528a 100644 (file)
@@ -5,6 +5,13 @@
 # See /LICENSE for more information.
 #
 
+config TARGET_DEFAULT_LAN_IP_FROM_PREINIT
+       bool "Use preinit IP configuration as default LAN IP" if IMAGEOPT
+       default n
+       help
+               Enabling this will set the default LAN IP address and netmask
+               to the preinit values set in the image config.
+
 menuconfig PREINITOPT
        bool "Preinit configuration options" if IMAGEOPT
        default n