nerves

Craft and deploy bulletproof embedded software in Elixir

APACHE-2.0 License

Downloads
454.3K
Stars
2.2K
Committers
100
nerves -

Published by fhunleth about 3 years ago

  • Bug fixes
    • Don't set xattrs when running mix firmware.unpack. This fixes filesystem
      permission errors during extraction for some users.
nerves -

Published by fhunleth over 3 years ago

  • Improvements
    • Update mix firmware.unpack to be more flexible with input firmware and
      output directories. If you're using mix firmware.unpack in a script, you
      may need to update the script.
    • Reduce C compiler build prints
nerves -

Published by fhunleth over 3 years ago

  • Improvements
    • Add helper script generator for using gdb to analyze core dumps. Nerves
      systems ship with debug symbols (target images have these stripped) that can
      be used to get stack traces and more from core dumps from the Erlang VM and
      other C/C++ programs. See the Debugging C in Nerves blog
      post
      for an example.
    • Support the new :limits option in erlinit so that it's possible to set the
      core dump limits (i.e., enable core dumps) before Erlang starts.
nerves -

Published by fhunleth over 3 years ago

  • Bug fixes
    • Fix toolchain downloads when using Erlang/OTP 24 on Apple M1 macs.
nerves -

Published by fhunleth over 3 years ago

  • Bug fixes
    • Fix compiler version check error when using Erlang/OTP 24
nerves -

Published by fhunleth over 3 years ago

  • Enhancements
    • Update supported Elixir version to include 1.12
nerves -

Published by fhunleth over 3 years ago

  • Bug fixes
    • Fixes an issue where query parameters would be percent-encoded twice.
      Packages that use query_params argument option to artifact_sites could
      be impacted. For example, packages storing build artifacts in AWS S3
      require the X-Amz-Credential query parameter key whose value
      includes the reserved character /. This symbol is double encoded to
      %252F. This failed on systems with Erlang OTP-23.2 and above.
      See https://github.com/nerves-project/nerves/issues/604 for additional context.
nerves -

Published by fhunleth over 3 years ago

  • Bug fixes
    • Fixes an issue where query parameters would be percent-encoded twice.
      Packages that use query_params argument option to artifact_sites could
      be impacted. For example, packages storing build artifacts in AWS S3
      require the X-Amz-Credential query parameter key whose value
      includes the reserved character /. This symbol is double encoded to
      %252F. This failed on systems with Erlang OTP-23.2 and above.
      See https://github.com/nerves-project/nerves/issues/604 for additional context.
nerves -

Published by mobileoverlord over 3 years ago

  • Experimental features
    • Packages can provide custom system environment variables to be exported.
      The initial use case for this feature is to export system specific
      information for llvm-based tools.
nerves -

Published by fhunleth over 3 years ago

  • Bug fixes
    • Fixes a hang when downloading artifacts from GitHub. The hang looked like
      this and affected artifact downloads from public GitHub repositories:

      Resolving Nerves artifacts...
        Resolving nerves_toolchain_xyz
        => Trying https:...
      
nerves -

Published by mobileoverlord over 3 years ago

  • Bug fixes
    • Fixes a hang when downloading artifacts from GitHub. The hang looked like
      this and affected artifact downloads from public GitHub repositories:

      Resolving Nerves artifacts...
        Resolving nerves_toolchain_xyz
        => Trying https:...
      
nerves -

Published by fhunleth almost 4 years ago

  • Bug fixes
    • Fix Elixir semvar requirements to produce warnings on unsupported versions.
    • Produce better errors on HTTP timeouts
nerves -

Published by mobileoverlord almost 4 years ago

  • Enhancements
    • Documentation and docker improvements for Windows Subsystem for Linux 2
nerves -

Published by mobileoverlord about 4 years ago

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.

  • Bug fixes
    • Pass all unspecified erlinit args to the generator instead of silently
      ignoring them.
    • Use host CC when compiling the port.
nerves -

Published by mobileoverlord about 4 years ago

  • Bug fixes
    • Fix issues with executing system commands on non mac hosts.
nerves -

Published by mobileoverlord about 4 years ago

  • 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

    • Replace calls to System.cmd with a Nerves.Port.cmd. This code was
      provided by muontrap and is used to clean up spawned system processes
      when the vm exits.
      This fixes issues with the docker build runner executing multiple times
      and multiple calls to mix firmware after breaking out of the VM before
      the first call finishes.
    • Fix issue where SD card detection may fail while calling mix burn whenfwup
      returns additional fields.
    • Clean the release directory when calling mix firmware. This prevents
      OTP releases from accumulating unnecessary libraries and OTP applications
      over time.
nerves -

Published by mobileoverlord over 4 years ago

  • Bug fixes
    • Fix required key validation on github_api resolver.
nerves -

Published by mobileoverlord over 4 years ago

  • Bug 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 -

Published by mobileoverlord over 4 years ago

  • Enhancements
    • Updated documentation to reflect changes in nerves_bootstrap 1.8
      Updates references to nerves_init_gadget and replace with nerves_pack.
      This change shifts new projects and main documentation to promote the use of
      vintage_net for device networking.
    • Bump the host installed fwup version requirement to ~> 1.5.
nerves -

Published by mobileoverlord over 4 years ago

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},
  • Enhancements
    • Add support for aarch64 host architecture.
    • Add mix firmware.metadata for listing firmware metadata values.
Package Rankings
Top 1.51% on Hex.pm
Top 9.55% on Proxy.golang.org
Badges
Extracted from project README
Backers on Open Collective Sponsors on Open Collective CircleCI Hex version Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm Hex.pm