MAY 18, 2022
Live Embedded Event
Open for All – From Anywhere
Agenda Track 1
Agenda Track 2
Agenda Track 3
Track 1 - 09:30-10:30 : Using Linux as RTOS (Pierre Ficheux, Smile)
GNU/Linux has been used in the industry since the end of the 90's. Some companies such as MontaVista and FSMLabs thought it was possible to make the Linux kernel work in a real-time manner. They provided patches (and commercial products) to increase Linux kernel performances in real-time. LynuxWorks (now Lynx Software Technologies) did the same with little success. RedHawk Linux by Concurrent Computer uses another technology based on “CPU shielding” working on SMP targets.
During the conference, we will consider several ways to improve (and evaluate) the real-time performances of a Linux kernel:
- Linux RT use cases
- POSIX scheduling policy
- CPU affinity and memory locking
- Using the PREEMPT_RT patch
- Using the Xenomai extension
- Measuring RT performances with Ftrace, trace-cmd and kernelshark
- Final comparisonTrack 2 - 09:30-10:30 : Lessons learned from building a connected artificial nose using TinyML (Benjamin Cabé, Microsoft)
It was a long weekend, early during the pandemic, and I started to explore how a simple microcontroller coupled with an off-the-shelf, low-cost, gas sensor could help me figure out when my sourdough starter had reached the perfect level of fermentation.
Join this session to hear about my journey from not being able to grasp what a neural network even really was in the first place, to building a complete open source & open hardware DIY artificial nose that unlocks a wide variety of applications, in addition to providing a great framework for introducing developers to AI and TinyML. I will also touch on the intersection of AI and IoT—sometimes referred to as AIoT—and share some best practices to make TinyML applications first-class citizens in IoT scenarios.Track 3 - 09:30-10:30 : Low-power is superpower - Ultra Low Power on the i.MX RT500 and MICROEJ VEE (Stephane Mainchain, MicroEJ)
This presentation explores the MICROEJ VEE software and NXP hardware as a combined solution designed to address the evolving and demanding needs of the wearables industry with unbeatable low power consumption.
Together the companies deliver a dedicated low-power on-device platform enabling both software and low-power efficiencies, introducing a new era in cutting-edge user interfaces and outstanding power savings.
MICROEJ VEE is a standard, safe and secure on-device platform capable of running on any processor including microcontrollers (MCU), microprocessors (MPU), and System on Chip (SoC).Track 1 - 10:30-11:30 : Linux on Mobile Phones: A Different Take on Embedded Software (Arnaud Ferraris, Collabora)
Over the past few years, several Linux-first mobile phones have been released and led to a renewed interest in the mobile Linux ecosystem. During the same timeframe, multiple Android smartphones have been getting (close-to-)mainline kernel support, allowing users to run non-Android Linux systems on those devices.
Being at the crossroads of general-purpose computers and electronic appliances, running Linux on mobile phones brings its own set of challenges, calling for a new approach to the very concept of embedded software.
From hardware support to the build infrastructure, this presentation will give you an overview of modern-era Linux-enabled mobile phones, emphasizing the differences with more "traditional" embedded devices:
- system architecture
- build system
- distribution model
- user-facing applicationsTrack 2 - 10:30-11:30 : The challenge of edge virtualization (Mathieu Dupré, Savoir Faire Linux)
Virtualization has helped the IT world to reduce the number of machines and save energy. However, are domains where virtualization is struggling to make progress. This is the case in the field of industrial edge computing, such as electrical substations, where real time constraints make migration difficult.
In this talk, we will see how to migrate this kind of infrastructure with its specific real-time and network constraints using KVM, OVS and DPDK.
We will show the example of LFEnergy Seapath project, a Yocto based Linux distribution, developed by RTE, Alliander and Savoir-faire Linux. This distribution of the Yocto project embeds many technologies such as PREEMPT RT Linux Kernel, KVM, clustering (Pacemaker, Ceph) and networking (OVS / DPDK) while ensuring real-time and security constraints.Track 3 - 10:30-11:30 : Efficient and maintainable software development framework for AWS complex Lambda serverless applications (David Garriou, Smile)
We would like to present a rich SDK for complex serverless applications based on serverless computation functions. Developing such applications is not painful for one or two people, whereas it may become a bottleneck situation for bigger teams.
Each serverless computation function may be developed in its own environment with its own layer. This scheme may be duplicated to other serverless functions for all the applications, and then each developer may repeat this scheme. This can be acceptable for small applications involving one or two developers and a few serverless functions. But this process leads quickly to an unmaintainable software for more complex serverless architectures. Indeed there will be many serverless functions with many different layers, some of them will be duplicated, and maybe with different revisions. This behavior will lead to unstable applications and very painful reviewing processes. We present an SDK that is a layer viewed as a software library exposed for each developer. The reviewing process is then focused on the application functionalities.
This SDK is currently used with AWS Lambda functions with Python development language for large IoT projects.Track 1 - 11:30-12:00 : Using Linux as an embedded OS for the space industry (Pierre Ficheux, Smile)
Most of the time, the space industry uses dedicated OS (such as RTEMS, LithOS or PikeOS) for which a qualification process following ECSS rules has been performed or even “bare metal” software for the missions. Nevertheless, Linux has been used for some missions such as the Flight Linux Project (1999), the Quake Sat (2003) or more recently the SpaceX Falcon9 which uses a redundant system based on several Linux computers. Additionally, recent space missions use “standard” COTS hardware such as x86 (SpaceX) or ARM instead of specific CPUs (such as LEON). Though there is Linux support for LEON, the Linux community is much more involved in supporting standard hardware targets.
In 2020, the CNES and some major European players of the space industry started a study in order to define and build a Linux distribution that would meet a wide range of needs encountered in space missions (spacecrafts and payloads). The first version of this Yocto distribution should be made available in june 2022 and the evolution is expected to be handled by an open source community sharing experiment, software components, documentation or tutorials.
During the conference we will start with a state of the art of the use of Linux in space missions, then we will focus on the main steps studied during the project.
Taking in account the needs of the space industry
- security, safety and certification
- space standards support such as SpaceWire
- partitioning (using an hypervisor)Setting up and managing the community
- source repository
- binary images for standard targets
- documentation and tutorials
- sharing experiments with competitors
- Setting up a beta versions of the distribution for reference targets (Zynq)Track 2 - 11:30-12:00 : Embedded Voice Recognition (Firas Hmida, Vivoka)
This talk focuses on automatic speech recognition (ASR) and its integration into embedded devices. First, we introduce the emergence of speech technologies and the current trend towards touchless operation. Then, we make a comparison between online and offline embedded devices and define a typical ecosystem for embedded ASR. We also provide an overview of speech recognition technologies. Second, we discuss DeepLearning and embedded constraints using a real use case: ASR model focusing on its characteristics: volume, deployment constraints, latency, etc. At the end of the presentation, we discuss solutions and techniques for deploying ASR on embedded devices.Track 3 - 11:30-12:00 : IoT connectivity and the open-source community (Benoît Ponsard, Kimeggi)
Invented in 2013, Low Power Wide Area Networks (LPWAN) are radio networks optimized for the Internet of Things. TS-UNB is an LPWAN technology, standardized by ETSI in 2018, and supported by the mioty® alliance since 2019. TS-UNB is primarily a software-defined radio technology: it can run on various open hardware platforms.
The presentation will recap the main characteristics of LPWANS and highlight what is specific to TS-UNB. It will touch on new TS-UNB functionalities that may be developed by the open-source community.Track 2 - 12:00-12:30 : Five mysteries in Embedded Linux (Josef Holzmayr, Northerntech)
Once you start out in embedded linux, there is a lot to do. Some things are obvious, some less so. First and foremost, you can put your knowledge of using Linux on the desktop to good use, right? This approach feels like a natural progression, but it has its pitfalls - some of which this talk aims to help you understand and ultimately avoid.
Building and developing an embedded linux system sometimes feels like magic. It's all open source, right? You can just grab the code and make it do your bidding!
But just like the Sorcerer’s Apprentice in the poem, you might find yourself struggling with the spirits that you just called, like
- What a “Distribution” is, and why is it important that you know
- Why package management is so different
- Where configuration happens, and where not
- When to update, and whatThis talks covers five of the most common misconceptions that beginners have when they cast their first spells in embedded linux, not only to avoid them backfiring - but to actually harness the power.Track 3 - 12:00-12:30 : LLVM tools for the Linux kernel (Michael Opdenacker, Bootlin)
Recent versions of Linux can be compiled with LLVM's Clang C language compiler, in addition to Gcc, at least on today's most popular CPU architectures.
This presentation will show you how. Cross-compiling works differently with Clang: no architecture-specific cross-compiling toolchain is required. We will compare the Clang and Gcc compiled kernels, in terms of size and boot time. More generally, we will discuss the concrete benefits brought by being able to compile the kernel with this alternative compiler, in particular the LLVM specific kernel Makefile targets: clang-tidy and clang-analyzer.
Track 1 - 14:00-15:00 : Adding a Rust compiler front-end to GCC (Philip Herron & Arthur Cohen, Embecosm)
The Rust Programming Language is gaining reach inside the embedded community and making its mark on various systems, by offering a safer and more potent alternative to C. In order to try and bring the language even further, reaching even more targets and organizations, the Rust-GCC project aims to bring a new compiler for The Rust Programming Language to the GNU Compiler Collection. Contrary to similar efforts of integrating rustc to compiler back-ends other than LLVM, gccrs aims to become an entirely separate compiler front-end integrated with gcc. In this talk, we will dive into certain areas of the compiler responsible for implementing various features of the language such as macros or the powerful and safe generic slices. Later, we will also explain our future plans for integrating with polonius, a proof-of-concept borrow checker aimed at becoming the main Rust borrow checker.Track 2 - 14:00-15:00 : Stateless video decoder virtualization through Virtio Video and VA-API (Daniel Almeida, Collabora)
The past few years have seen the emergence of yet another Virtio device, extending the aforementioned virtualization protocol to hardware video accelerators in V4L2. The upcoming Virtio Video driver conforms to the memory-to-memory stateful interface and draws upon a mature ecosystem to speed up media workflows in a guest OS by tapping into the host’s hardware. In doing so, it is a step further in the general direction of establishing a de facto standard for media handling in different hypervisors.
This talk goes over the upcoming VA-API virtio video decoder backend currently in the works for the Crosvm hypervisor. It explains how the flexibility of Virtio technology can be paired with a very established API in order to produce a robust solution in video decoding virtualization, effectively blending the worlds of stateful and stateless interfaces. It details how the community at large stands to benefit from it and how it both validates and helps propel the development of the work-in-progress virtio video protocol itself.Track 3 - 14:00-15:00 : Multi-platform embedded systems and over-the-air (OTA) update implementation (Josef Holzmayr, Northerntech)
Embedded Linux devices are very diverse in their design and implementation but they all have these fundamental components: Bootloader, kernel, root filesystem, system applications and device-specific data.
In embedded Linux development, there are two approaches when it comes to what operating system to run on your device. You either build your own distribution (with tools such as Yocto/OpenEmbedded), or you use a binary distribution where Debian and derivatives are common. In this talk we will focus on building custom distributions using Yocto. In building your own custom distribution such as Yocto, the steps involved to support facilitation of software updates rollout logic may require more proficiency. Implementation of these steps become complicated and error-prone with many varying hardware architectures. The end goal for anyone using the Yocto Project should be to create a Linux distribution that is customized to match your product(s) requirements.
In this talk we will cover:
- Overview of multiplatform embedded system distributions (binary vs. custom)
- Requirements checklist for implementing a robust and secure over-the-air (OTA) software update manager
- Challenges of managing OTA with hardware variants
How to integrate Mender into your Yocto project
- How integration of Mender into your project can help with management of OTAsTrack 2 - 15:00-15:30 : PKCS#11 with OP-TEE (Thomas Perrot, Bootlin)
PKCS#11 is a standard API that allows to manage cryptographic tokens, regardless of the platform such as Hardware Security Modules, Trusted Plaform Modules or smart cards.
Moreover, modern processors offer a secure area, named Trusted Execution Environment (TEE) that allows the isolation of some operations, datas and devices to guarantee their integrity and confidentiality.
OP-TEE is an open source implementation of Trusted Execution Environment that runs in parallel with the operating system, as a companion.
In this talk, we will first introduce PKCS#11, then OP-TEE, and finally look at how PKCS#11 operations can be performed through OP-TEE, and what are the benefits.
Our presentation will be illustrated with examples based on the NXP i.MX8QXP platform, but should be applicable to other platforms that have OP-TEE support.Track 1 - 15:30-16:00 : Introduction to Meson build system: cross compilation and developer tools (Xavier Claessens, Collabora)
The Meson build system is more than just another build system, it is a full-featured developer tool, "batteries included".
This presentation covers the basic Meson syntax and cross compilation principles:
- Compile a simple C/C++ project.
- Write cross build configuration file for a given target and toolchain.
- Build dependencies as subproject using Meson's WrapDB.
- Meson's developer environment.Track 2 - 15:30-16:00 : AMP on Cortex A9 with Linux and OpenAMP (Grégory Clement, Bootlin)
While, usually, the Cortex A9 cores are used in SMP, one could want use one of the core to run an other OS. In this case the system becomes AMP. Typically, it allows running a dedicated real time OS on a core.
This presentation will show the step that allow having this support using open sources stacks. First we will see what OpenAMP is, then how the Linux kernel can communicate with external OS using remote proc message, and finally what to adapt in the Linux kernel and OpenAMP in order to support the usage of a Cortex A9.
This was experimented on an i.MX6 but the solution presented has the advantage to be easily adapted on any SoC using Cortex A9.
Track 2 - 15:30-16:00 : ESP32 firmware update OTA secured by Azure Sphere (Thierry Joubert, Theoris)
In order to securely update the firmware of ESP32 devices through an internet connexion, we used an Azure Sphere platform as a brownfield device. This talk will explain how the ESP32 firmware was embedded as a payload of the Azure Sphere application so that the entire update process is handled through the Azure Sphere automated infrastructure. We will also explain how we ported two third party source libraries to the Azure Sphere Linux platform: ESPtools and LiquidCrystal.Track 1 - 16:00-16:30 : An Introduction to Android Automotive OS (Pierre Ficheux, Smile)
Android Automotive OS runs independently in an automotive infotainment system. It is a variant of Google’s Android operating system that has been adapted for in-vehicle cockpit use. In contrast to Android Auto, which only mirrors the content of a connected smartphone, Android Automotive OS is independent of external devices, which allows manufacturers to integrate it more deeply into the vehicle’s infrastructure. As a result, Android Automotive OS can access vehicle information and control functions that are not safety-relevant, such as air conditioning. Several automakers have already expressed interest in using Android Automotive OS in their vehicles. AAOS becomes one of the most famous OS for automotive in a market where players include QNX, Automotive Grade Linux (AGL), and Windows. Though Android is not fully open source, it’s possible to use the sources from the AOSP project (Android Open Source Project).
During the conference, we will consider several technical and commercial criteria:
- architecture (VHAL - the Vehicle HAL)
- hardware issues
- commercial and industrial issues (licensing, cost, certification, long term support)
- ecosystemWe will perform a demonstration of AAOS based on the emulator provided with AOSP.Track 2 - 16:00-16:30 : System-wide tracing with LTTNG (Philip-Dylan Gleonec, Savoir Faire Linux)
When developing embedded Linux systems, some issues can span multiple interacting binaries and single-process debug tools such as gdb may not be enough. LTTng is a tracing framework for Linux which enables tracing events in the kernel and multiple userpsace applications at the same time. It is also built to have a low overhead, making it suited for real-time investigations with PREEMPTRTFULL. In this talk, we will show how to use LTTng to reveal faulty events chains across drivers and applications with realtime constraints.Track 3 - 16:00-16:30 : Considerations for over-the-air (OTA) bootloader updates (Luis Ramirez Vargas, Northentech)
Modern embedded devices are increasingly complex and internet-connected. When designing these systems, we must assume that all software will have bugs, and that some of those bugs will be exploitable vulnerabilities. The first step to addressing these issues is to ensure that software updates can be delivered to your systems, preferably automatically, and over-the-air (OTA). There are various components of embedded Linux systems that may require updating in the product lifetime.
We will discuss and give an overview of the four components of embedded Linux systems: toolchain, bootloader, kernel, root filesystem and then how they are combined into a basic embedded Linux system. Then we will cover the issues with updating the bootloader in a connected embedded device. We will specifically be discussing systems running Linux. We will then provide options for providing bootloader updates, and survey the degree of support for bootloader updates on some of the most common hardware boards.
Benefit Ecosystem This presentation will help the embedded Linux development community understand challenges with updating bootloaders and provide approaches in solving the problem.
Target Audience This session is aimed at Embedded Linux/Embedded Operating System Engineer, HW/FW Engineer, and Applications Engineer
A UNIQUE Experience
Live Embedded Event gathers technical experts paving the way for transformation the market from across the globe for education, collaboration, and deep dive learning opportunities.We forgot about something that matters to you ? Please let us know, we are open to any kind of suggestion !
Expert, passionate or simply feeling the need to share your knowledge ?Be part of our day of conferences, feedbacks, workshops or lighting talks about the embedded ecosystem.2 conference formats, over 10 categories.
Presentation of technical subjects, feedback
45 minutes + Q&A
Audience: decision makers, developers, architects
Short sessions intended to present a tool, a software practice or a solution.
Audience: developers, architects
© Live Embedded Event. All rights reserved.