diff --git a/src/fw_images.c b/src/fw_images.c index 0c38a1b..7203d4d 100644 --- a/src/fw_images.c +++ b/src/fw_images.c @@ -156,11 +156,14 @@ static void _exec_reboot(const void *arg1, void *arg2) dmuci_commit_package(config_name); sleep(3); - dmubus_call_set("rpc-sys", "reboot", UBUS_ARGS{0}, 0); - sleep(5); // Wait for reboot to happen - BBFDM_ERR("Reboot call failed with rpc-sys, trying again with system"); - dmubus_call_set("system", "reboot", UBUS_ARGS{0}, 0); - sleep(5); // Wait for reboot + dmubus_call_blocking("system", "reboot", UBUS_ARGS{0}, 0, NULL); + sleep(15); // Wait for reboot + BBFDM_ERR("Reboot call failed with system, trying again with reboot rpc-sys..."); + dmubus_call_blocking("rpc-sys", "reboot", UBUS_ARGS{0}, 0, NULL); + sleep(15); // Wait for reboot to happen + BBFDM_ERR("Reboot call failed with rpc-sys, trying again with reboot cmd ..."); + run_cmd("reboot", NULL, 0); + sleep(15); // Wait for reboot BBFDM_ERR("Reboot call failed!!!"); // Set last_reboot_cause to empty because there is a problem in the system reboot