# Update OS image built outside of Yocto, perhaps with Buildroot

**URL:** <https://forums.balena.io/t/update-os-image-built-outside-of-yocto-perhaps-with-buildroot/357563>\
**Category:** balenaOS\
**Created:** [May 9, 2022, 1:35pm UTC](https://forums.balena.io/t/update-os-image-built-outside-of-yocto-perhaps-with-buildroot/357563 "2022-05-09T13:35:44Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![jkridner](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/jkridner/32/4982_2.png) [@jkridner](https://forums.balena.io/u/jkridner)\
**Post date:** [May 9, 2022, 1:35pm UTC](https://forums.balena.io/t/update-os-image-built-outside-of-yocto-perhaps-with-buildroot/357563/1 "2022-05-09T13:35:44Z")

</div>

I have OS customization to do and I’m not very comfortable maintaining a Yocto-based build environment for an extended period of time. I’ve seen some discussion on building some BalenaOS dependencies into Buildroot[1] and some interesting Buildroot variations focused on running containers[2].

Is there a chance there could eventually be supported a different build tool for building BalenaOS, like Buildroot?

[1] [Balena Engine on platforms without systemd - #8 by Qbicz](https://forums.balena.io/t/balena-engine-on-platforms-without-systemd/337731/8)  
[2] [GitHub - skiffos/SkiffOS: Reliably run any Linux distribution on any hardware with an in-RAM host OS for containerized environments.](https://github.com/skiffos/skiffos)

---

<div class="post-metadata">

**Author:** ![jakogut](https://avatars.discourse-cdn.com/v4/letter/j/9f8e36/32.png) [@jakogut](https://forums.balena.io/u/jakogut)\
**Post date:** [May 11, 2022, 5:57pm UTC](https://forums.balena.io/t/update-os-image-built-outside-of-yocto-perhaps-with-buildroot/357563/4 "2022-05-11T17:57:46Z")

</div>

Hi Jason!

I’m part of the OS team here. As a long time user of Buildroot, I’m also interested in this, and have actually started [some work](https://github.com/balena-io-playground/br-balena) on building balenaOS using Buildroot. While Yocto is very capable and flexible, and most hardware vendors support it with a BSP, the learning curve is much lower with Buildroot. I enjoy the tools and processes it provides, and how familiar it all is to anybody that’s worked with the kernel or u-boot. Additionally, as you’ve referenced, an unaffiliated contributor added a package to Buildroot for our container engine some time ago, which is a good start.

That said, there are some challenges to overcome. A lot of functionality from the OS is contained in our [meta-balena](https://github.com/balena-os/meta-balena) Yocto layer, in the form of shell scripts and services which, ideally, would be shared between both build systems. There’s also a lot of changes that have been made over time in that Yocto layer to carefully maintain features and backward compatibility that would be difficult to ensure are 100% the same between images built using the two. We’re currently working on improving our automated test suite, which would help with this project.

I think both build systems have their merits, and complement each other quite well. Unfortunately, there are no _official_ plans at the moment to support Buildroot, but it is something that I’m personally quite interested in. The above linked repository contains about a day’s worth of hacking, and I’d like to revisit it soon. The first goal is to get the supervisor up and running, and maybe have a device show up in the dashboard. There’s a lot more work that has to be done to get OS upgrades and fallback working. Regardless, you can keep an eye on that repo for updates.
