Skip to content
This release brings major improvements to the arm64/aarch64 users, complex network environments, and offline operations!

Probably the most interesting aspect of this release is being able to run on ARM64-based Single-Board Computers (SBC) which have good-enough EFI support. This was demonstrated using the [EDK2 Raspberry Pi 4 UEFI firmware](https://github.com/pftf/RPi4) on a CM4 module :)

Check out [our new wiki](https://gitlab.freedesktop.org/mupuf/boot2container/-/wikis/home) which details ways of running boot2container!

### Deprecation notice

The following parameters have been deprecated, and will be removed at a later time:

 * `b2c.container`: Replaced by `b2c.run`
 * `b2c.post_container`: Replaced by `b2c.run_post`
 * `b2c.service`: Replaced by `b2c.run_service`

### Breaking changes

 * The ARM64/AARCH64 Linux kernel is now a [self-decompressing EFI binary](https://cateee.net/lkddb/web-lkddb/EFI_ZBOOT.html)

### New features

 * `b2c.iface`: This option enables fine-grained configuration for multiple network interfaces (@v-a)
 * `b2c.load`: This option enables side-loading containers without the use of registries (@v-a)
 * `b2c.cache_device=...,fstrim=pipeline_start`: Run fstrim at boot time (more options will come in future releases)
 * Boot2container will now wait for up to 10s  when the user asks for a cache device (auto, reset, or specific node) but none are present
 * The tuxes counting the number of cores got replaced by the boot2container logo
 * Better error handling of failures in the teardown process (podman container stop, )

### Issues closed (bugs or feature requests)

 * #33: Adds a feature through filesystem to load a container from an archive instead of pulling a registry
 * #36: cache_device: mount with `-o discard`
 * #34: Rename b2c.container into b2c.run
 * #35: Find a way to share the container tag between .gitlab-ci.yml and Makefile

### Linux configuration changes

 * Makefile: Compilation will halt if some specified options are missing
 * all:
   * Ability to use conditions in config files, enabling options to be set based on architectures (based on [esh](https://github.com/jirutka/esh))
   * Added support for the Raspberry Pi 3-4
 * `common`:
    * Removed the WIRELESS, RFKILL, GNSS, CAN, BT, MEDIA_SUPPORT, XEN, BTRFS, and FPGA subsystems
    * Removed the non-single-board-computers, phones, or laptops AARCH64 platforms
    * Switched to the new self-decompressing EFI-based
 * `gpu`:
    * created by mergeing the `vgpu` and `dgpu` configs
    * dropped support VKMS (was breaking qemu's consoles)
    * disable discrete gpus on aarch64 kernels

### Software versions

 * Podman: version 4.3.1
 * Netavark: version 1.4.0
 * mcli: December 24th 2022 release
 * Linux: 6.1.7