Craft and deploy bulletproof embedded software in Elixir
APACHE-2.0 License
:limits
option in erlinit so that it's possible to set thequery_params
argument option to artifact_sites
couldX-Amz-Credential
query parameter key whose value/
. This symbol is double encoded to%252F
. This failed on systems with Erlang OTP-23.2 and above.query_params
argument option to artifact_sites
couldX-Amz-Credential
query parameter key whose value/
. This symbol is double encoded to%252F
. This failed on systems with Erlang OTP-23.2 and above.Nerves 1.7.0 removes support for creating OTP releases using Distillery and
only supports using Elixir releases. As a result, the minimum supported version
of Elixir is now version 1.9.
Official Nerves systems now support applying firmware using patches. This
greatly reduces the amount of data that required to push firmware updates
to devices. The minimum requirement for fwup has been updated to 1.8
to enable support for this feature.
Experimental features
Added mix firmware.patch
to locally create firmware patch files for
feature testing. This feature is under development.
See the experimental features doc for more info.
Added :mksquashfs_flags
to the nerves firmware config to allow passing
additional flags to the mksquashfs
call that produces the final rootfs.
If you are experimenting with creating patchable firmware, you should
use this feature to disable squashfs compression.
config :nerves, :firmware
mksquashfs_flags: ["-noI", "-noD", "-noF", "-noX"]
Bug fixes
System.cmd
with a Nerves.Port.cmd
. This code wasmuontrap
and is used to clean up spawned system processesmix firmware
after breaking out of the VM beforemix burn
whenfwup
mix firmware
. This preventsBug fixes
Improve error message returned when calling mix firmware
when the local
system artifact cannot be found and possibly needs to be built.
GitHub API artifact resolver will no longer raise if missing required opts.
The GitHub API artifact resolver is useful when you want to enable access
to artifacts added to GitHub releases in private GitHub repositories.
Fetching an artifact from a private GitHub repo requires the passing
username, token, tag
as options. If any of these options were omitted,
the resolver would raise and prevent compilation from continuing.
This is problematic when you are trying to actually compile the system
in CI. Artifact resolvers should make a best effort on downloading the
artifacts, and return {:error, reason}
if they are unsuccessful. This
will allow the system to fall back to performing a compile.
nerves_bootstrap 1.8
nerves_init_gadget
and replace with nerves_pack
.vintage_net
for device networking.fwup
version requirement to ~> 1.5
.Nerves 1.6.0 adds support for Elixir 1.10.
As part of the update to Elixir 1.10, it became more difficult to support old
Elixir and Erlang versions. Therefore, Nerves 1.6.0 requires at least Elixir
v1.7.0 and Erlang/OTP 21. If your project requires an older version of Elixir or
Erlang/OTP you can pin the version of nerves
to an older version.
For example, set your nerves dependency in your mix.exs to:
{:nerves, "~> 1.5.0", runtime: false},
mix firmware.metadata
for listing firmware metadata values.