Dedicated Embedded Linux
Esben Haabendal, Prevas A/S
About me
 Esben Haabendal, Prevas A/S
 Linux user and developer since 1994.
 Embedded Linux professional since 2003.
 Founder and developer of OE-lite,
About OE-lite
  framework for building dedicated embedded Linux systems
  Based on OpenEmbedded’s “best-in-class” design
  KISS
  Design and optimized for typical requirements for industrial
  embedded systems.
  Open Source
  http://oe-lite.org
What is dedicated embedded Linux?
Dedicated Embedded Linux vs. Linux as most people know it.
Built using an Embedded Linux build system
   Buildroot
   OpenEmbedded (Yocto)
   LTIB
   PTXdist
   OE-lite
   or home-brewed
Not RedHat, Fedora, Debian, Ubuntu, SUSE, ….
Standing on the shoulders of giants




Linux is a giant.
We are all dwarfs.
    Extensive portfolio of existing Linux SW and tools to use.
    Maintenance based on the (free) work of FOSS community.
New features are often available on Linux first.
Open Source encourages high quality code. Bad code is visible!
Pros and Cons
Compared to….

   Embedded Linux vs PLC
   Embedded Linux vs dedicated embedded software
   Embedded Linux vs (insert your favorite OS)
   Dedicated embedded Linux vs. Linux
Software Development Tools
Dedicated embedded Linux provides the developers with the tools they need.
    Practically all programming languages.
    Advanced IDE offerings.
    Huge number of supporting development tools.
    Libraries, middleware, frameworks.
    Memory protection.
Pro: Allows for efficient application development.
Reproducability
Ability to reliably reproduce the embedded system.
    Essential for delivering updated systems.
    There are many ways for building embedded Linux systems, that does
    not achieve reproducability.
    Some dedicated embedded Linux buildsystems (like Buildroot and
    OE-lite) are good at this.
Pro: Can reliably reproduce the embedded Linux system.
Configurability / Customization
Ability to design and implement according to needs instead of adapting needs
to design.
    Using complex OS (like Linux) can impose restrictions on this.
    Flexible customization methods makes the build system more
    complex.
    OE-lite Linux is aims at providing a flexible customization system
    while keeping it simple.
Pro: Can design and implement the system according to requirements and
needs.
Advanced Features
Advanced features are coming to get you!
    Communication protocols: IPv4, IPv6, USB, Bluetooth, WLAN, CAN,
    PowerLink, EtherCAT, ….
    Modern GUI/touch applications.
    Web browser.
    3D graphics.
Pro: Linux has it all.
Simplicity
"Everything should be made as simple as possible, but no simpler." — Albert
Einstein.

    Linux systems are inherently complex.
    Embedded Linux ditto.
    Building and maintaining complex systems can be made simple.
    Embedded Linux build systems are not equal.
    Learning how to use a simple build system is easier than learning to
    use a complex build system.

Pro: Dedicated embedded Linux is relatively easy (given the right choice of
embedded Linux build system)
Con: But not that easy….
Linux as a platform abstraction layer
  Most HW vendors provides Linux support.
  Separation of application code from HW platform.
  Standardized APIs for easy moving of applications between different
  embedded Linux platform.
Re-use
Developing the same thing more than once…. might not be the smartest thing
to do.
   Re-use for new variants of same type of product
   Re-use for completely other products

How:
   Embedded Linux system is (should be) a platform abstraction layer.
   Write portable application code.
   Re-usable system integration.

Pro: Embedded Linux can provide development efficiency through re-use.
Configuration Management
Ability to configure the software according to requirements.
    Embedded Linux build systems provide system integration level
    configuration management.
    Flexibility and ease-of-use varies.
    Enabler for efficient platform and product variant handling.
Pro: Dedicated embedded Linux can provide efficient variant handling.
Pros of Dedicated Embedded Linux
  Royalty free
  Efficient application development.
      Development tools.
      Advanced features available.
      Re-use of own and others works.
  Design and implement according to requirement and needs.
  Efficient variant handling.
  Reproducable system builds.
  Relatively easy….
Cons of Dedicated Embedded Linux
  A bit complicated.
  System complexity.
  Lots of options/choices.
  Linux/OS experience needed.
When to use Dedicated Embedded
Linux
Embedded system development time spent on

 1. Hardware support / adaptation
2. Middleware development
3. Application development
Dedicated Embedded Linux provides efficient means for #1, especially if
hardware is complex or if Linux BSP is already available.
Dedicated Embedded Linux should provide all (or at least most) of what you
need for #2. Projects requiring advanced features has most to gain here.
Dedicated Embedded Linux provides efficient means for #3.
Prior use
Linux is #1 OS for embedded systems, and most of the software available has a
good history of "prior use" in embedded systems.
Duplication of this work is expensive.
Product/Platform Lifetime
Embedded Linux systems tends to become platforms for building new
products.
Embedded Linux systems therefore needs to be maintained and updated.
Q&A
OE-lite from 10.000 feet
  OE-lite Bakery, the make of OE-lite
  OE-lite manifest, specifies the stack of OE-lite layers that is used to
  build the product(s).
  OE-lite metadata layer, contains descriptions of how to build software
  components (recipes).
  Open Source OE-lite metadata for re-use between all OE-lite projects.
  Project specific OE-lite metadata for project specific software and
  system integration.
OE-lite strong points
  KISS
  Reliable builds
  Variant handling through USE flags
  Time to market
  Low effort development
  Low effort maintenance
  Product maintenance and upgrade path
  Application level re-use through common platform level API’s
  Platform building and cross product/project re-use
  Free and Open Source

Dedicated embedded linux af Esben Haabendal, Prevas A/S

  • 1.
    Dedicated Embedded Linux EsbenHaabendal, Prevas A/S
  • 2.
    About me EsbenHaabendal, Prevas A/S Linux user and developer since 1994. Embedded Linux professional since 2003. Founder and developer of OE-lite,
  • 3.
    About OE-lite framework for building dedicated embedded Linux systems Based on OpenEmbedded’s “best-in-class” design KISS Design and optimized for typical requirements for industrial embedded systems. Open Source http://oe-lite.org
  • 4.
    What is dedicatedembedded Linux? Dedicated Embedded Linux vs. Linux as most people know it. Built using an Embedded Linux build system Buildroot OpenEmbedded (Yocto) LTIB PTXdist OE-lite or home-brewed Not RedHat, Fedora, Debian, Ubuntu, SUSE, ….
  • 5.
    Standing on theshoulders of giants Linux is a giant. We are all dwarfs. Extensive portfolio of existing Linux SW and tools to use. Maintenance based on the (free) work of FOSS community.
  • 6.
    New features areoften available on Linux first. Open Source encourages high quality code. Bad code is visible!
  • 7.
    Pros and Cons Comparedto…. Embedded Linux vs PLC Embedded Linux vs dedicated embedded software Embedded Linux vs (insert your favorite OS) Dedicated embedded Linux vs. Linux
  • 8.
    Software Development Tools Dedicatedembedded Linux provides the developers with the tools they need. Practically all programming languages. Advanced IDE offerings. Huge number of supporting development tools. Libraries, middleware, frameworks. Memory protection. Pro: Allows for efficient application development.
  • 9.
    Reproducability Ability to reliablyreproduce the embedded system. Essential for delivering updated systems. There are many ways for building embedded Linux systems, that does not achieve reproducability. Some dedicated embedded Linux buildsystems (like Buildroot and OE-lite) are good at this. Pro: Can reliably reproduce the embedded Linux system.
  • 10.
    Configurability / Customization Abilityto design and implement according to needs instead of adapting needs to design. Using complex OS (like Linux) can impose restrictions on this. Flexible customization methods makes the build system more complex. OE-lite Linux is aims at providing a flexible customization system while keeping it simple. Pro: Can design and implement the system according to requirements and needs.
  • 11.
    Advanced Features Advanced featuresare coming to get you! Communication protocols: IPv4, IPv6, USB, Bluetooth, WLAN, CAN, PowerLink, EtherCAT, …. Modern GUI/touch applications. Web browser. 3D graphics. Pro: Linux has it all.
  • 12.
    Simplicity "Everything should bemade as simple as possible, but no simpler." — Albert Einstein. Linux systems are inherently complex. Embedded Linux ditto. Building and maintaining complex systems can be made simple. Embedded Linux build systems are not equal. Learning how to use a simple build system is easier than learning to use a complex build system. Pro: Dedicated embedded Linux is relatively easy (given the right choice of embedded Linux build system) Con: But not that easy….
  • 13.
    Linux as aplatform abstraction layer Most HW vendors provides Linux support. Separation of application code from HW platform. Standardized APIs for easy moving of applications between different embedded Linux platform.
  • 14.
    Re-use Developing the samething more than once…. might not be the smartest thing to do. Re-use for new variants of same type of product Re-use for completely other products How: Embedded Linux system is (should be) a platform abstraction layer. Write portable application code. Re-usable system integration. Pro: Embedded Linux can provide development efficiency through re-use.
  • 15.
    Configuration Management Ability toconfigure the software according to requirements. Embedded Linux build systems provide system integration level configuration management. Flexibility and ease-of-use varies. Enabler for efficient platform and product variant handling. Pro: Dedicated embedded Linux can provide efficient variant handling.
  • 16.
    Pros of DedicatedEmbedded Linux Royalty free Efficient application development. Development tools. Advanced features available. Re-use of own and others works. Design and implement according to requirement and needs. Efficient variant handling. Reproducable system builds. Relatively easy….
  • 17.
    Cons of DedicatedEmbedded Linux A bit complicated. System complexity. Lots of options/choices. Linux/OS experience needed.
  • 18.
    When to useDedicated Embedded Linux Embedded system development time spent on 1. Hardware support / adaptation 2. Middleware development 3. Application development Dedicated Embedded Linux provides efficient means for #1, especially if hardware is complex or if Linux BSP is already available. Dedicated Embedded Linux should provide all (or at least most) of what you need for #2. Projects requiring advanced features has most to gain here. Dedicated Embedded Linux provides efficient means for #3.
  • 19.
    Prior use Linux is#1 OS for embedded systems, and most of the software available has a good history of "prior use" in embedded systems. Duplication of this work is expensive.
  • 20.
    Product/Platform Lifetime Embedded Linuxsystems tends to become platforms for building new products. Embedded Linux systems therefore needs to be maintained and updated.
  • 21.
  • 23.
    OE-lite from 10.000feet OE-lite Bakery, the make of OE-lite OE-lite manifest, specifies the stack of OE-lite layers that is used to build the product(s). OE-lite metadata layer, contains descriptions of how to build software components (recipes). Open Source OE-lite metadata for re-use between all OE-lite projects. Project specific OE-lite metadata for project specific software and system integration.
  • 24.
    OE-lite strong points KISS Reliable builds Variant handling through USE flags Time to market Low effort development Low effort maintenance Product maintenance and upgrade path Application level re-use through common platform level API’s Platform building and cross product/project re-use Free and Open Source