Consider a system with uboot-env at first boot after sysupgrade. By default /etc/config/ubootenv will have been restored, which is not the case for /etc/fw_env.config (generated, not installed by opkg).
Unfortunately fw_env.config will only be generated when /etc/config/ubootenv is initialised (there is no uboot-env(tools) init script. Hence the system may end up with a missing fw_env.config after a sysupgrade: * fw_env.config may not have existed, but now it should (added support for board) * fw_env.config existed, but not part of sysupgrade backup (and thus not restored) The following patch will retry uci-defaults for uboot-envtools when fw_env.config is missing from sysupgrade backup, or it is empty. Signed-off-by: Tijs Van Buggenhout <t...@able.be> -- diff --git a/package/boot/uboot-envtools/files/ar71xx b/package/boot/uboot-envtools/files/ar71xx index 8d64d43..ea8cf72 100644 --- a/package/boot/uboot-envtools/files/ar71xx +++ b/package/boot/uboot-envtools/files/ar71xx @@ -3,14 +3,19 @@ # Copyright (C) 2011-2014 OpenWrt.org # -[ -s /etc/config/ubootenv ] && exit 0 +FWC="/etc/fw_env.config" +UC="/etc/config/ubootenv" -touch /etc/config/ubootenv +[ -s $FWC -a -s $UC ] && exit 0 -. /lib/ar71xx.sh . /lib/uboot-envtools.sh . /lib/functions.sh +[ -s $UC ] || { +touch $UC + +. /lib/ar71xx.sh + board=$(ar71xx_board_name) case "$board" in @@ -45,6 +50,7 @@ qihoo-c301) ubootenv_add_uci_config "/dev/mtd9" "0x0" "0x10000" "0x10000" ;; esac +} config_load ubootenv config_foreach ubootenv_add_app_config ubootenv diff --git a/package/boot/uboot-envtools/files/cns3xxx b/package/boot/uboot-envtools/files/cns3xxx index 70521ed..1412d3c 100644 --- a/package/boot/uboot-envtools/files/cns3xxx +++ b/package/boot/uboot-envtools/files/cns3xxx @@ -3,14 +3,19 @@ # Copyright (C) 2013 OpenWrt.org # -[ -s /etc/config/ubootenv ] && exit 0 +FWC="/etc/fw_env.config" +UC="/etc/config/ubootenv" -touch /etc/config/ubootenv +[ -s $FWC -a -s $UC ] && exit 0 -. /lib/cns3xxx.sh . /lib/uboot-envtools.sh . /lib/functions.sh +[ -s $UC ] || { +touch $UC + +. /lib/cns3xxx.sh + board=$(cns3xxx_board_name) case "$board" in @@ -21,6 +26,7 @@ laguna) ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x$size" "0x$erasesize" ;; esac +} config_load ubootenv config_foreach ubootenv_add_app_config ubootenv diff --git a/package/boot/uboot-envtools/files/imx6 b/package/boot/uboot-envtools/files/imx6 index a63c8ae..5982c88 100644 --- a/package/boot/uboot-envtools/files/imx6 +++ b/package/boot/uboot-envtools/files/imx6 @@ -3,14 +3,19 @@ # Copyright (C) 2013-2014 OpenWrt.org # -[ -s /etc/config/ubootenv ] && exit 0 +FWC="/etc/fw_env.config" +UC="/etc/config/ubootenv" -touch /etc/config/ubootenv +[ -s $FWC -a -s $UC ] && exit 0 -. /lib/imx6.sh . /lib/uboot-envtools.sh . /lib/functions.sh +[ -s $UC ] || { +touch $UC + +. /lib/imx6.sh + board=$(imx6_board_name) case "$board" in @@ -18,6 +23,7 @@ case "$board" in ubootenv_add_uci_config "/dev/mmcblk0" "0x60000" "0x2000" "0x2000" ;; esac +} config_load ubootenv config_foreach ubootenv_add_app_config ubootenv diff --git a/package/boot/uboot-envtools/files/kirkwood b/package/boot/uboot-envtools/files/kirkwood index ec32ec0..020e2f6 100644 --- a/package/boot/uboot-envtools/files/kirkwood +++ b/package/boot/uboot-envtools/files/kirkwood @@ -3,14 +3,19 @@ # Copyright (C) 2012-2014 OpenWrt.org # -[ -s /etc/config/ubootenv ] && exit 0 +FWC="/etc/fw_env.config" +UC="/etc/config/ubootenv" -touch /etc/config/ubootenv +[ -s $FWC -a -s $UC ] && exit 0 -. /lib/kirkwood.sh . /lib/uboot-envtools.sh . /lib/functions.sh +[ -s $UC ] || { +touch $UC + +. /lib/kirkwood.sh + board=$(kirkwood_board_name) case "$board" in @@ -20,6 +25,7 @@ case "$board" in ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000" ;; esac +} config_load ubootenv config_foreach ubootenv_add_app_config ubootenv diff --git a/package/boot/uboot-envtools/files/lantiq b/package/boot/uboot-envtools/files/lantiq index 79526c0..aced7e9 100644 --- a/package/boot/uboot-envtools/files/lantiq +++ b/package/boot/uboot-envtools/files/lantiq @@ -3,14 +3,19 @@ # Copyright (C) 2012 OpenWrt.org # -[ -s /etc/config/ubootenv ] && exit 0 +FWC="/etc/fw_env.config" +UC="/etc/config/ubootenv" -touch /etc/config/ubootenv +[ -s $FWC -a -s $UC ] && exit 0 -. /lib/functions/lantiq.sh . /lib/uboot-envtools.sh . /lib/functions.sh +[ -s $UC ] || { +touch $UC + +. /lib/functions/lantiq.sh + board=$(lantiq_board_name) case "$board" in @@ -21,6 +26,7 @@ BTHOMEHUBV2B) ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x10000" "1" ;; esac +} config_load ubootenv config_foreach ubootenv_add_app_config ubootenv diff --git a/package/boot/uboot-envtools/files/mvebu b/package/boot/uboot-envtools/files/mvebu index bfec1e5..9565e5a 100644 --- a/package/boot/uboot-envtools/files/mvebu +++ b/package/boot/uboot-envtools/files/mvebu @@ -3,14 +3,19 @@ # Copyright (C) 2014 OpenWrt.org # -[ -s /etc/config/ubootenv ] && exit 0 +FWC="/etc/fw_env.config" +UC="/etc/config/ubootenv" -touch /etc/config/ubootenv +[ -s $FWC -a -s $UC ] && exit 0 -. /lib/mvebu.sh . /lib/uboot-envtools.sh . /lib/functions.sh +[ -s $UC ] || { +touch $UC + +. /lib/mvebu.sh + board=$(mvebu_board_name) case "$board" in @@ -18,6 +23,7 @@ case "$board" in ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x40000" "0x20000" ;; esac +} config_load ubootenv config_foreach ubootenv_add_app_config ubootenv diff --git a/package/boot/uboot-envtools/files/mxs b/package/boot/uboot-envtools/files/mxs index ee66e8e..8d30fc1 100644 --- a/package/boot/uboot-envtools/files/mxs +++ b/package/boot/uboot-envtools/files/mxs @@ -3,14 +3,18 @@ # Copyright (C) 2013 OpenWrt.org # -[ -s /etc/config/ubootenv ] && exit 0 +FWC="/etc/fw_env.config" +UC="/etc/config/ubootenv" +[ -s $FWC -a -s $UC ] && exit 0 -touch /etc/config/ubootenv - -. /lib/mxs.sh . /lib/uboot-envtools.sh . /lib/functions.sh +[ -s $UC ] || { +touch $UC + +. /lib/mxs.sh + board=$(mxs_board_name) case "$board" in @@ -19,6 +23,7 @@ duckbill) ubootenv_add_uci_config "/dev/mmcblk0" "0x40000" "0x20000" ;; esac +} config_load ubootenv config_foreach ubootenv_add_app_config ubootenv diff --git a/package/boot/uboot-envtools/files/ramips b/package/boot/uboot-envtools/files/ramips index 6dffbb6..848baf6 100644 --- a/package/boot/uboot-envtools/files/ramips +++ b/package/boot/uboot-envtools/files/ramips @@ -3,14 +3,19 @@ # Copyright (C) 2011-2012 OpenWrt.org # -[ -s /etc/config/ubootenv ] && exit 0 +FWC="/etc/fw_env.config" +UC="/etc/config/ubootenv" -touch /etc/config/ubootenv +[ -s $FWC -a -s $UC ] && exit 0 -. /lib/ramips.sh . /lib/uboot-envtools.sh . /lib/functions.sh +[ -s $UC ] || { +touch $UC + +. /lib/ramips.sh + board=$(ramips_board_name) case "$board" in @@ -23,6 +28,7 @@ br6425) ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x10000" ;; esac +} config_load ubootenv config_foreach ubootenv_add_app_config ubootenv _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel