Nerves 1.6 released!

We recently released Nerves 1.6 and corresponding updates to the Nerves new project generator, nerves_bootstrap and our official systems.

The most visible update from Nerves 1.5 is that we now support Elixir 1.10. :tada: The other tooling changes are internal, so this should be an easy update for most Nerves 1.5 projects. See the upgrade guide at hexdocs.pm/nerves/updating-projects.html#updating-from-v1-5-to-v1-6.

We also released new Nerves systems (see your nerves_system_<board> project for specific versions and notes). These contain a number of improvements:

  1. Buildroot 2020.02 - Buildroot provides tooling for building Linux packages. This is a regular update to bring in bug and security fixes for our embedded Linux components.
  2. GCC 9.2 support - This fixes issues building complex C++ projects like chromium.
  3. Linux kernel release bumps - Most systems are now on the latest Linux 4.19 patch release supported upstream (i.e., Raspberry Pi Foundation for the Pi systems, etc.)
  4. 64-bit ARM host build support - Have a 64-bit ARM-based laptop? Now you can build Nerves projects.

We expect that most users won’t notice any of these changes. If you are building custom systems, please review the changes in the official system releases. Notably, you’ll need to bump the crosscompiler options in your mix.exs and nerves_defconfig to use GCC 9.2. Custom Raspberry Pi 4 systems should review updates to the Linux kernel configuration a few several kernel options were changed (this is unusual and I highlighted a few in the CHANGELOG.md).

While it’s not technically part of this release, we encourage all Nerves users to update their projects to NervesPack and VintageNet. If you’re using nerves_init_gadget, then this affects you. While we’ve gotten a ton of use out of nerves_init_gadget and nerves_network (the previous network configuration library), both projects have deficiencies that are very difficult to fix. They’re also about 3 and 4 years old respectively, and we’ve learned quite a bit about the network environments that people deploy Nerves devices in. We think that you’ll be quite happy once you’ve made the switch. As a hint, try running mix nerves.new <your_project> and comparing the generated code to your firmware project’s code.

One final note - we have a number of contributors to the Nerves OpenCollective . We can not thank all of you enough! Your support lets us pay for many things that fall outside of our employers’ needs for their Nerves devices. It also makes it easy to justify offering firmware update services for free to makers with NervesHub and buying open-source hardware boards as needed.

47 Likes

Upgraded an older project from 1.3 to 1.6 according to the upgrade docs and everything went perfectly! Thanks for the hard work Nerves team!!

7 Likes