CHANGELOG.md

# 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.

## v2.0.0

This is a major update of `kiosk_system_rpi4` that changes the MicroSD/eMMC
layout in order to support automatic rollback of non-working firmware updates.

**IMPORTANT** This is a one way upgrade. Going back to the old partitioning
requires manually reflashing of the RPi's storage.

Previous releases assumed that firmware updates worked. This one requires that
firmware images mark themselves as good using
`Nerves.Runtime.validate_firmware/0`. See `Nerves.Runtime` for more information
on this. Firmware not marked as good reverts back to the previous version.

Note: The double version number bump aligns the major version with other
Raspberry Pi systems.

* Changes
  * Fix camera support by enabling the unicam-legacy Linux device driver
  * Enabled multipath TCP support in the Linux kernel
  * Deleted all use of `nerves_fw_active` since it was sometimes incorrect and
    caused confusion

* Package updates
  * [nerves_system_br 1.33.2](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.33.2)
    * [Erlang/OTP 28.3.1](https://erlang.org/download/OTP-28.3.1.README.md)
    * [Buildroot 2025.11.1](https://lore.kernel.org/buildroot/f6496994-b279-46f4-b554-7dbe2df92782@rnout.be/T/)

## v0.6.1

This release fixes a regression due to the Mesa3D update that would prevent cog
from starting. Details at https://github.com/Igalia/cog/issues/774.

* Updated dependencies
  * [nerves_system_br 1.33.1](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.33.1)

## v0.6.0

This is a major Buildroot and Linux update. It should be seamless for most
0.5.0 users.

* Changes
  * Refresh `ramoops-overlay.dts`. This actually changes the default pstore
    settings to reserve less DRAM based on experience of not needing nearly as
    much. Settings can be overridden now via the `config.txt`.
  * Use EEx to generate the `fwup.conf`. This removes a lot of repetition. If
    you've made a custom `fwup.conf`, please review git commit log for details.
  * Add 5" Raspberry Pi Touch Display overlay

* Updated dependencies
  * Linux 6.12.47
  * [nerves_system_br 1.33.0](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.33.0)
    * [Buildroot 2025.11](https://lore.kernel.org/buildroot/87bjk439tj.fsf@dell.be.48ers.dk/T/)
    * [Erlang/OTP 28.3](https://erlang.org/download/OTP-28.3.README.md)
    * [fwup 1.15.0](https://github.com/fwup-home/fwup/releases/tag/v1.15.0)
    * [erlinit 1.15.1](https://github.com/nerves-project/erlinit/releases/tag/v1.15.1)
    * [nerves_heart 2.5.0](https://github.com/nerves-project/nerves_heart/releases/tag/v2.5.0)
    * [boardid 1.15.0](https://github.com/nerves-project/boardid/releases/tag/v1.15.0)

## v0.5.0

This is a major Erlang and Buildroot update. This updates from Erlang/OTP 27 to
Erlang/OTP 28.

* Changes
  * Switch IEx console prompt to UART where it's possible to use
  * Remove unused Vulcan and software renderers
  * Remove unneeded call to `rngd` and the `rng-tools` package. This was
    formerly needed to provide entropy to Linux during initialization.

* Package updates
  * [nerves_system_br v1.32.3 release notes](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.32.3)

* Updated dependencies
  * [Erlang/OTP 28.1.1](https://erlang.org/download/OTP-28.1.1.README.md)
  * [Buildroot 2025.05.2](https://lore.kernel.org/buildroot/7bed9b2e-a9d3-476b-84d6-61134e2f726f@rnout.be/T/)

## v0.4.4

* Changes
  * Synchronize and fix Raspberry Pi camera settings

## v0.4.3

This is an important security/bug fix that addresses Erlang CVEs for the ssh
module (see Erlang release notes).

* Package updates
  * [nerves_system_br v1.31.7](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.31.7). Also
    see [nerves_system_br v1.31.6](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.31.6)

* Important derived package updates
  * [Erlang/OTP 27.3.4.3](https://erlang.org/download/OTP-27.3.4.3.README.md)
  * [Buildroot 2025.02.6](https://lore.kernel.org/buildroot/b051d400-debc-4269-975a-b2992eed8d61@rnout.be/T/)

## v0.4.2

This is a security/bug fix release.

* Package updates
  * [nerves_system_br v1.31.5](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.31.5)

* Important derived package updates
  * [Erlang/OTP 27.3.4.2](https://erlang.org/download/OTP-27.3.4.2.README.md)
  * [fwup 1.13.2](https://github.com/fwup-home/fwup/releases/tag/v1.13.2)

## v0.4.1

This is a security/bug fix release.

* Package updates
  * [Erlang/OTP 27.3.4.1](https://erlang.org/download/OTP-27.3.4.1.README.md)
  * [Buildroot 2025.02.3 (fixed 2025.02.2)](https://lore.kernel.org/buildroot/49d039c0-8121-4a91-8a69-889376f85c71@rnout.be/T/)
  * Raspberry Pi WiFi firmware 1:20240709-2~bpo12+1+rpt3
  * [rpi-libcamera v0.5.0+rpt20250429](https://github.com/raspberrypi/libcamera/releases/tag/v0.5.0%2Brpt20250429)
  * rpicam-apps 1.7.0
  * [erlinit 1.14.3](https://github.com/nerves-project/erlinit/releases/tag/v1.14.3)
  * [fwup 1.13.0](https://github.com/fwup-home/fwup/releases/tag/v1.13.0)

## v0.4.0

This is a major Buildroot update.

Please see the [nerves_system_br v1.31.0 release notes](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.31.0)
for additional information if you've forked this system.

* Changes
  * Add support for the RPi Touch Display 2

* Updated dependencies
  * [Buildroot 2025.02.1](https://lore.kernel.org/buildroot/60b8483c-b717-41ce-a406-bceb71c3a089@rnout.be/T/)

## v0.3.1

This is a security/bug fix update.

* Updated dependencies
  * [Erlang/OTP 27.3.3](https://erlang.org/download/OTP-27.3.3.README)
  * [nerves_system_br v1.30.1](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.30.1)

## v0.3.0

This is a major Buildroot update.

Please see the [nerves_system_br v1.30.0 release notes](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.30.0)
for upgrade instructions if you've forked this system.

* Changes
  * Add REUSE compliance to help improve OSS copyright and licensing accuracy
  * Update Raspberry Pi libraries and firmware to latest releases

* Updated dependencies
  * [Erlang/OTP 27.3](https://erlang.org/download/OTP-27.3.README.md)
  * [Buildroot 2024.11.2](https://lore.kernel.org/buildroot/87v7t3nyls.fsf@dell.be.48ers.dk/T/)
  * Linux 6.6.74 (Raspberry Pi 1.20250127 release)
  * rpicam-apps 1.5.3
  * rpi-libcamera v0.3.2+rpt20241119
  * rpi-distro-firmware-nonfree 1:20230625-2+rpt3

## v0.2.1

This is a security/bug fix update.

* Changes
  * Support hardware PWM
  * Support the use of NVME SSDs

* Updated dependencies
  * [nerves_system_br v1.29.3](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.29.3)
  * [Buildroot 2024.08.3](https://lore.kernel.org/buildroot/874j3e17ek.fsf@dell.be.48ers.dk/T/)
  * [Erlang/OTP 27.2](https://erlang.org/download/OTP-27.2.README)
  * Linux 6.6.64 with the Raspberry Pi and PREEMPT_RT patches
  * [fwup v1.12.0](https://github.com/fwup-home/fwup/releases/tag/v1.12.0)

## v0.2.0

This is a Buildroot and Linux kernel update release.

* Updated dependencies
  * [nerves_system_br v1.29.1](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.29.1)
  * [Buildroot 2024.08.2](https://lore.kernel.org/buildroot/871pzex7gn.fsf@dell.be.48ers.dk/T/)
  * linux 6.6.51

## v0.1.2

This is a security/bug fix update.

* Updated dependencies
  * [nerves_system_br v1.28.3](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.28.3)
  * [Buildroot 2024.05.2](https://lore.kernel.org/buildroot/87zfpfh147.fsf@dell.be.48ers.dk/T/)

## v0.1.1

This is a security/bug fix update.

* Package updates
  * [nerves_system_br v1.28.2](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.28.2)
  * [Buildroot 2024.05.1](https://lore.kernel.org/buildroot/87ed7xfq78.fsf@dell.be.48ers.dk/T/)
  * [Erlang/OTP 27.0.1](https://erlang.org/download/OTP-27.0.1.README)

## v0.1.0

This is an initial release to make it easier for more people to test Nerves web
kiosks on the Raspberry Pi 5. Future releases will likely be incompatible to
expand the root filesystem and this one might have some frustrating bugs.