From b89b19b85436803513dc89681b17918c8fd9521f Mon Sep 17 00:00:00 2001 From: John Crispin Date: Tue, 17 Sep 2024 17:30:46 +0200 Subject: [PATCH] uboot-envtools: add a board.d script to load defaults from the environment This allows loading default wifi credentials, passwords and ssh keys on firstboot. Signed-off-by: John Crispin --- package/boot/uboot-envtools/Makefile | 2 ++ package/boot/uboot-envtools/files/fw_defaults | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 package/boot/uboot-envtools/files/fw_defaults diff --git a/package/boot/uboot-envtools/Makefile b/package/boot/uboot-envtools/Makefile index 875afad554c..61939be6de9 100644 --- a/package/boot/uboot-envtools/Makefile +++ b/package/boot/uboot-envtools/Makefile @@ -72,6 +72,8 @@ define Package/uboot-envtools/install $(INSTALL_BIN) ./files/fw_printsys $(1)/usr/sbin $(INSTALL_BIN) ./files/fw_setsys $(1)/usr/sbin $(INSTALL_BIN) ./files/fw_loadenv $(1)/usr/sbin + $(INSTALL_DIR) $(1)/etc/board.d + $(INSTALL_DATA) ./files/fw_defaults $(1)/etc/board.d/05_fw_defaults $(INSTALL_DIR) $(1)/lib $(INSTALL_DATA) ./files/uboot-envtools.sh $(1)/lib $(INSTALL_DIR) $(1)/etc/uci-defaults diff --git a/package/boot/uboot-envtools/files/fw_defaults b/package/boot/uboot-envtools/files/fw_defaults new file mode 100644 index 00000000000..42558aaa883 --- /dev/null +++ b/package/boot/uboot-envtools/files/fw_defaults @@ -0,0 +1,17 @@ +. /lib/functions/uci-defaults.sh + +fw_loadenv + +board_config_update + +[ -f /var/run/uboot-env/owrt_ssid -a -f /var/run/uboot-env/owrt_wifi_key ] && + ucidef_set_wireless all "$(cat /var/run/uboot-env/owrt_ssid)" sae-mixed "$(cat /var/run/uboot-env/owrt_wifi_key)" +[ -f /var/run/uboot-env/owrt_country ] && ucidef_set_country "$(cat /var/run/uboot-env/owrt_country)" +[ -f /var/run/uboot-env/owrt_ssh_auth_key ] && ucidef_set_ssh_authorized_key "$(cat /var/run/uboot-env/owrt_ssh_auth_key)" +[ -f /var/run/uboot-env/owrt_root_password_plain ] && ucidef_set_root_password_plain "$(cat /var/run/uboot-env/owrt_root_password_plain)" +[ -f /var/run/uboot-env/owrt_root_password_hash ] && ucidef_set_root_password_hash "$(cat /var/run/uboot-env/owrt_root_password_hash)" +[ -f /var/run/uboot-env/owrt_timezone ] && ucidef_set_timezone "$(cat /var/run/uboot-env/owrt_timezone)" + +board_config_flush + +exit 0