Delta updates with NervesHub and growth on the Trellis
July 3, 2025 • Issue 96
.. No images? Click here Get ready for the first NervesConf EU . If you feel unsure if this is worth your time but you think it might but you kinda need to watch the money? You might be eligible for our diversity and inclusion tickets . More than a 100 tickets delivered already!
Delta supportA tale of two firmware versionsBinary deltas of firmware via fwup has been a supported feature for a while. There has also been a kind of rudimentary support for it in NervesHub. We can now remove the word rudimentary. There is now proper delta support in NervesHub. It is not in a tagged release quite yet but NervesCloud runs off of main and so can you if you would benefit from this. One thing that prompted finalizing this work was that Frank Hunleth shipped the support for disk encryption combined with deltas for fwup. And since they use encryption this enabled us to make deltas work for SmartRent. I am very excited to see what the results are there. The PRs that enabled this: Enable firmware delta delivery This also includes a bag of tests that took a minute to get right to make sure that we produced the expected results with the deltas we generate. This made deltas work. If you created a deployment group on a product with deltas enabled it would immediately start making deltas for the firmwares that are in use within that deployment group. And with a bit of luck it all works out. But the control is very coarse-grained. Coded up and worked through by me with some good review by Josh Kalderimis and Elin Olsson. Lots of help on fwup-related know-how from Frank. Move delta setting to deployment group Add information about available deltas to deployment summary There is more work to be done. In progress:
Safer delta updates The important parts are that the Confuse library is now updated to pull out more and better information and to understand which fwup versions allow which features. This means we can disqualify a device from delta updates because it has a fwup version on device that is too old to allow the update to succeed. Then we deliver the full update. fwup first got support for deltas for "raw" image writes. Then for FAT filesystems. And very recently for encrypted filesystems. When this lands it should mean deltas become an option for pretty much any user of Nerves. It also add the choice between delta and full update when pushing an update manually. Which is nice. In progress:
Log transfer savings from deltas This can be exciting for a couple of reasons. Maybe you run NervesHub and need smaller updates. Or maybe you don't run NervesHub but want to shrink your updates using deltas. You can use this as a reference implementation for generating valid delta firmware images which is a bit finicky. There is also a quirk we need to look at in fwup. A delta update causes more reads than writes and this makes the progress bar kind of weird. We know :) Project updatesThe first update is the RPi 5 Hailo AI support. So this is the Raspberry Pi AI Kit hardware. This has been a relay race where I encouraged Gus Workman to start it and then connected him with Cocoa Xu when he hit trouble and then Paulo Valente and Vittoria expressed interest so we pulled them in. Me and Cocoa got it working. Paulo and Vittoria reproduced it and put it to use with Nx and more in their Code BEAM Stockholm talk. And now. Frank has integrated it into the main system. This is a security/bug fix release that also includes Hailo AI support. Hailo support is currently experimental and won’t be loaded if you don’t have it.
This release adds REUSE compliance to improve copyright and licensing accuracy for compliance tools.
This release makes VintageNet compliant with the REUSE Specification .
This is a bug fix update for 1.31.2.
Trellis is giving IEx!I hope all of you are following Gus Workman's efforts with making Nerves-first hardware. He did Soleil which is a cool power-management HAT for Raspberry Pi. This is the Trellis which is an entire board, an Allwinner T113-S4, a neat industrially capable little chip. Affordable at low volume. And he is making everything open. Frank helped get him booted when there were mystery DRAM quirks and now we are rolling. Follow the effort on his Blusky . He is giving a training at ElixirConf US in Orlando. He will be speaking at NervesConf EU... and we also have ... plans. Nerves MeetupJuly (US), meetup details Go check out the meetup, generally arranged by Alex at Redwire Labs. They pull a good crowd consistently. Got questions?Trouble-shooting is best done on the Nerves Forum over at Elixir's Forum. But if you have big-picture questions you would like to ask around Nerves, feel free to send them in and we might just have ourselves a column here. Nerves and Elixir shirts can be bought at
oswag.org
. Stickers with every purchase. Participating in the communityThe Nerves community is found wherever Elixirists gather. Try any of the following: Questions are best asked on the Elixir Forum . Social conversation and banter:
How you can help NervesContribute in the way that works for you:
Finally, if you have questions about the newsletter or want to suggest something you can simply respond to this email. - Lars |