1 of 40

Yocto at Balena

Building ~70 Unique OS’es for IoT Devices

2 of 40

David Tischler

Developer Advocate

t: @balena_io

e: david@balena.io

3 of 40

Who is Balena?

4 of 40

Etcher, anyone?

5 of 40

You could also use `dd`

6 of 40

balena

“Platform built to develop, deploy, and manage fleets of connected devices at scale.”

  • balenaCloud
    • Web-based control of IoT devices, broken down by Applications, Devices, Workloads, and more

    • Terminal access to device, logs, container build info, and more.

  • balenaOS

    • Based on Yocto Linux 

  • balenaEngine
    • Container runtime

7 of 40

What do we mean by IoT “Fleet Management”?

8 of 40

9 of 40

10 of 40

11 of 40

12 of 40

13 of 40

14 of 40

Architecture

15 of 40

balenaOS

Built on Yocto Linux, Optimized for Embedded Devices and IoT Usage

  • Minimal by design (increased security)
  • Less RAM / resource requirements
  • Redundant RootFS partitions
  • More tolerant of power loss
  • Minimized SD Card writes

16 of 40

balenaEngine

Container engine built for Embedded and IoT use-cases, based on the Moby Project from Docker

  • Minimal by design
  • Less RAM / resource requirements
  • Delta pulls to save bandwidth
  • Fault tolerance on container pulls

17 of 40

18 of 40

19 of 40

20 of 40

balenaOS

Built on Yocto Linux, Optimized for Embedded Devices and IoT Usage

  • The Yocto project enables us to build an OS, add our custom bits, and create a business model around it.
  • balenaOS is open source, just like Yocto.

21 of 40

22 of 40

23 of 40

69 Devices in Total

24 of 40

How is this accomplished?

25 of 40

26 of 40

27 of 40

28 of 40

29 of 40

30 of 40

31 of 40

Repeat 68 more times

32 of 40

Adding a new board

33 of 40

https://github.com/balena-os

  • Does your board have a Yocto build already?
  • Check for existing “similar” boards
    • SoC Manufacturer

    • Product Line
  • If so, clone the appropriate repo and begin porting in your board
  • If not, then you will need to go the longer way (but not terrible), which is starting from scratch as documented here:
    • https://www.balena.io/os/docs/custom-build/

34 of 40

35 of 40

Yocto Project Call-to-Action

  • https://lists.yoctoproject.org/g/yocto/topic/open_source_maintainers_an/82722441
    • There are a few things companies can do to help:
      • a) Publicly acknowledge you use the project.
      • b) Embrace employee's Open Source contributions, code and otherwise
      • c) Consider Yocto Project membership
      • d) Support employees in spending some time on open source projects
      • e) Transition roles�
  • https://www.yoctoproject.org/join/

36 of 40

Additional Resources

balena Blog: https://www.balena.io/blog/

balena Forums: https://forums.balena.io/

balena-os GitHub: https://github.com/balena-os

37 of 40

38 of 40

Questions / Q&A

39 of 40

David Tischler

Developer Advocate�t: @balena_io

e: david@balena.io

40 of 40