Balena just announced the release of a 64-bit OS for the Raspberry Pi 4, that latest release of the iconic SBC. BalenaOS is designed to run 32-bit and 64-bit Docker containers side-by-side and simultaneously. It also supports up to 4GB of memory, to accomplish that feat. The balenaOS also supports several other embedded systems and versions of Raspberry Pi
The BalenaOS is opensource, Yocto Linux-based host OS made for containers. The workflow is fast and current and allows for a number of different embedded systems, but especially Raspberry Pi 4 in a 64-bit environment.
With the advances in the Raspberry Pi 4 platform, the faster data throughput, improved graphics handling, and the faster processor speeds, the BalenaOS is taking full advantage of the Raspberry Pi 4. It adds a wide variety of possibilities to a platform that was waiting for this improvement.
The OS has developed a workflow to push containers to the device and to take full advantage of the operation of the Docker Engine, balenaEngine, in embedded systems. This translates into a way to fight against harsh networking conditions and power situations that tend to be unstable, along with reduced bandwidth requirements.
The release of 26,000 container base images, for IoT and Edge Computing, means that balenaOS is ready to get started right out of the box. There is a wide variety of languages and distributions including builds and run variants on that variety of images.
The Yocto Board Support Package (BSP) addressed the changes to the Raspberry Pi 4 hardware, in both the kernel and bootloader (u-boot) as well as other components.
For the bootloader, the issue was mainly in figuring out undocumented memory mapping for the devices. A quick example would be the base addresses on each SoC is different in each of the Raspberry Pi versions. Other changes focus on board configuration, clock definition, and aarch64 memory map, all needing hardware-specific information without access to a datasheet. Help was found from the Raspberry Pi Foundation and the existing dts for 32-bit. The work is available in the u-boot-fork and has been merged in upstream.
The Linux side of the 64-bit support started with the 32-bit kernel. The work was kickstarted and found to have issues, like the direct-memory-access, DMA needed to be limited to the first 1 GB. The 64-bit version required this limit as well as the 32-bit version. This issue and others required a change to the defconfig side for selecting the right support, which can be found at Raspberry Pi Linux repository
Overall, with the help of the Raspberry Pi Foundation, and the quality and quantity of the images and repository information, there seems to be a good chance this might be more stable than the community-supported 64-bit Ubuntu 18.04.03 release for Raspberry Pi 4,
Stephen started writing about technology after publishing sci-fi short stories. His first White-Paper, written in 2008, was well received and inspired him to continue writing about technology. Today he writes in the technology space full time, covering a multitude of topics. During the time he wrote part-time he edited hundreds of titles for large publishers, in science and technology. He lives in Staten Island, with his wife and children.