From d1f83446875c6f1dbd66bfebbc93849b5a2fab13 Mon Sep 17 00:00:00 2001 From: Stan Grishin Date: Tue, 19 Nov 2019 09:54:21 -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 | 4 +-- 3 files changed, 20 insertions(+), 15 deletions(-) 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 index e235bd467..94ac36bd7 100644 --- a/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/applyreboot.htm +++ b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/applyreboot.htm @@ -7,8 +7,8 @@ <%=luci.sys.hostname()%> - <%= title or translate("Rebooting...") %> - - + +