I am using mender DFU function to update a firmware on a BLE controller board that is based of the Nordic nRF5340. I am successfully able to install the firmware on to the board using the mcumgr tool.
Once the firmware file is installed on the chip and I have confirmed it, I need to again attach the BLE board to the HCI using the “btattach” command
The command that I am using to attach my device to HCI such that it gets detected as a BLE controller is : sudo btattach -B /dev/ttyACM0 -S 1000000
The issue with this command is that it is not a one-shot command. It runs as a process and as long as it is running the BLE controller will remain attached to the HCI. If you terminate the process the BLE controller is detached.
To implement the firmware update using mender I have modified the dfu script that is present at /usr/share/mender/modules/v3/dfu to call my custom script that actually implements the mcumgr command to update the firmware.
Now since the process does not return back, the status of the deployment on mender dashboard is stuck into “installing” state for long. Even though the firmware is updated, the mender script is not able to close because of the btattach command.
I have also tried to add the & at the end of the command(so it looks like : sudo btattach -B /dev/ttyACM0 -S 1000000 &) so that it runs as a background process but the issue is still the same.
Contents of the dfu script :
The contents of the custom script :
As you can see the last command for my custom script is the btattach command.
The status on the dashboard is stuck to installing :
How can I resolve this issue?