Skip to content

Latest commit

 

History

History
959 lines (689 loc) · 34.5 KB

CHANGELOG.md

File metadata and controls

959 lines (689 loc) · 34.5 KB

Changelog

This project does NOT follow semantic versioning. The version increases as follows:

  1. Major version updates are breaking updates to the build infrastructure. These should be very rare.
  2. Minor version updates are made for every major Buildroot release. This may also include Erlang/OTP and Linux kernel updates. These are made four times a year shortly after the Buildroot releases.
  3. Patch version updates are made for Buildroot minor releases, Erlang/OTP releases, and Linux kernel updates. They're also made to fix bugs and add features to the build infrastructure.

v1.27.1

This is a security/bug fix update.

v1.27.0

This is a major Buildroot update.

Please see the nerves_system_br v1.27.0 release notes for upgrade instructions if you've forked this system.

  • Changes

    • The libcamera and rpicam_apps packages have been replaced with the Raspberry Pi-forked versions for better compatibility. Please see nerves_system_br release notes.
    • Add back CONFIG_RASPBERRYPI_GPIOMEM to support the dht library.
  • Updated dependencies

v1.26.0

This is a major Buildroot update.

Please see the nerves_system_br v1.26.0 release notes for upgrade instructions if you've forked this system.

v1.25.1

This is a security/bug fix update.

v1.25.0

This is a major Buildroot, toolchain, and Linux kernel update that also adds support for using Scenic without customizing the system.

Please see nerves_system_br v1.25.0 release notes for upgrade instructions if you've forked this system.

v1.24.1

This is a security/bug fix update.

v1.24.0

This is a Buildroot version update that appears to mostly contain bug and security fixes. It should be a low risk upgrade from v1.23.2.

v1.23.2

v1.23.1

This is a bug and security fix update. It should be a low risk upgrade.

v1.23.0

This is a major update that brings in Erlang/OTP 26, Buildroot 2023.02.2, Linux 5.15.84, and Raspberry Pi firmware updates.

v1.22.2

This is a bug and security fix update. It should be a low risk upgrade from v1.22.1.

v1.22.1

This is a bug fix and Erlang version bump from 25.2 to 25.2.3. It should be a low risk upgrade from v1.22.0.

v1.22.0

This is a Buildroot version update that appears to mostly contain bug and security fixes. It should be a low risk upgrade to v1.21.2.

v1.21.2

  • Changes

    • Two Buildroot patch updates and an Erlang minor version update
    • Nerves Heart v2.0 is now included. Nerves Heart connects the Erlang runtime to a hardware watchdog. v2.0 has numerous updates to improve information that you can get and also has more safeguards to avoid conditions that could cause a device to hang forever.
  • Updated dependencies

v1.21.1

  • Changes

    • Fix regression when building on x86_64 Linux where wrong toolchain was used.
    • Reduce first-time Linux kernel download by using tarball source
  • Updated dependencies

v1.21.0

v1.20.2

v1.20.1

v1.20.0

This release updates to Buildroot 2022.05, Linux 5.15.32 (from Linux 5.10) and uses GCC 11.3 (from GCC 10.3). The Linux kernel upgrade could introduce a regression, so please verify hardware-specific functionality in your firmware.

If you have cloned this repository for a custom system, please make sure that you have CONFIG_NOP_USB_XCEIV=y in your Linux kernel configuration.

v1.19.0

This release updates to Buildroot 2022.02.1 and OTP 25.0. While this should be an easy update for most projects, many programs have been updated. Please review the changes in the updated dependencies for details.

v1.18.4

This release bumps Erlang to 24.3.2 and should be a low risk upgrade from the previous release.

  • Changes

    • Pull in upstream Linux SquashFS patch to improve file system performance
  • Updated dependencies

v1.18.3

This is a Buildroot and Erlang bug and security fix release. It should be a low risk upgrade from the previous release.

v1.18.2

This is a Buildroot and Erlang bug fix release. It should be a low risk upgrade from the previous release.

  • Updated dependencies

  • Changes

    • Specify CPU-specific flags when compiling NIFs and ports. This fixes an issue where some optimizations could not be enabled in NIFs even though it should be possible to have them. E.g., ARM NEON support for CPUs that have it.
    • Build the Wireguard kernel driver. This is a small device driver that enables a number of VPN-based use cases.

v1.18.1

  • Updated dependencies

  • Changes

    • The cpufreq directories are available again. This was a regression that would break code that manually adjusted the CPU frequency.
    • Programs that use OpenMP will run now. The OpenMP shared library (libgomp.so) was supplied by the toolchain, but not copied.

v1.18.0

This release updates to Buildroot 2021.11 and OTP 24.2. If you have made a custom system, please review the nerves_system_br release notes since Buildroot 2021.11 changed some Raspberry Pi firmware options.

  • Updated dependencies

  • Improvements

    • Support for the dl.nerves-project.org backup site. Due to a GitHub outage in November, there was a 2 day period of failing builds since some packages could not be downloaded. We implemented the backup site to prevent this in the future. This update is in the nerves_defconfig.
    • Use new build ORB on CircleCI. This ORB will shorten build times to fit in CircleCI's new free tier limits. Please update if building your own systems.

v1.17.3

v1.17.2

This release updates the Linux kernel from 5.4 to 5.10 to follow the Raspberry Pi OS.

v1.17.1

This is a security/bug fix patch release. It should be safe to update for everyone.

v1.17.0

This release updates to Buildroot 2021.08 and OTP 24.1. If you have made a custom system off this one, please review the nerves_system_br v1.17.0 release notes.

v1.16.2

This release updates Erlang/OTP from 24.0.3 to 24.0.5 and Buildroot from 2021.05 to 2021.05.1. Both of these are security/bug fix updates. This is expected to be a safe upgrade from v1.16.1 for all users.

  • Updated dependencies

  • Improvements

    • Support for the Adafruit Speaker Bonnet (See PR #214 for details)
    • Beta support for using a runtime.exs script for runtime configuration.
    • Added a provision task to the fwup.config to enable re-provisioning a MicroSD card without changing its contents.
    • Adds a default /etc/sysctl.conf that enables use of ICMP in Erlang. This requires nerves_runtime v0.11.5 or later to automatically load the sysctl variables. With it using :gen_udp to send/receive ICMP will "just work". It also makes it easier to add other sysctl variables if needed.

v1.16.1

This release updates Nerves Toolchains to v1.4.3 and OTP 24.0.3. It should be safe for everyone to apply.

v1.16.0

This release updates to Buildroot 2021.05 and OTP 24.0.2. If you have made a custom system off this one, please review the nerves_system_br v1.16.0 release notes.

  • Updated dependencies

  • Improvements

    • This release now contains debug symbols and includes the Build-ID in the ELF headers. This makes it easier to get stack traces from C programs. As before, the Nerves tooling strips all symbols from firmware images, so this won't make programs bigger.
    • Enable compile-time wpa_supplicant options to support WPA3, mesh networking, WPS and autoscan.

v1.15.1

  • Routine updates

v1.13.0-farmbot.1

  • merge upstream system
  • USB Ethernet drivers
  • Remove ERL_CRASH_DUMP_SECONDS

v1.10.0-farmbot.1

  • merge upstream system

v1.10.0

This release updates Buildroot to 2019.11 with security and bug fix updates across Linux packages. Enables dnsd, udhcpd and ifconfig in the default Busybox configuration to support vintage_net and vintage_net_wizard. See the nerves_system_br notes for details.

v1.9.2

This release updates Buildroot to 2019.08.2 with security and bug fix updates across Linux packages. See the nerves_system_br notes for details. Erlang/OTP is now at 22.1.7.

v1.9.1

This release pulls in security and bug fix updates from nerves_system_br. Erlang/OTP is now at 22.1.1.

1.9.0-farmbot.1

  • move repository to farmbot org
  • Merge upstream system
  • Fix python opencv bug

v1.9.0

This release updates Buildroot to 2019.08 with security and bug fix updates across Linux packages. See the nerves_system_br notes for details.

  • Updated dependencies

  • Enhancements

    • Support a variety of USB->UART adapters so more devices work out-of-the-box

v1.8.2

This release fixes an issue that broke display output on small LCD screens. Updating the Raspberry Pi firmware to the latest from the Raspberry Pi Foundation fixed the issue. See pappersverk/rpi_fb_capture#2 for details.

v1.8.1

v1.8.0-farmbot.0

  • Merge Upstream system

v1.8.0

This release updates Erlang to OTP 22 and gcc from version 7.3.0 to 8.3.0. See the nerves_system_br and toolchain release notes for more information.

v1.7.2-farmbot.3

  • Buildroot
    • Enable Dnsmasq

v1.7.2-farmbot.2

  • Linux
    • Enable advanced routing
    • Enable kernel modules for ASIX usb network adapters

v1.7.2-farmbot.1

  • Disable kernel logging to uart GPIO
  • Disable Erlinit logging to uart GPIO

v1.7.2-farmbot.0

  • Merge Upstream system
  • Busybox
    • enable mktmp
    • enable runparts
    • enable dnsdomains (dnsd)
    • enable ifconfig
    • enable ifplugd
    • enable ifupdown
    • enable udhcpd
  • Buildroot
    • enable wpa_cli
    • enable autoscan option in wpa_supplicant
    • disable dnsmasq

v1.7.2

  • Bux fixes
    • Add TAR option --no-same-owner to fix errors when untarring artifacts as the root user.
  • Updated dependencies

v1.7.1

  • Improvements

    • Bump C compiler options to -O2 from -Os. This provides a small, but measurable performance improvement (500ms at boot in a trivial project tested on nerves_system_rpi0).
  • Updated dependencies

v1.7.0

This release bumps the Linux kernel to 4.19.25. This change had an impact on how the WiFi regulatory database gets loaded into the kernel. Instead of building it into the kernel as previously done, the kernel loads it on demand. This requires that all WiFi drivers be built as kernel modules so that the database isn't loaded before the root filesystem is mounted. If you made a custom system and see boot errors about not being able to load the regulatory database, this is the problem.

v1.6.3-farmbot.0

  • Merge Upstream system

v1.6.3

v1.6.2

v1.6.1-farmbot.1

  • Enhancements
    • Add unprivileged user for Farmware

v1.6.1-farmbot.0

  • Updated dependencies
    • Python 3
    • OpenCv 3

v1.6.1

  • Updated dependencies

    • nerves_system_br v1.6.5
    • Erlang 21.2.2
    • boardid 1.5.2
    • erlinit 1.4.9
    • OpenSSL 1.1.1a
    • Linux 4.14.89 with patches from the Raspberry Pi Foundation
  • Enhancements

    • Moved boardid config from inside erlinit.config to /etc/boardid.config
    • Compile gpiomem into the Linux kernel
    • Enable pstore, an in-memory buffer that can capture logs, kernel oops and other information when unexpected reboots. The buffer can be recovered on the next boot where it can be inspected.

v1.6.0

This pulls in a pending patch in Buildroot to update the version of OpenSSL from 1.0.2 to 1.1.0h. This fixes what appears to be issues with Erlang using OpenSSL engines. It also enables Erlang crypto algorithms such as ed25519 that have been added in recent Erlang releases.

1.5.1-farmbot.0

Apply Farmbot Patches

  • Updated dependencies
    • Enable dnsmasq
    • Enable more serial drivers in kernel.
    • Enable v4l drivers in kernel
    • Enable python2
    • Enable opencv2.4

v1.5.1

v1.5.0

This release updates the Linux kernel from 4.4 to 4.14.71.

  • Enhancements

    • Added Alsa utils aplay and amixer for audio support.
    • Added espeak a speech synthesizer for text to audio.
    • Automatically reboot if the Linux kernel panics (defaults to a 10 second delay before the reboot)
  • Updated dependencies

v1.4.0

This release contains various updates to provisioning variables and data.

Host requirements

Building firmware using this system requires fwup to be updated on your host computer to at least v1.2.5. The target minimum version requirement has not changed from 0.15.0.

Serial numbers

Device serial numbers are now set using NERVES_SERIAL_NUMBER instead of SERIAL_NUMBER. This is to reduce ambiguity on the source of the serial by name spacing it along side other Nerves variables. The U-Boot environment key has also changed from serial_number to nerves_serial_number. The erlinit.config has been updated to provide backwards compatibility for setting the hostname from the serial number by checking for nerves_serial_number and falling back to serial_number.

Custom provisioning

Provisioning data is applied at the time of calling the fwup task complete. The complete task is executed when writing the firmware to the target disk. During this time, fwup will include the contents of a provisioning file located at ${NERVES_SYSTEM}/images/fwup_include/provisioning.conf. By default, this file only sets nerves_serial_number. You can add additional provisioning data by overriding the location of this file to include your own by setting the environment variable NERVES_PROVISIONING. If you override this variable you will be responsible for also setting nerves_serial_number.

v1.3.0

This release upgrades gcc from version 6.3.0 to 7.3.0. See the toolchain release notes for more information.

v1.2.1

v1.2.0

This release updates Erlang to OTP 21.0

v1.1.1

This release fixes some issues and adds firmware UUID support. This support can be used to unambiguously know what's running on a device.

  • Updated dependencies

  • Bug fixes

    • Empty serial numbers stored in the U-Boot environment would be used instead of reverting to devices IDs built into the CPU or board.
    • It wasn't possible to enable QtWebEngine (needed for kiosk apps)

v1.1.0

This release adds official support for provisioning serial numbers to devices. Other information can be provisioned in a similar manner. See the README.md for details.

Buildroot was also updated to 2018.05. Be sure to review the nerves_system_br link for the changes in the embedded Linux components.

  • Updated dependencies

  • New features

    • More wpa-supplicant features were enabled to support more WiFi use-cases

v1.0.0

v1.0.0-rc.0

v0.20.0

v0.19.1

  • Updated dependencies
    • nerves_system_br v0.16.3 This fixes the call to otp_build so that it always uses Buildroot's version the autoconf tools.

v0.19.0

  • Updated dependencies

  • Enhancements

    • Support for Raspberry Pi 0W This is useful if you want to run the USB port in host mode. nerves_system_rpi0 is biased to running it in gadget mode and lacks many of the USB host drivers and options.

    • Reboot automatically if Erlang VM exits - This is consistent with other Nerves systems. See rootfs_overlay/etc/erlinit.config if undesired.

    • Start running nerves_system_linter to check for configuration errors.

    • Disable console blanking for HDMI to make it easier to capture error messages.

    • Automount the boot partition readonly at /boot

    • Support for reverting firmware.

      See Reverting Firmware for more info on reverting firmware.

      See fwup-revert.conf for more information on how fwup handles reverting.

v0.18.0

v0.17.1

v0.17.0

v0.16.1

  • Updated dependencies
    • nerves_system_br v0.13.7

v0.16.0

This release contains an updated toolchain with Linux 4.1 Headers. You will have to clean and compile any c/c++ code in your project and dependencies. Failure to do so will result in an error when producing firmware.

  • nerves_system_br v0.13.5

    • fwup 0.15.4
  • Nerves toolchain v0.11.0

v0.15.0

  • nerves_system_br v0.13.3

    • erlinit 1.1.4
  • New features

    • Firmware updates verify that they're updating the right target. If the target doesn't say that it's an rpi through the firmware metadata, the update will fail.
    • Added meta-misc and meta-vcs-identifier to the fwup.conf metadata for use by users and for the regression test framework
    • Use String.trim instead of String.strip to silence Elixir 1.5 warnings

v0.14.0

  • nerves_system_br v0.13.2
    • OTP 20
    • erlinit 1.1.3
    • fwup 0.15.3

v0.13.0

  • nerves_system_br v0.12.1

    • erlinit 1.1.1
    • fwup 0.15.0
  • New features

    • The application data partition is now ext4. This greatly improves its robustness to corruption. Nerves.Runtime contains code to initialize it on first boot.
    • Firmware images now contain metadata that can be queried at runtime (see Nerves.Runtime.KV
    • Increased GPU memory to support Pi Camera V2

v0.12.0

  • nerves_system_br v0.10.0

    • Buildroot 2017.02
    • Erlang/OTP 19.3
  • New features

    • Upgraded the Linux kernel from 4.4.43 -> 4.4.50. Due to the coupling between the Linux kernel and rpi-firmware and possibly rpi-userland, if you have a custom system based off this, you should update your Linux kernel as well. (see nerves_defconfig)

v0.11.0

  • New features
    • Enabled USB_SERIAL and FTDI_SIO support. Needed for connecting with Arduino to the USB ports
    • Support for Nerves 0.5.0

v0.10.0

  • New features
    • Upgraded the Linux kernel to 4.4.43. This also removes the call to mkknlimg which is no longer needed.
    • Bump toolchain to use gcc 5.3 (previously using gcc 4.9.3)

v0.9.1

  • Bug Fixes
    • Loosen mistaken nerves dep on 0.4.0 to ~> 0.4.0

v0.9.0

This version switches to using the nerves_package compiler. This will consolidate overall deps and compilers.

  • Nerves.System.BR v0.8.1
    • Support for distillery
    • Support for nerves_package compiler

v0.7.0

When upgrading to this version, be sure to review the updates to nerves_defconfig if you have customized this system.

  • nerves_system_br v0.7.0
    • Package updates
      • Buildroot 2016.08
      • Linux 4.4

v0.6.1

  • Package versions

    • Nerves.System.BR v0.6.1
  • New features

    • All Raspberry Pi-specific configuration is now in this repository
    • Enabled SMP Erlang - even though the RPi Zero and Model B+ are single core systems, some NIFs require SMP Erlang.

v0.6.0

  • Nerves.System.BR v0.6.0
    • Package updates
      • Erlang OTP 19
      • Elixir 1.3.1
      • fwup 0.8.0
      • erlinit 0.7.3
      • bborg-overlays (pull in I2C typo fix from upstream)
    • Bug fixes
      • Synchronize file system kernel configs across all platforms

v0.5.2

  • Enhancements
    • Enabled USB Printer kernel mod. Needs to be loaded with modprobe to use
  • Bug Fixes(raspberry pi)
    • Enabled multicast in linux config for rpi/rpi2/rpi3/ev3

v0.5.1

  • Nerves.System.BR v0.5.1
    • Bug Fixes(nerves-env)
      • Added include paths to CFLAGS and CXXFLAGS
      • Pass sysroot to LDFLAGS

v0.5.0

  • Nerves.System.BR v0.5.0
    • New features
      • WiFi drivers enabled by default on RPi2 and RPi3
      • Include wireless regulatory database in Linux kernel by default on WiFi-enabled platforms. Since kernel/rootfs are read-only and coupled together for firmware updates, the normal CRDA/udev approach isn't necessary.
      • Upgraded the default BeagleBone Black kernel from 3.8 to 4.4.9. The standard BBB device tree overlays are included by default even though the upstream kernel patches no longer include them.
      • Change all fwup configurations from two step upgrades to one step upgrades. If you used the base fwup.conf files to upgrade, you no longer need to finalize the upgrade. If not, there's no change.