Oniro's Blueprints

P.Coval + A.Gherzan #FOSDEM2022

ONIRO.svg

Agenda

  • Who is talking?
  • Introduction: Oniro Project
  • Blueprints in the Oniro Context
  • Showcases/demos
  • Getting started with Oniro
  • Conclusion
  • Q&A

Presentation

What's Oniro Project?

  • An open source distributed operating system
    • Targeting IoT devices
  • Defragment development for embedded sys:
    • Avoid technology silos
    • Unified tooling, common policies

Who is hosting Oniro?

What's Oniro Platform?

  • Standard software base
    • for making products and solutions
  • Based on mature open source projects
    • Reuse what's best on the "OSS market"
    • Fill gaps
  • Multiple kernels (CPU, MCU) supported
    • Linux, Zephyr, LiteOS…
  • Common build tooling (bitbake OE/Yocto)
  • Point of convergence
    • For product-based projects

Oniro provides

  • Defines and implements best practices:
    • Open development community
      • CI/CD, Testing
    • Legal:
      • IP Compliance
    • Security, Privacy
    • OTA Updates…
  • Blueprint projects

Blueprints' projects

  • Minimum Viable Products:
    • Design and implementation
    • Fully opensource
  • Final integration
    • Feature validation and testing
  • Maintenance with reproducibility in mind

Blueprints' use cases

  • Product foundations based on use-cases:
    • Vending machine, Key Pad
    • Door lock
    • IoT gateway
  • Your use-case, your product.

Oniro's Vending machine

Oniro's Keypad

Door lock

IoT Gateway

gateway-commissioner-3.jpg

gateway-hw-setup.png

Getting started

  • Refer to reference documentation:
  • Download Oniro's sources:
    repo init -u https://booting.oniroproject.org/distro/oniro
  • Add blueprints collection:
    git clone https://booting.oniroproject.org/distro/meta-oniro-blueprints
  • Get inspired to add your $custom blueprint along
    • matching the kernel ($flavour) of choice

Build custom blueprint

  • Use blueprint's distro configuration:
    export DISTRO="oniro-$flavour-$custom"
  • Build image to be deployed to device
    bitbake blueprint-$custom-image # for Linux based BP
    bitbake zephyr-blueprint-$custom # for Zephyr based BP

Summary

  • Oniro is multi-kernel OS for embedded/IoT:
    • Based on Linux or Zephyr or LiteOS…
  • It includes "Blueprints" projects:
    • To satisfy business requirements
    • Easy to reproduce from scratch
  • Try existing blueprints or create
    • Your own Oniro-based demo or product!
  • Visit FOSDEM Oniro Stand for more!

Resources and more:

+ Extras ?

Howto: IoT Gateway

Howto: Doorlock

Howto: Vending machine

Oniro's Zephyr flavour

  • Use mainline zephyr kernel
    • Upstream's Zephyr use west
  • Oniro uses bitbake (like on Linux)
    • Uses meta-zephyr + meta-zephyr-bsp

Build Keypad

Video Playback