[PATCH] upgrade.html: Rename uploaded firmware before sysupgrade

Fabian Bläse fabian at blaese.de
Sa Mai 25 19:43:42 CEST 2019


Gibt es hierzu noch Meinungen?
Ansonsten würde ich das auch mit einem Review aufnehmen.

Gruß
Fabian

On 07.05.19 15:46, Adrian Schmutzler wrote:
> At the moment sysupgrade via WebUI is broken on many devices.
> This is reproducible: While the (few) status messages seem
> normal, the device boots again with the old firmware.
> Sysupgrade via SSH always works.
> 
> The sysupgrade call in upgrade.html directly uses the path of
> the uploaded firmware file as argument. From several tests and
> based on caught stdout/stderr from this line, it looks like haserl
> deletes the uploaded firmware file due to a hidden trigger before
> or even while it is processed by sysupgrade.
> 
> The easiest way to work around that is to just rename the file
> before using it as argument to sysupgrade. This will preserve the
> file in case of a failed sysupgrade, but it will be overwritten
> with the next try.
> 
> Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
> ---
>  src/packages/fff/fff-web/Makefile                           | 2 +-
>  src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html | 5 +++--
>  2 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/src/packages/fff/fff-web/Makefile b/src/packages/fff/fff-web/Makefile
> index 9bb10f71..819644a5 100644
> --- a/src/packages/fff/fff-web/Makefile
> +++ b/src/packages/fff/fff-web/Makefile
> @@ -1,7 +1,7 @@
>  include $(TOPDIR)/rules.mk
>  
>  PKG_NAME:=fff-web
> -PKG_RELEASE:=7
> +PKG_RELEASE:=8
>  
>  PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
>  
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> index 96199c22..5fe1526c 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> @@ -72,8 +72,9 @@ elif [ "$do_sysupgrade" = "1" ] ; then
>  	echo "<pre>"
>  	echo "# Freeing caches ..."
>  	echo 3 > /proc/sys/vm/drop_caches
> -	echo "# sysupgrade $args $HASERL_firmware_path"
> -	sysupgrade $args $HASERL_firmware_path
> +	echo "# sysupgrade $args /tmp/uploadedfw.bin"
> +	mv -f "$HASERL_firmware_path" /tmp/uploadedfw.bin
> +	sysupgrade $args /tmp/uploadedfw.bin
>  	echo "</pre>"
>  fi
>  %>
> 

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 833 bytes
Beschreibung: OpenPGP digital signature
URL         : <https://{'listname': 'franken-dev-freifunk.net', 'hostname': 'lists.freifunk.net'}/pipermail/franken-dev-freifunk.net/attachments/20190525/b888e4fa/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev