-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: "Sideloading" firmware upgrade files #335
Comments
I realize this approach is not for everyone, but for people interested, this is how I manage my "fleet" of test nodes using Ansible, an open source configuration tool. I wrote up a simple example (for Linux folk): https://github.com/kn6plv/ansible4aredn/tree/master/examples/firmware-update#readme |
Ansible is quite the tool and perfect for this, but I still think it should be an option "on device". It's really just the "resiliency" of SCP that I'm after. On our, sometimes marginal, networks it can make or break if an upgrade is successful or not. |
never mind... closing this. |
@r1de did someone say there was an old Perl patch for this? Send it over if you have it and I’ll take a look. |
@aanon4 All this patch does is check if the firmware file has been uploaded, then it enables the button. |
Seems like the most reliable and efficient answer would be to use rsync. I'm just not sure if we can afford the space on each node in order to include the rsync/rsyncd packages. |
HTTP uploading is not good on marginal networks, any little hiccup and the firmware file that is uploaded to the node is incomplete, yet the node does not know this until it is too late and has already shut down various services in order to save RAM to perform the upgrade. (services like ssh and telnet, olsr, almost everything)
This is probably why sometimes it takes several tries to upgrade, the more hops away the device you are trying to upgrade, the more prone it is to this problem, in my experience.
This can make the node completely inaccessible until a powercycle. Which may or may not require a "trip to the hill" and can sometimes not be a feasible solution.
One way around this, is to allow another way to upload the firmware file, that can handle network stalls and can resume the transfer.
SSH/SCP can do this and is already included on each and every AREDN device.
I have old patch files, pre Lua, that added this feature for our local custom firmware, with a simple button that was only active if a certain file was present. (it is basically @dman776's old code, kept alive 😄 )
I can add the patch files here, if, just in case, anyone wants to use them to port it to Lua. 😉
(I have been trying to port it and not getting much luck, I am rusty)
The text was updated successfully, but these errors were encountered: