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 <john@phrozen.org>
This commit is contained in:
John Crispin 2024-09-17 17:30:46 +02:00
parent 84577e48bc
commit b89b19b854
2 changed files with 19 additions and 0 deletions

View File

@ -72,6 +72,8 @@ define Package/uboot-envtools/install
$(INSTALL_BIN) ./files/fw_printsys $(1)/usr/sbin $(INSTALL_BIN) ./files/fw_printsys $(1)/usr/sbin
$(INSTALL_BIN) ./files/fw_setsys $(1)/usr/sbin $(INSTALL_BIN) ./files/fw_setsys $(1)/usr/sbin
$(INSTALL_BIN) ./files/fw_loadenv $(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_DIR) $(1)/lib
$(INSTALL_DATA) ./files/uboot-envtools.sh $(1)/lib $(INSTALL_DATA) ./files/uboot-envtools.sh $(1)/lib
$(INSTALL_DIR) $(1)/etc/uci-defaults $(INSTALL_DIR) $(1)/etc/uci-defaults

View File

@ -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