diff --git a/applications/luci-app-advanced-reboot/Makefile b/applications/luci-app-advanced-reboot/Makefile
index a08d57fd8b..e3037df2f8 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 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"
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 e235bd4679..94ac36bd70 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 @@