From 6b2abe9fabdca8fafe734e3bae6d09e974634c95 Mon Sep 17 00:00:00 2001 From: Stan Grishin Date: Tue, 19 Nov 2019 09:54:08 -0700 Subject: luci-app-advanced-reboot: bugfix: luci error on reboot, logger errors Signed-off-by: Stan Grishin --- .../luasrc/controller/advanced_reboot.lua | 29 +++++++++++++--------- 1 file changed, 17 insertions(+), 12 deletions(-) (limited to 'applications/luci-app-advanced-reboot/luasrc/controller') 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 8b97f2e560..e1e63bcbf8 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" -- cgit v1.2.3