Join Oniro community

Philippe Coval OniroProject.org #HDG France 2022

ONIRO.svg

Agenda

  • Introductions
  • The Oniro project
    • Opensource & cooperation model
  • Build Oniro …
    • … and build on Oniro
  • Relationships
  • Summary

Who is Phil Coval

What's Oniro Project?

  • A vendor neutral Operating System
    • for Next-Gen IoT devices (big/small)
    • … or distributed (multiple devices apps)
  • Defragment development for embedded sys:
    • Avoid technology silos
    • Unified tooling, common policies
  • An Eclipse foundation opensource project:
    • Open development under EF governance
    • Infrastructure for open devel

eclipse_foundation_logo_wo.png

Interact with Oniro:

IoT Challenges ?

  • Connectivity:
    • Radio, Intermittent (on battery)
  • Flexibility:
    • Constrained (MCU) to rich (CPU) systems
  • Interoperability:
    • Cloud/Edge is not mandatory for IoT
    • Privacy matters
  • Oniro targets all of those challenges
    • From DiY makers to industry standards

OpenSource values

  • Cooperation: build on (and with) others
    • Upstream first policy
  • Reuse: Not reinvent the wheel (NIH)
  • Licensing matters: OSS is "social contract"
  • Transparency:
    • Problems well identified are half resolved
  • Community:

A flexible platform

  • Oniro is a consistent layered architecture
  • Supporting different kernels:
    • Linux, Zephyr…
  • Rely on bitbake build system
  • Libs, services and apps are grouped in layers
  • Running on top of a dedicated hardware layer:
    • Board support package (BSP)
      • from HW vendors or OE community

Oniro provided layers

  • meta-oniro-core: main OS + middleware
    • depends on other community layers
    • multiple kernel flavours (Zephyr, Linux)
    • default target is QEMU (virtual machine)
  • meta-oniro-staging: overload other layers
    • until merged upstream
    • meta-zephyr
  • meta-openharmony: OH services & compat
  • meta-oniro-blueprints:
    • examples of devices made on Oniro
  • Plus docs, ip-policy

Oniro dependencies

  • Shared layers within embedded community:
    • openembedded-core, meta-openembedded
    • meta-clang, meta-security, meta-rauc, meta-linaro…
  • Board support packages:
    • meta-seco-{intel,imx}, raspberrypi, st…
  • You can add more layers from OE community
    • … or create and publish your own

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.

Lock (Zephyr)

📺

1920px-Zephyr_RTOS_logo_2015.svg.png

Vending machine (Linux)

📺 📺

Oniro's Keypad

Developers welcome

  • To help improving the Oniro platform:
    • Check or report issues, send patches
    • Suggest more features:
      • Port your favorite software (OSS)
      • More hardware enablement
  • To build applications:
    • on supported frameworks
  • To make devices (prototypes or products)
    • Value on top of Oniro base + middleware

Your blueprint layer

  • Setup env, download and build Oniro

    repo clone https://gitlab.eclipse.org/eclipse/oniro-core/oniro/
    export TEMPLATECONF=../oniro/flavours/linux
    . ./oe-core/oe-init-build-env
    bitbake oniro-image-base
    
  • Then create new layer to be added

    bitbake-layers create-layer meta-oniro-blueprint-custom
    bitbake-layers add-layer .../meta-oniro-blueprint-custom
    
  • Write recipes for new packages & config files
  • Inspire from meta-oniro-blueprints

Flutter example

Integration works

  • Layer can be downloaded added to Oniro core:

    git clone https://github.com/meta-flutter/meta-flutter
    bitbake-layers add-layer .../meta-flutter
    
  • Customization add applications done in extra layer:

    bitbake-layers create-layer meta-oniro-blueprint-flutter
    
  • Build customized OS image and boot on device

    bitbake oniro-blueprint-flutter-image
    
  • Opt: Share layer into Oniro's blueprints collection

    git clone https://booting.oniroproject.org/rzr/meta-oniro-blueprint-flutter
    

Seco imx8mm-c61

311ac49d77d8985f.jpeg

Oniro 2022 plans:

  • Updates: SysOTA (RAUC/HawkBit API, Zephyr, Cloud)
  • Autonomous agency:
    • Resources virtualization, coop
  • LTS strategy:
    • Toolchains: GCC, LLVM
    • Kernels: Linux, Zephyr
  • Compliance: OpenChain, OpenHarmony, Matter, LEDGE
  • DevOps: CI, Testings, CVE scanning…
  • More blueprints

Relationships

  • Eclipse Foundation (Global)
  • Open Atom Foundation (China)
    • hosting OpenHarmony
  • OpenSource community (Global)
    • matching IP policy
  • OpenEmbedded/Yocto (Global)
    • Recipes to build components

Summary

  • Oniro relies on cooperation with others:
    • Yocto/Openembedded, Linux, Zephyr…
    • OpenHarmonyOS
  • Oniro has been designed with modularity
    • to support different kernels
    • provide high-level services
  • Oniro is community friendly:
    • open development
    • (re)use of standards / code
    • cross pollination at Eclipse/OpenAtom

Resources

Extras ?

Howto: IoT Gateway

Howto: Doorlock

Howto: Vending machine

Video Playback

Oniro's playlist

📺