Revert "Redesigned firmware upgrade process"
This commit is contained in:
parent
65b0a2bfad
commit
2bbc4eb3c3
11 changed files with 45 additions and 40 deletions
|
@ -85,5 +85,9 @@ done
|
||||||
[ -n "$sysupgrade_init_conffiles" ] && do_save_conffiles
|
[ -n "$sysupgrade_init_conffiles" ] && do_save_conffiles
|
||||||
run_hooks "" $sysupgrade_pre_upgrade
|
run_hooks "" $sysupgrade_pre_upgrade
|
||||||
|
|
||||||
|
ask_bool() {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
|
||||||
v "Switching to ramdisk..."
|
v "Switching to ramdisk..."
|
||||||
run_ramfs '. /etc/functions.sh; include /lib/upgrade; do_upgrade'
|
run_ramfs '. /etc/functions.sh; include /lib/upgrade; do_upgrade'
|
||||||
|
|
|
@ -70,7 +70,7 @@ a_s_flash_flashed = 'Firmware successfully flashed. Rebooting device...'
|
||||||
a_s_flash_flasherr = 'Failed to flash'
|
a_s_flash_flasherr = 'Failed to flash'
|
||||||
a_s_flash_fwimage = 'Firmwareimage'
|
a_s_flash_fwimage = 'Firmwareimage'
|
||||||
a_s_flash_received = 'Image received. About to start flashing process. DO NOT POWER OFF THE DEVICE!'
|
a_s_flash_received = 'Image received. About to start flashing process. DO NOT POWER OFF THE DEVICE!'
|
||||||
a_s_flash_inprogress = 'Now writing firmware. Depending on your hardware this can take up to 20 minutes or more. Please check your device from time to time to see whether the writing process has completed.'
|
a_s_flash_inprogress = 'Writing firmware...'
|
||||||
a_s_flash_fwupgrade = 'Flash Firmware'
|
a_s_flash_fwupgrade = 'Flash Firmware'
|
||||||
a_s_flash_keepcfg = 'Keep configuration files'
|
a_s_flash_keepcfg = 'Keep configuration files'
|
||||||
a_s_flash_notimplemented = 'Sorry, this function is not (yet) available for your platform.'
|
a_s_flash_notimplemented = 'Sorry, this function is not (yet) available for your platform.'
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
<i18n:msg xml:id="a_s_flash_flasherr">Failed to flash</i18n:msg>
|
<i18n:msg xml:id="a_s_flash_flasherr">Failed to flash</i18n:msg>
|
||||||
<i18n:msg xml:id="a_s_flash_fwimage">Firmwareimage</i18n:msg>
|
<i18n:msg xml:id="a_s_flash_fwimage">Firmwareimage</i18n:msg>
|
||||||
<i18n:msg xml:id="a_s_flash_received">Image received. About to start flashing process. DO NOT POWER OFF THE DEVICE!</i18n:msg>
|
<i18n:msg xml:id="a_s_flash_received">Image received. About to start flashing process. DO NOT POWER OFF THE DEVICE!</i18n:msg>
|
||||||
<i18n:msg xml:id="a_s_flash_inprogress">Now writing firmware. Depending on your hardware this can take up to 20 minutes or more. Please check your device from time to time to see whether the writing process has completed.</i18n:msg>
|
<i18n:msg xml:id="a_s_flash_inprogress">Writing firmware...</i18n:msg>
|
||||||
<i18n:msg xml:id="a_s_flash_fwupgrade">Flash Firmware</i18n:msg>
|
<i18n:msg xml:id="a_s_flash_fwupgrade">Flash Firmware</i18n:msg>
|
||||||
<i18n:msg xml:id="a_s_flash_keepcfg">Keep configuration files</i18n:msg>
|
<i18n:msg xml:id="a_s_flash_keepcfg">Keep configuration files</i18n:msg>
|
||||||
<i18n:msg xml:id="a_s_flash_notimplemented">Sorry, this function is not (yet) available for your platform.</i18n:msg>
|
<i18n:msg xml:id="a_s_flash_notimplemented">Sorry, this function is not (yet) available for your platform.</i18n:msg>
|
||||||
|
|
|
@ -40,7 +40,7 @@ a_s_flash_flashed = 'Flashvorgang erfolgreich. Router startet neu...'
|
||||||
a_s_flash_flasherr = 'Flashvorgang fehlgeschlagen'
|
a_s_flash_flasherr = 'Flashvorgang fehlgeschlagen'
|
||||||
a_s_flash_fwimage = 'Firmwareimage'
|
a_s_flash_fwimage = 'Firmwareimage'
|
||||||
a_s_flash_received = 'Abbild empfangen. Starte Flashvorgang. SCHALTEN SIE DAS GERÄT NICHT AUS!'
|
a_s_flash_received = 'Abbild empfangen. Starte Flashvorgang. SCHALTEN SIE DAS GERÄT NICHT AUS!'
|
||||||
a_s_flash_inprogress = 'Die Firmware wird nun geschrieben. Abhängig von der Hardware kann dieser Prozess bis zu 20 Minuten und länger dauern. Bitte prüfen sie das Gerät von Zeit zu Zeit, um zu sehen, ob der Schreibvorgang beendet ist.'
|
a_s_flash_inprogress = 'Schreibe Firmware...'
|
||||||
a_s_flash_fwupgrade = 'Firmware aktualisieren'
|
a_s_flash_fwupgrade = 'Firmware aktualisieren'
|
||||||
a_s_flash_keepcfg = 'Konfigurationsdateien übernehmen'
|
a_s_flash_keepcfg = 'Konfigurationsdateien übernehmen'
|
||||||
a_s_flash_notimplemented = 'Diese Funktion steht leider (noch) nicht zur Verfügung.'
|
a_s_flash_notimplemented = 'Diese Funktion steht leider (noch) nicht zur Verfügung.'
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
<i18n:msg xml:id="a_s_flash_flasherr">Flashvorgang fehlgeschlagen</i18n:msg>
|
<i18n:msg xml:id="a_s_flash_flasherr">Flashvorgang fehlgeschlagen</i18n:msg>
|
||||||
<i18n:msg xml:id="a_s_flash_fwimage">Firmwareimage</i18n:msg>
|
<i18n:msg xml:id="a_s_flash_fwimage">Firmwareimage</i18n:msg>
|
||||||
<i18n:msg xml:id="a_s_flash_received">Abbild empfangen. Starte Flashvorgang. SCHALTEN SIE DAS GERÄT NICHT AUS!</i18n:msg>
|
<i18n:msg xml:id="a_s_flash_received">Abbild empfangen. Starte Flashvorgang. SCHALTEN SIE DAS GERÄT NICHT AUS!</i18n:msg>
|
||||||
<i18n:msg xml:id="a_s_flash_inprogress">Die Firmware wird nun geschrieben. Abhängig von der Hardware kann dieser Prozess bis zu 20 Minuten und länger dauern. Bitte prüfen sie das Gerät von Zeit zu Zeit, um zu sehen, ob der Schreibvorgang beendet ist.</i18n:msg>
|
<i18n:msg xml:id="a_s_flash_inprogress">Schreibe Firmware...</i18n:msg>
|
||||||
<i18n:msg xml:id="a_s_flash_fwupgrade">Firmware aktualisieren</i18n:msg>
|
<i18n:msg xml:id="a_s_flash_fwupgrade">Firmware aktualisieren</i18n:msg>
|
||||||
<i18n:msg xml:id="a_s_flash_keepcfg">Konfigurationsdateien übernehmen</i18n:msg>
|
<i18n:msg xml:id="a_s_flash_keepcfg">Konfigurationsdateien übernehmen</i18n:msg>
|
||||||
<i18n:msg xml:id="a_s_flash_notimplemented">Diese Funktion steht leider (noch) nicht zur Verfügung.</i18n:msg>
|
<i18n:msg xml:id="a_s_flash_notimplemented">Diese Funktion steht leider (noch) nicht zur Verfügung.</i18n:msg>
|
||||||
|
|
|
@ -61,7 +61,6 @@ function run()
|
||||||
elseif id == 4 then
|
elseif id == 4 then
|
||||||
io.write(data1)
|
io.write(data1)
|
||||||
elseif id == 5 then
|
elseif id == 5 then
|
||||||
io.close()
|
|
||||||
active = false
|
active = false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -60,27 +60,15 @@ exec = luci.util.exec
|
||||||
--- Invoke the luci-flash executable to write an image to the flash memory.
|
--- Invoke the luci-flash executable to write an image to the flash memory.
|
||||||
-- @param image Local path or URL to image file
|
-- @param image Local path or URL to image file
|
||||||
-- @param kpattern Pattern of files to keep over flash process
|
-- @param kpattern Pattern of files to keep over flash process
|
||||||
-- @return boolean indicating status
|
-- @return Return value of os.execute()
|
||||||
-- @return error message if any
|
|
||||||
function flash(image, kpattern)
|
function flash(image, kpattern)
|
||||||
local cmd = "luci-flash "
|
local cmd = "luci-flash "
|
||||||
if kpattern then
|
if kpattern then
|
||||||
cmd = cmd .. "-k '" .. kpattern:gsub("'", "") .. "' "
|
cmd = cmd .. "-k '" .. kpattern:gsub("'", "") .. "' "
|
||||||
end
|
end
|
||||||
cmd = cmd .. "'" .. image:gsub("'", "") .. "' 2>/dev/null &"
|
cmd = cmd .. "'" .. image:gsub("'", "") .. "' >/dev/null 2>&1"
|
||||||
|
|
||||||
local fp = io.popen(cmd)
|
return os.execute(cmd)
|
||||||
fp:setvbuf("no")
|
|
||||||
|
|
||||||
local line = fp:read()
|
|
||||||
|
|
||||||
if line == "Invalid image type" then
|
|
||||||
fp:close()
|
|
||||||
return false, line
|
|
||||||
else
|
|
||||||
fp:close()
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Retrieve information about currently mounted file systems.
|
--- Retrieve information about currently mounted file systems.
|
||||||
|
|
|
@ -182,7 +182,7 @@ end
|
||||||
function action_upgrade()
|
function action_upgrade()
|
||||||
require("luci.model.uci")
|
require("luci.model.uci")
|
||||||
|
|
||||||
local ret, err
|
local ret
|
||||||
local plat = luci.fs.mtime("/lib/upgrade/platform.sh")
|
local plat = luci.fs.mtime("/lib/upgrade/platform.sh")
|
||||||
local tmpfile = "/tmp/firmware.img"
|
local tmpfile = "/tmp/firmware.img"
|
||||||
local broadcom = os.execute('grep brcm_ /lib/upgrade/platform.sh >/dev/null 2>&1') == 0
|
local broadcom = os.execute('grep brcm_ /lib/upgrade/platform.sh >/dev/null 2>&1') == 0
|
||||||
|
@ -208,11 +208,12 @@ function action_upgrade()
|
||||||
local keepcfg = keep_avail and luci.http.formvalue("keepcfg")
|
local keepcfg = keep_avail and luci.http.formvalue("keepcfg")
|
||||||
|
|
||||||
if plat and fname then
|
if plat and fname then
|
||||||
ret, err = luci.sys.flash(tmpfile, keepcfg and _keep_pattern())
|
ret = function()
|
||||||
|
return luci.sys.flash(tmpfile, keepcfg and _keep_pattern())
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
luci.template.render("admin_system/upgrade", {sysupgrade=plat,
|
luci.template.render("admin_system/upgrade", {sysupgrade=plat, ret=ret, keep_avail=keep_avail})
|
||||||
ret=ret, err=err, keep_avail=keep_avail})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function _keep_pattern()
|
function _keep_pattern()
|
||||||
|
|
|
@ -17,7 +17,7 @@ $Id$
|
||||||
<h2><%:a_s_flash%></h2>
|
<h2><%:a_s_flash%></h2>
|
||||||
<p><%:a_s_flash_upgrade1%></p>
|
<p><%:a_s_flash_upgrade1%></p>
|
||||||
<br />
|
<br />
|
||||||
<% if sysupgrade and ret == nil then %>
|
<% if sysupgrade and not ret then %>
|
||||||
<form method="post" action="<%=REQUEST_URI%>" enctype="multipart/form-data">
|
<form method="post" action="<%=REQUEST_URI%>" enctype="multipart/form-data">
|
||||||
<div class="left"><%:a_s_flash_fwimage%>:</div>
|
<div class="left"><%:a_s_flash_fwimage%>:</div>
|
||||||
<div>
|
<div>
|
||||||
|
@ -33,14 +33,20 @@ $Id$
|
||||||
<input type="submit" value="<%:a_s_flash_fwupgrade%>" />
|
<input type="submit" value="<%:a_s_flash_fwupgrade%>" />
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<% elseif ret ~= nil then %>
|
<% elseif ret then %>
|
||||||
<% if ret then %>
|
<p><%:a_s_flash_received%></p>
|
||||||
<p><%:a_s_flash_received%></p>
|
<p><%:a_s_flash_inprogress%></p>
|
||||||
<p><%:a_s_flash_inprogress%></p>
|
|
||||||
|
<!-- <%=string.rep(" ", 2048)%> -->
|
||||||
|
<% %>
|
||||||
|
<% local ret = ret()
|
||||||
|
if ret == 0 then %>
|
||||||
|
<div class="ok"><%:a_s_flash_flashed%></div>
|
||||||
<% else %>
|
<% else %>
|
||||||
<div class="error"><%:a_s_flash_flasherr%>! (<%=err%>)</div>
|
<div class="error"><%:a_s_flash_flasherr%>! (<%:code%> <%=ret%>)</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% else %>
|
<% else %>
|
||||||
<div class="error"><%:a_s_flash_notimplemented%></div>
|
<div class="error"><%:a_s_flash_notimplemented%></div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<%+footer%>
|
<%+footer%>
|
||||||
|
<% if ret == 0 then luci.sys.reboot() end %>
|
||||||
|
|
|
@ -79,7 +79,7 @@ end
|
||||||
function action_upgrade()
|
function action_upgrade()
|
||||||
require("luci.model.uci")
|
require("luci.model.uci")
|
||||||
|
|
||||||
local ret, err
|
local ret = nil
|
||||||
local plat = luci.fs.mtime("/lib/upgrade/platform.sh")
|
local plat = luci.fs.mtime("/lib/upgrade/platform.sh")
|
||||||
local tmpfile = "/tmp/firmware.img"
|
local tmpfile = "/tmp/firmware.img"
|
||||||
local broadcom = os.execute('grep brcm_ /lib/upgrade/platform.sh >/dev/null 2>&1') == 0
|
local broadcom = os.execute('grep brcm_ /lib/upgrade/platform.sh >/dev/null 2>&1') == 0
|
||||||
|
@ -105,11 +105,12 @@ function action_upgrade()
|
||||||
local keepcfg = keep_avail and luci.http.formvalue("keepcfg")
|
local keepcfg = keep_avail and luci.http.formvalue("keepcfg")
|
||||||
|
|
||||||
if plat and fname then
|
if plat and fname then
|
||||||
ret, err = luci.sys.flash(tmpfile, keepcfg and _keep_pattern())
|
ret = function()
|
||||||
|
return luci.sys.flash(tmpfile, keepcfg and _keep_pattern())
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
luci.template.render("admin_system/upgrade", {sysupgrade=plat,
|
luci.template.render("mini/upgrade", {sysupgrade=plat, ret=ret, keep_avail=keep_avail})
|
||||||
ret=ret, err=err, keep_avail=keep_avail})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function _keep_pattern()
|
function _keep_pattern()
|
||||||
|
|
|
@ -17,7 +17,7 @@ $Id$
|
||||||
<h2><%:a_s_flash%></h2>
|
<h2><%:a_s_flash%></h2>
|
||||||
<p><%:a_s_flash_upgrade1%></p>
|
<p><%:a_s_flash_upgrade1%></p>
|
||||||
<br />
|
<br />
|
||||||
<% if sysupgrade and ret == nil then %>
|
<% if sysupgrade and not ret then %>
|
||||||
<form method="post" action="<%=REQUEST_URI%>" enctype="multipart/form-data">
|
<form method="post" action="<%=REQUEST_URI%>" enctype="multipart/form-data">
|
||||||
<div class="left"><%:a_s_flash_fwimage%>:</div>
|
<div class="left"><%:a_s_flash_fwimage%>:</div>
|
||||||
<div>
|
<div>
|
||||||
|
@ -33,14 +33,20 @@ $Id$
|
||||||
<input type="submit" value="<%:a_s_flash_fwupgrade%>" />
|
<input type="submit" value="<%:a_s_flash_fwupgrade%>" />
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<% elseif ret ~= nil then %>
|
<% elseif ret then %>
|
||||||
<% if ret then %>
|
<p><%:a_s_flash_received%></p>
|
||||||
<p><%:a_s_flash_received%></p>
|
<p><%:a_s_flash_inprogress%></p>
|
||||||
<p><%:a_s_flash_inprogress%></p>
|
|
||||||
|
<!-- <%=string.rep(" ", 2048)%> -->
|
||||||
|
<% %>
|
||||||
|
<% local ret = ret()
|
||||||
|
if ret == 0 then %>
|
||||||
|
<div class="ok"><%:a_s_flash_flashed%></div>
|
||||||
<% else %>
|
<% else %>
|
||||||
<div class="error"><%:a_s_flash_flasherr%>! (<%=err%>)</div>
|
<div class="error"><%:a_s_flash_flasherr%>! (<%:code%> <%=ret%>)</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% else %>
|
<% else %>
|
||||||
<div class="error"><%:a_s_flash_notimplemented%></div>
|
<div class="error"><%:a_s_flash_notimplemented%></div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<%+footer%>
|
<%+footer%>
|
||||||
|
<% if ret == 0 then luci.sys.reboot() end %>
|
||||||
|
|
Loading…
Reference in a new issue