From 71e229e2cb4256ac0f7ef4d0e331c5c299af9271 Mon Sep 17 00:00:00 2001 From: Stan Grishin Date: Tue, 19 Nov 2019 09:54:37 -0700 Subject: [PATCH] luci-app-advanced-reboot: bugfix: luci error on reboot, logger errors Signed-off-by: Stan Grishin --- .../luci-app-advanced-reboot/Makefile | 2 +- .../luasrc/controller/advanced_reboot.lua | 29 +++++----- .../view/advanced_reboot/applyreboot.htm | 53 +++++++++++++++++++ 3 files changed, 71 insertions(+), 13 deletions(-) create mode 100644 applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/applyreboot.htm diff --git a/applications/luci-app-advanced-reboot/Makefile b/applications/luci-app-advanced-reboot/Makefile index a08d57fd8..e3037df2f 100644 --- a/applications/luci-app-advanced-reboot/Makefile +++ b/applications/luci-app-advanced-reboot/Makefile @@ -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_PKGARCH:=all -PKG_RELEASE:=43 +PKG_RELEASE:=45 include ../../luci.mk diff --git a/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua b/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua index 8b97f2e56..e1e63bcbf 100644 --- a/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua +++ b/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua @@ -45,7 +45,6 @@ end function alt_partition_mount(op_ubi) local ubi_dev 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 = ubi_dev:find("UBI device number (%d+)") if not ubi_dev then @@ -54,17 +53,23 @@ function alt_partition_mount(op_ubi) end 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 ubifs /dev/ubi1_" .. ubi_dev .. " /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 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") end function alt_partition_unmount(op_ubi) - util.exec("umount /alt/firmware") - util.exec("umount /alt/overlay") - util.exec("umount /alt/rom") - util.exec("ubiblock --remove /dev/ubi1_0") - util.exec("ubidetach -m " .. tostring(op_ubi)) - util.exec('rm -rf /alt') +-- util.exec("[ -d /alt/firmware ] && umount /alt/firmware") + util.exec("[ -d /alt/overlay ] && umount /alt/overlay") + util.exec("[ -d /alt/rom ] && umount /alt/rom") + 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('rm -rf /alt') + end + end end devices = { @@ -169,7 +174,7 @@ function index() end function action_reboot() - ltemplate.render("admin_system/applyreboot", { + ltemplate.render("advanced_reboot/applyreboot", { title = i18n.translate("Rebooting..."), msg = i18n.translate("The system is rebooting now.
DO NOT POWER OFF THE DEVICE!
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" @@ -240,7 +245,7 @@ function action_altreboot() end end if not errorMessage then - ltemplate.render("admin_system/applyreboot", { + ltemplate.render("advanced_reboot/applyreboot", { title = i18n.translate("Rebooting..."), msg = i18n.translate("The system is rebooting to an alternative partition now.
DO NOT POWER OFF THE DEVICE!
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" @@ -274,7 +279,7 @@ function action_poweroff() ltemplate.render("advanced_reboot/advanced_reboot",{}) end elseif step == 2 then - ltemplate.render("admin_system/applyreboot", { + ltemplate.render("advanced_reboot/applyreboot", { title = i18n.translate("Shutting down..."), msg = i18n.translate("The system is shutting down now.
DO NOT POWER OFF THE DEVICE!
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" diff --git a/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/applyreboot.htm b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/applyreboot.htm new file mode 100644 index 000000000..94ac36bd7 --- /dev/null +++ b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/applyreboot.htm @@ -0,0 +1,53 @@ +<%# + Copyright 2008 Steven Barth + Copyright 2008 Jo-Philipp Wich + Licensed to the public under the Apache License 2.0. +-%> + + + + <%=luci.sys.hostname()%> - <%= title or translate("Rebooting...") %> + + + + + +
+
+
+

<%=luci.sys.hostname() or "?"%>

+
+
+
+   +
+
+
+

<%:System%> - <%= title or translate("Rebooting...") %>

+
+
+ <%= msg or translate("Changes applied.") %> +
+
+ <%:Loading%> + <%:Waiting for changes to be applied...%> +
+
+
+
+
+ + \ No newline at end of file -- 2.25.1