Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
| docs:guide-user:advanced:sysupgrade_extras [2022/11/29 17:53] – [Instructions] efi/gpt fix vgaetera | docs:guide-user:advanced:sysupgrade_extras [2023/12/01 01:36] – [Instructions] minimize write operations vgaetera | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Sysupgrade extras ====== | ====== Sysupgrade extras ====== | ||
| - | {{section> | + | {{section> |
| ===== Introduction ===== | ===== Introduction ===== | ||
| Line 7: | Line 7: | ||
| ===== Features ===== | ===== Features ===== | ||
| - | * Check/ | + | * Check the latest firmware release available. |
| + | * Download the firmware image and verify its checksum. | ||
| * Allow to force/skip upgrade matching the current release. | * Allow to force/skip upgrade matching the current release. | ||
| - | * Expand | + | * Save/ |
| ===== Options ===== | ===== Options ===== | ||
| ^ Option ^ Description ^ | ^ Option ^ Description ^ | ||
| - | | '' | + | | '' |
| - | | '' | + | | '' |
| - | | '' | + | | '' |
| + | | '' | ||
| ===== Instructions ===== | ===== Instructions ===== | ||
| Line 25: | Line 27: | ||
| local SYSUP_CMD=" | local SYSUP_CMD=" | ||
| case " | case " | ||
| - | (-I) opkg save | + | (-A|-U) sysupgrade_proc " |
| - | sysupgrade_init | + | (-S) service_save |
| - | (-A) . / | + | (-R) service_restore |
| - | sysupgrade_auto | + | |
| - | (-U) | + | |
| - | sysupgrade_force | + | |
| (*) command sysupgrade " | (*) command sysupgrade " | ||
| esac | esac | ||
| } | } | ||
| - | sysupgrade_init() { | + | sysupgrade_proc() { |
| - | uci -q batch << EOI | + | . /etc/os-release |
| - | set opkg.init=' | + | |
| - | add_list opkg.init.ipkg=' | + | |
| - | add_list opkg.init.ipkg=' | + | |
| - | add_list opkg.init.ipkg=' | + | |
| - | commit opkg | + | |
| - | EOI | + | |
| - | } | + | |
| - | + | ||
| - | sysupgrade_auto() { | + | |
| local SYSUP_VER=" | local SYSUP_VER=" | ||
| local SYSUP_URL=" | local SYSUP_URL=" | ||
| local SYSUP_REV=" | local SYSUP_REV=" | ||
| - | if [ " | + | if [ " |
| - | || [ -n "${SYSUP_FORCE}" ] | + | || [ "${SYSUP_CMD}" = "-U" ] |
| - | then | + | then shift |
| local SYSUP_DEV=" | local SYSUP_DEV=" | ||
| local SYSUP_PROF=" | local SYSUP_PROF=" | ||
| local SYSUP_FS=" | local SYSUP_FS=" | ||
| local SYSUP_TYPE=" | local SYSUP_TYPE=" | ||
| + | local SYSUP_EFI=" | ||
| local SYSUP_IMG=" | local SYSUP_IMG=" | ||
| - | uclient-fetch -P /tmp "${SYSUP_URL}/ | + | sysupgrade |
| - | case "${SYSUP_IMG}" in | + | |
| - | (*.gz) gunzip -k /tmp/" | + | |
| - | esac | + | |
| - | sysupgrade -i /tmp/"${SYSUP_IMG%.gz}" | + | |
| fi | fi | ||
| - | } | ||
| - | |||
| - | sysupgrade_force() { | ||
| - | local SYSUP_FORCE=" | ||
| - | sysupgrade -A | ||
| } | } | ||
| sysupgrade_ver() { | sysupgrade_ver() { | ||
| - | case "${DISTRIB_RELEASE}" in | + | case "${VERSION_ID}" in |
| - | (SNAPSHOT) echo " | + | (snapshot) echo " |
| - | (*) uclient-fetch | + | (*) wget -O - \ |
| " | " | ||
| | jsonfilter -e " | | jsonfilter -e " | ||
| Line 82: | Line 64: | ||
| sysupgrade_url() { | sysupgrade_url() { | ||
| echo " | echo " | ||
| - | releases/ | + | releases/ |
| } | } | ||
| sysupgrade_rev() { | sysupgrade_rev() { | ||
| - | uclient-fetch | + | wget -O - " |
| } | } | ||
| Line 95: | Line 77: | ||
| sysupgrade_prof() { | sysupgrade_prof() { | ||
| - | case "${DISTRIB_TARGET}" in | + | case "${OPENWRT_BOARD}" in |
| - | (x86*) echo " | + | (x86/*) echo " |
| (*) echo " | (*) echo " | ||
| esac | esac | ||
| Line 107: | Line 89: | ||
| sysupgrade_type() { | sysupgrade_type() { | ||
| - | case "${DISTRIB_TARGET}" in | + | case "${OPENWRT_BOARD}" in |
| - | (x86*) echo " | + | (x86/*) echo " |
| (*) echo " | (*) echo " | ||
| esac | esac | ||
| + | } | ||
| + | |||
| + | sysupgrade_efi() { | ||
| + | if [ -d / | ||
| + | then echo " | ||
| + | fi | ||
| } | } | ||
| sysupgrade_img() { | sysupgrade_img() { | ||
| - | uclient-fetch | + | wget -O - " |
| - | | jsonfilter -e " | + | | jsonfilter -e " |
| - | [@[' | + | [' |
| - | [' | + | && |
| + | } | ||
| + | |||
| + | service_save() { | ||
| + | local SVC_NAME=" | ||
| + | local SVC_STATE | ||
| + | for SVC_NAME in ${SVC_NAME} | ||
| + | do if command service " | ||
| + | then SVC_STATE=" | ||
| + | else SVC_STATE=" | ||
| + | fi | ||
| + | uci -q batch << EOI | ||
| + | set system.service=' | ||
| + | del_list system.service.enable=' | ||
| + | del_list system.service.disable=' | ||
| + | add_list system.service.' | ||
| + | EOI | ||
| + | done | ||
| + | uci commit system | ||
| + | } | ||
| + | |||
| + | service_restore() { | ||
| + | local SVC_NAME | ||
| + | local SVC_STATE=" | ||
| + | for SVC_STATE in ${SVC_STATE} | ||
| + | do SVC_NAME=" | ||
| + | for SVC_NAME in ${SVC_NAME} | ||
| + | do command service " | ||
| + | done | ||
| + | done | ||
| } | } | ||
| EOF | EOF | ||
| . / | . / | ||
| - | # Configure | + | # Configure |
| - | cat << " | + | cat << " |
| - | if [ ! -e /etc/root-resize ] \ | + | if [ ! -e /etc/service-restore ] |
| - | && lock -n / | + | |
| - | && [ -e /etc/opkg-restore-init ] | + | |
| then . / | then . / | ||
| - | BOOT=" | + | sysupgrade |
| - | DISK=" | + | touch /etc/service-restore |
| - | PART=" | + | |
| - | ROOT=" | + | |
| - | echo fix | parted ---pretend-input-tty " | + | |
| - | parted " | + | |
| - | case " | + | |
| - | (ext4) LOOP=" | + | |
| - | losetup " | + | |
| - | (squashfs) LOOP=" | + | |
| - | | sed -n -e " | + | |
| - | esac | + | |
| - | resize2fs -f " | + | |
| - | touch /etc/root-resize | + | |
| - | lock -u / | + | |
| fi | fi | ||
| exit 1 | exit 1 | ||
| EOF | EOF | ||
| cat << " | cat << " | ||
| - | / | + | / |
| EOF | EOF | ||
| </ | </ | ||
| Line 153: | Line 155: | ||
| ===== Examples ===== | ===== Examples ===== | ||
| <code bash> | <code bash> | ||
| - | # Automated Sysupgrade | + | # Automated |
| - | sysupgrade -I | + | sysupgrade -A -i |
| - | sysupgrade -A | + | |
| + | # Forced interactive Sysupgrade | ||
| + | sysupgrade -U -i | ||
| </ | </ | ||
| ===== Automated ===== | ===== Automated ===== | ||
| <code bash> | <code bash> | ||
| - | uclient-fetch -O sysupgrade-extras.sh " | + | wget -U "" |
| . ./ | . ./ | ||
| </ | </ | ||