<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://kbu.freifunk.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Sysupgrade</id>
	<title>Sysupgrade - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://kbu.freifunk.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Sysupgrade"/>
	<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Sysupgrade&amp;action=history"/>
	<updated>2026-04-09T11:43:43Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Freifunk Köln, Bonn und Umgebung</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Sysupgrade&amp;diff=5892&amp;oldid=prev</id>
		<title>Yanosz am 28. August 2019 um 10:32 Uhr</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Sysupgrade&amp;diff=5892&amp;oldid=prev"/>
		<updated>2019-08-28T10:32:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 28. August 2019, 12:32 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Kategorie:Archiv]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{:Archiv-Hinweis}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#!/bin/sh&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#!/bin/sh&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Yanosz</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Sysupgrade&amp;diff=2747&amp;oldid=prev</id>
		<title>Kaleng am 29. August 2014 um 21:04 Uhr</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Sysupgrade&amp;diff=2747&amp;oldid=prev"/>
		<updated>2014-08-29T21:04:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 29. August 2014, 23:04 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nowiki&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#!/bin/sh&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#!/bin/sh&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;. /lib/functions.sh&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;. /lib/functions.sh&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l227&quot;&gt;Zeile 227:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 227:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	do_upgrade&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	do_upgrade&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;fi&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;fi&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nowiki&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kaleng</name></author>
	</entry>
	<entry>
		<id>https://kbu.freifunk.net/wiki/index.php?title=Sysupgrade&amp;diff=2746&amp;oldid=prev</id>
		<title>Kaleng: Die Seite wurde neu angelegt: „&lt;nowiki&gt; #!/bin/sh . /lib/functions.sh . /lib/functions/system.sh  # initialize defaults RAMFS_COPY_BIN=&quot;&quot;	# extra programs for temporary ramfs root RAMFS_COPY…“</title>
		<link rel="alternate" type="text/html" href="https://kbu.freifunk.net/wiki/index.php?title=Sysupgrade&amp;diff=2746&amp;oldid=prev"/>
		<updated>2014-08-29T21:03:37Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „&amp;lt;nowiki&amp;gt; #!/bin/sh . /lib/functions.sh . /lib/functions/system.sh  # initialize defaults RAMFS_COPY_BIN=&amp;quot;&amp;quot;	# extra programs for temporary ramfs root RAMFS_COPY…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
. /lib/functions.sh&lt;br /&gt;
. /lib/functions/system.sh&lt;br /&gt;
&lt;br /&gt;
# initialize defaults&lt;br /&gt;
RAMFS_COPY_BIN=&amp;quot;&amp;quot;	# extra programs for temporary ramfs root&lt;br /&gt;
RAMFS_COPY_DATA=&amp;quot;&amp;quot;	# extra data files&lt;br /&gt;
export MTD_CONFIG_ARGS=&amp;quot;&amp;quot;&lt;br /&gt;
export INTERACTIVE=0&lt;br /&gt;
export VERBOSE=1&lt;br /&gt;
export SAVE_CONFIG=1&lt;br /&gt;
export SAVE_OVERLAY=0&lt;br /&gt;
export DELAY=&lt;br /&gt;
export CONF_IMAGE=&lt;br /&gt;
export CONF_BACKUP_LIST=0&lt;br /&gt;
export CONF_BACKUP=&lt;br /&gt;
export CONF_RESTORE=&lt;br /&gt;
export NEED_IMAGE=&lt;br /&gt;
export HELP=0&lt;br /&gt;
export FORCE=0&lt;br /&gt;
export TEST=0&lt;br /&gt;
&lt;br /&gt;
# parse options&lt;br /&gt;
while [ -n &amp;quot;$1&amp;quot; ]; do&lt;br /&gt;
	case &amp;quot;$1&amp;quot; in&lt;br /&gt;
		-i) export INTERACTIVE=1;;&lt;br /&gt;
		-d) export DELAY=&amp;quot;$2&amp;quot;; shift;;&lt;br /&gt;
		-v) export VERBOSE=&amp;quot;$(($VERBOSE + 1))&amp;quot;;;&lt;br /&gt;
		-q) export VERBOSE=&amp;quot;$(($VERBOSE - 1))&amp;quot;;;&lt;br /&gt;
		-n) export SAVE_CONFIG=0;;&lt;br /&gt;
		-c) export SAVE_OVERLAY=1;;&lt;br /&gt;
		-b|--create-backup) export CONF_BACKUP=&amp;quot;$2&amp;quot; NEED_IMAGE=1; shift;;&lt;br /&gt;
		-r|--restore-backup) export CONF_RESTORE=&amp;quot;$2&amp;quot; NEED_IMAGE=1; shift;;&lt;br /&gt;
		-l|--list-backup) export CONF_BACKUP_LIST=1; break;;&lt;br /&gt;
		-f) export CONF_IMAGE=&amp;quot;$2&amp;quot;; shift;;&lt;br /&gt;
		-F|--force) export FORCE=1;;&lt;br /&gt;
		-T|--test) export TEST=1;;&lt;br /&gt;
		-h|--help) export HELP=1; break;;&lt;br /&gt;
		-*)&lt;br /&gt;
			echo &amp;quot;Invalid option: $1&amp;quot;&lt;br /&gt;
			exit 1&lt;br /&gt;
		;;&lt;br /&gt;
		*) break;;&lt;br /&gt;
	esac&lt;br /&gt;
	shift;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
export CONFFILES=/tmp/sysupgrade.conffiles&lt;br /&gt;
export CONF_TAR=/tmp/sysupgrade.tgz&lt;br /&gt;
&lt;br /&gt;
export ARGV=&amp;quot;$*&amp;quot;&lt;br /&gt;
export ARGC=&amp;quot;$#&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ -z &amp;quot;$ARGV&amp;quot; -a -z &amp;quot;$NEED_IMAGE&amp;quot; -o $HELP -gt 0 ] &amp;amp;&amp;amp; {&lt;br /&gt;
	cat &amp;lt;&amp;lt;EOF&lt;br /&gt;
Usage: $0 [&amp;lt;upgrade-option&amp;gt;...] &amp;lt;image file or URL&amp;gt;&lt;br /&gt;
       $0 [-q] [-i] &amp;lt;backup-command&amp;gt; &amp;lt;file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
upgrade-option:&lt;br /&gt;
	-d &amp;lt;delay&amp;gt;   add a delay before rebooting&lt;br /&gt;
	-f &amp;lt;config&amp;gt;  restore configuration from .tar.gz (file or url)&lt;br /&gt;
	-i           interactive mode&lt;br /&gt;
	-c           attempt to preserve all changed files in /etc/&lt;br /&gt;
	-n           do not save configuration over reflash&lt;br /&gt;
	-T | --test&lt;br /&gt;
	             Verify image and config .tar.gz but do not actually flash.&lt;br /&gt;
	-F | --force&lt;br /&gt;
	             Flash image even if image checks fail, this is dangerous!&lt;br /&gt;
	-q           less verbose&lt;br /&gt;
	-v           more verbose&lt;br /&gt;
	-h | --help  display this help&lt;br /&gt;
&lt;br /&gt;
backup-command:&lt;br /&gt;
	-b | --create-backup &amp;lt;file&amp;gt;&lt;br /&gt;
	             create .tar.gz of files specified in sysupgrade.conf&lt;br /&gt;
	             then exit. Does not flash an image. If file is '-',&lt;br /&gt;
	             i.e. stdout, verbosity is set to 0 (i.e. quiet).&lt;br /&gt;
	-r | --restore-backup &amp;lt;file&amp;gt;&lt;br /&gt;
	             restore a .tar.gz created with sysupgrade -b&lt;br /&gt;
	             then exit. Does not flash an image. If file is '-',&lt;br /&gt;
	             the archive is read from stdin.&lt;br /&gt;
	-l | --list-backup&lt;br /&gt;
	             list the files that would be backed up when calling&lt;br /&gt;
	             sysupgrade -b. Does not create a backup file.&lt;br /&gt;
&lt;br /&gt;
EOF&lt;br /&gt;
	exit 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[ -n &amp;quot;$ARGV&amp;quot; -a -n &amp;quot;$NEED_IMAGE&amp;quot; ] &amp;amp;&amp;amp; {&lt;br /&gt;
	cat &amp;lt;&amp;lt;-EOF&lt;br /&gt;
		-b|--create-backup and -r|--restore-backup do not perform a firmware upgrade.&lt;br /&gt;
		Do not specify both -b|-r and a firmware image.&lt;br /&gt;
	EOF&lt;br /&gt;
	exit 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# prevent messages from clobbering the tarball when using stdout&lt;br /&gt;
[ &amp;quot;$CONF_BACKUP&amp;quot; = &amp;quot;-&amp;quot; ] &amp;amp;&amp;amp; export VERBOSE=0&lt;br /&gt;
&lt;br /&gt;
add_uci_conffiles() {&lt;br /&gt;
	local file=&amp;quot;$1&amp;quot;&lt;br /&gt;
	( find $(sed -ne '/^[[:space:]]*$/d; /^#/d; p' \&lt;br /&gt;
		/etc/sysupgrade.conf /lib/upgrade/keep.d/* 2&amp;gt;/dev/null) \&lt;br /&gt;
		-type f 2&amp;gt;/dev/null;&lt;br /&gt;
	  opkg list-changed-conffiles ) | sort -u &amp;gt; &amp;quot;$file&amp;quot;&lt;br /&gt;
	return 0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
add_overlayfiles() {&lt;br /&gt;
	local file=&amp;quot;$1&amp;quot;&lt;br /&gt;
	find /overlay/etc/ -type f | sed \&lt;br /&gt;
		-e 's,^/overlay/,/,' \&lt;br /&gt;
		-e '\,/META_[a-zA-Z0-9]*$,d' \&lt;br /&gt;
		-e '\,/functions.sh$,d' \&lt;br /&gt;
		-e '\,/[^/]*-opkg$,d' \&lt;br /&gt;
	&amp;gt; &amp;quot;$file&amp;quot;&lt;br /&gt;
	return 0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# hooks&lt;br /&gt;
sysupgrade_image_check=&amp;quot;platform_check_image&amp;quot;&lt;br /&gt;
[ $SAVE_OVERLAY = 0 -o ! -d /overlay/etc ] &amp;amp;&amp;amp; \&lt;br /&gt;
	sysupgrade_init_conffiles=&amp;quot;add_uci_conffiles&amp;quot; || \&lt;br /&gt;
	sysupgrade_init_conffiles=&amp;quot;add_overlayfiles&amp;quot;&lt;br /&gt;
&lt;br /&gt;
include /lib/upgrade&lt;br /&gt;
&lt;br /&gt;
[ &amp;quot;$1&amp;quot; = &amp;quot;nand&amp;quot; ] &amp;amp;&amp;amp; nand_upgrade_stage2 $@&lt;br /&gt;
&lt;br /&gt;
do_save_conffiles() {&lt;br /&gt;
	local conf_tar=&amp;quot;${1:-$CONF_TAR}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	[ -z &amp;quot;$(rootfs_type)&amp;quot; ] &amp;amp;&amp;amp; {&lt;br /&gt;
		echo &amp;quot;Cannot save config while running from ramdisk.&amp;quot;&lt;br /&gt;
		ask_bool 0 &amp;quot;Abort&amp;quot; &amp;amp;&amp;amp; exit&lt;br /&gt;
		return 0&lt;br /&gt;
	}&lt;br /&gt;
	run_hooks &amp;quot;$CONFFILES&amp;quot; $sysupgrade_init_conffiles&lt;br /&gt;
	ask_bool 0 &amp;quot;Edit config file list&amp;quot; &amp;amp;&amp;amp; vi &amp;quot;$CONFFILES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	v &amp;quot;Saving config files...&amp;quot;&lt;br /&gt;
	[ &amp;quot;$VERBOSE&amp;quot; -gt 1 ] &amp;amp;&amp;amp; TAR_V=&amp;quot;v&amp;quot; || TAR_V=&amp;quot;&amp;quot;&lt;br /&gt;
	tar c${TAR_V}f - -T &amp;quot;$CONFFILES&amp;quot; 2&amp;gt;/dev/null | gzip &amp;gt; &amp;quot;$conf_tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	rm -f &amp;quot;$CONFFILES&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if [ $CONF_BACKUP_LIST -eq 1 ]; then&lt;br /&gt;
	add_uci_conffiles &amp;quot;$CONFFILES&amp;quot;&lt;br /&gt;
	cat &amp;quot;$CONFFILES&amp;quot;&lt;br /&gt;
	rm -f &amp;quot;$CONFFILES&amp;quot;&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -n &amp;quot;$CONF_BACKUP&amp;quot; ]; then&lt;br /&gt;
	do_save_conffiles &amp;quot;$CONF_BACKUP&amp;quot;&lt;br /&gt;
	exit $?&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -n &amp;quot;$CONF_RESTORE&amp;quot; ]; then&lt;br /&gt;
	if [ &amp;quot;$CONF_RESTORE&amp;quot; != &amp;quot;-&amp;quot; ] &amp;amp;&amp;amp; [ ! -f &amp;quot;$CONF_RESTORE&amp;quot; ]; then&lt;br /&gt;
		echo &amp;quot;Backup archive '$CONF_RESTORE' not found.&amp;quot;&lt;br /&gt;
		exit 1&lt;br /&gt;
	fi&lt;br /&gt;
&lt;br /&gt;
	[ &amp;quot;$VERBOSE&amp;quot; -gt 1 ] &amp;amp;&amp;amp; TAR_V=&amp;quot;v&amp;quot; || TAR_V=&amp;quot;&amp;quot;&lt;br /&gt;
	tar -C / -x${TAR_V}zf &amp;quot;$CONF_RESTORE&amp;quot;&lt;br /&gt;
	exit $?&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
type platform_check_image &amp;gt;/dev/null 2&amp;gt;/dev/null || {&lt;br /&gt;
	echo &amp;quot;Firmware upgrade is not implemented for this platform.&amp;quot;&lt;br /&gt;
	exit 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
for check in $sysupgrade_image_check; do&lt;br /&gt;
	( eval &amp;quot;$check \&amp;quot;\$ARGV\&amp;quot;&amp;quot; ) || {&lt;br /&gt;
		if [ $FORCE -eq 1 ]; then&lt;br /&gt;
			echo &amp;quot;Image check '$check' failed but --force given - will update anyway!&amp;quot;&lt;br /&gt;
			break&lt;br /&gt;
		else&lt;br /&gt;
			echo &amp;quot;Image check '$check' failed.&amp;quot;&lt;br /&gt;
			exit 1&lt;br /&gt;
		fi&lt;br /&gt;
	}&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
if [ -n &amp;quot;$CONF_IMAGE&amp;quot; ]; then&lt;br /&gt;
	case &amp;quot;$(get_magic_word $CONF_IMAGE cat)&amp;quot; in&lt;br /&gt;
		# .gz files&lt;br /&gt;
		1f8b) ;;&lt;br /&gt;
		*)&lt;br /&gt;
			echo &amp;quot;Invalid config file. Please use only .tar.gz files&amp;quot;&lt;br /&gt;
			exit 1&lt;br /&gt;
		;;&lt;br /&gt;
	esac&lt;br /&gt;
	get_image &amp;quot;$CONF_IMAGE&amp;quot; &amp;quot;cat&amp;quot; &amp;gt; &amp;quot;$CONF_TAR&amp;quot;&lt;br /&gt;
	export SAVE_CONFIG=1&lt;br /&gt;
elif ask_bool $SAVE_CONFIG &amp;quot;Keep config files over reflash&amp;quot;; then&lt;br /&gt;
	[ $TEST -eq 1 ] || do_save_conffiles&lt;br /&gt;
	export SAVE_CONFIG=1&lt;br /&gt;
else&lt;br /&gt;
	export SAVE_CONFIG=0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ $TEST -eq 1 ]; then&lt;br /&gt;
	exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
run_hooks &amp;quot;&amp;quot; $sysupgrade_pre_upgrade&lt;br /&gt;
&lt;br /&gt;
ubus call system upgrade&lt;br /&gt;
touch /tmp/sysupgrade&lt;br /&gt;
&lt;br /&gt;
if [ ! -f /tmp/failsafe ] ; then&lt;br /&gt;
	kill_remaining TERM&lt;br /&gt;
	sleep 3&lt;br /&gt;
	kill_remaining KILL&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -n &amp;quot;$(rootfs_type)&amp;quot; ]; then&lt;br /&gt;
	v &amp;quot;Switching to ramdisk...&amp;quot;&lt;br /&gt;
	run_ramfs '. /lib/functions.sh; include /lib/upgrade; do_upgrade'&lt;br /&gt;
else&lt;br /&gt;
	do_upgrade&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kaleng</name></author>
	</entry>
</feed>