luci-app-advanced-reboot: bugfix: luci error on reboot, logger errors

Signed-off-by: Stan Grishin <stangri@melmac.net>
This commit is contained in:
Stan Grishin 2019-11-19 09:54:08 -07:00
parent 15816e668d
commit 6b2abe9fab
3 changed files with 20 additions and 15 deletions

View file

@ -13,7 +13,7 @@ LUCI_DESCRIPTION:=Provides Web UI (found under System/Advanced Reboot) to reboot
LUCI_DEPENDS:=+luci-compat +luci-mod-admin-full LUCI_DEPENDS:=+luci-compat +luci-mod-admin-full
LUCI_PKGARCH:=all LUCI_PKGARCH:=all
PKG_RELEASE:=43 PKG_RELEASE:=45
include ../../luci.mk include ../../luci.mk

View file

@ -45,7 +45,6 @@ end
function alt_partition_mount(op_ubi) function alt_partition_mount(op_ubi)
local ubi_dev local ubi_dev
util.exec('for i in rom overlay firmware; do [ ! -d "$i" ] && mkdir -p "/alt/${i}"; done') util.exec('for i in rom overlay firmware; do [ ! -d "$i" ] && mkdir -p "/alt/${i}"; done')
util.exec("ubidetach -m " .. tostring(op_ubi))
ubi_dev = tostring(util.exec("ubiattach -m " .. tostring(op_ubi))) ubi_dev = tostring(util.exec("ubiattach -m " .. tostring(op_ubi)))
_, _, ubi_dev = ubi_dev:find("UBI device number (%d+)") _, _, ubi_dev = ubi_dev:find("UBI device number (%d+)")
if not ubi_dev then if not ubi_dev then
@ -54,17 +53,23 @@ function alt_partition_mount(op_ubi)
end end
util.exec("ubiblock --create /dev/ubi" .. ubi_dev .. "_0") util.exec("ubiblock --create /dev/ubi" .. ubi_dev .. "_0")
util.exec("mount -t squashfs -o ro /dev/ubiblock" .. ubi_dev .. "_0 /alt/rom") util.exec("mount -t squashfs -o ro /dev/ubiblock" .. ubi_dev .. "_0 /alt/rom")
util.exec("mount -t ubifs /dev/ubi1_" .. ubi_dev .. " /alt/overlay") util.exec("mount -t ubifs /dev/ubi" .. ubi_dev .. "_1 /alt/overlay")
util.exec("mount -t overlay overlay -o noatime,lowerdir=/alt/rom,upperdir=/alt/overlay/upper,workdir=/alt/overlay/work /alt/firmware") -- util.exec("mount -t overlay overlay -o noatime,lowerdir=/alt/rom,upperdir=/alt/overlay/upper,workdir=/alt/overlay/work /alt/firmware")
end end
function alt_partition_unmount(op_ubi) function alt_partition_unmount(op_ubi)
util.exec("umount /alt/firmware") -- util.exec("[ -d /alt/firmware ] && umount /alt/firmware")
util.exec("umount /alt/overlay") util.exec("[ -d /alt/overlay ] && umount /alt/overlay")
util.exec("umount /alt/rom") util.exec("[ -d /alt/rom ] && umount /alt/rom")
util.exec("ubiblock --remove /dev/ubi1_0") for i = 0, 10 do
if not fs.access("/sys/devices/virtual/ubi/ubi" .. tostring(i) .. "/mtd_num") then break end
ubi_mtd = tonumber(util.trim(util.exec("cat /sys/devices/virtual/ubi/ubi" .. i .. "/mtd_num")))
if ubi_mtd and ubi_mtd == op_ubi then
util.exec("ubiblock --remove /dev/ubi" .. tostring(i) .. "_0")
util.exec("ubidetach -m " .. tostring(op_ubi)) util.exec("ubidetach -m " .. tostring(op_ubi))
util.exec('rm -rf /alt') util.exec('rm -rf /alt')
end
end
end end
devices = { devices = {
@ -169,7 +174,7 @@ function index()
end end
function action_reboot() function action_reboot()
ltemplate.render("admin_system/applyreboot", { ltemplate.render("advanced_reboot/applyreboot", {
title = i18n.translate("Rebooting..."), title = i18n.translate("Rebooting..."),
msg = i18n.translate("The system is rebooting now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a few minutes before you try to reconnect. It might be necessary to renew the address of your computer to reach the device again, depending on your settings."), msg = i18n.translate("The system is rebooting now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a few minutes before you try to reconnect. It might be necessary to renew the address of your computer to reach the device again, depending on your settings."),
addr = ip.new(type(ip) == "string" and ip or "192.168.1.1") or "192.168.1.1" addr = ip.new(type(ip) == "string" and ip or "192.168.1.1") or "192.168.1.1"
@ -240,7 +245,7 @@ function action_altreboot()
end end
end end
if not errorMessage then if not errorMessage then
ltemplate.render("admin_system/applyreboot", { ltemplate.render("advanced_reboot/applyreboot", {
title = i18n.translate("Rebooting..."), title = i18n.translate("Rebooting..."),
msg = i18n.translate("The system is rebooting to an alternative partition now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a few minutes before you try to reconnect. It might be necessary to renew the address of your computer to reach the device again, depending on your settings."), msg = i18n.translate("The system is rebooting to an alternative partition now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a few minutes before you try to reconnect. It might be necessary to renew the address of your computer to reach the device again, depending on your settings."),
addr = ip.new(uci:get("network", "lan", "ipaddr")) or "192.168.1.1" addr = ip.new(uci:get("network", "lan", "ipaddr")) or "192.168.1.1"
@ -274,7 +279,7 @@ function action_poweroff()
ltemplate.render("advanced_reboot/advanced_reboot",{}) ltemplate.render("advanced_reboot/advanced_reboot",{})
end end
elseif step == 2 then elseif step == 2 then
ltemplate.render("admin_system/applyreboot", { ltemplate.render("advanced_reboot/applyreboot", {
title = i18n.translate("Shutting down..."), title = i18n.translate("Shutting down..."),
msg = i18n.translate("The system is shutting down now.<br /> DO NOT POWER OFF THE DEVICE!<br /> It might be necessary to renew the address of your computer to reach the device again, depending on your settings."), msg = i18n.translate("The system is shutting down now.<br /> DO NOT POWER OFF THE DEVICE!<br /> It might be necessary to renew the address of your computer to reach the device again, depending on your settings."),
addr = ip.new(uci:get("network", "lan", "ipaddr")) or "192.168.1.1" addr = ip.new(uci:get("network", "lan", "ipaddr")) or "192.168.1.1"

View file

@ -7,8 +7,8 @@
<html> <html>
<head> <head>
<title><%=luci.sys.hostname()%> - <%= title or translate("Rebooting...") %></title> <title><%=luci.sys.hostname()%> - <%= title or translate("Rebooting...") %></title>
<link rel="stylesheet" type="text/css" media="screen" href="<%=media%>/cascade.css" /> <link rel="stylesheet" type="text/css" media="screen" href="<%=media%>/cascade.css?v=git-19.271.68204-f8775ee" />
<script type="text/javascript" src="<%=resource%>/xhr.js"></script> <script type="text/javascript" src="<%=resource%>/xhr.js?v=git-19.271.68204-f8775ee"></script>
<script type="text/javascript">//<![CDATA[ <script type="text/javascript">//<![CDATA[
var interval = window.setInterval(function() { var interval = window.setInterval(function() {
var img = new Image(); var img = new Image();