The Embedded Open Source Summit 2024 (EOSS 2024) will take place on April 16-18 and the Linux Foundation has already announced the schedule with conference sessions, lightning talks, and birds of a feather (BoF) sessions covering embedded Linux, Zephyr OS, and real-time (RT) Linux.
While I won’t be attending in person, I still find it interesting to check out the schedule as we may learn more about the current status of embedded Linux. So I’ve created my own little virtual schedule out of the available talks.
Tuesday, April 16 – Day 1, Embedded Open Source Summit 2024
- 9:05 – 9:45 – No, It’s (Still) Never Too Late to Upstream Your Legacy Linux-Based Platforms by Neil Armstrong, Linaro
Nearly 7 years ago, Neil already spoke about this subject in Berlin, and it’s still very true. Do you maintain or used to maintain a Linux-based board or SoC off-tree? Then there are plenty of reasons for you to push your changes to the mainline Linux. Some will say it’s too late, too complex, or too expensive but the long-term benefits of regular upstreaming truly outweigh these constraints especially if you have the right methods. In this presentation, Neil will elaborate on this question. Neil will then expose the various challenges of code upstreaming, like time constraints, copyright issues, and the community aspect of the work. For example, vendor GPL code is generally lying on an obscure GitHub repo, or in a hardly reachable tarball. In parallel, Neil will present practical tips to ease your day-to-day upstream work and this simple rule: the faster the maximum patches are upstreamed, the less work you’ll have to actually maintain the port in the future.
- 10:00 – 10:40 – Enabling Real-Time Secure Connectivity to the Industrial Edge with Single-Pair Ethernet and Zephyr by Jason Murphy, Analog Devices
Single-Pair Ethernet (10BASE-T1L SPE) is transforming low-speed, insecure fieldbus installations into flexible, higher data rate links with modern cybersecurity. SPE enables IP connectivity to field devices over twisted pair cabling, reducing installation costs while eliminating data islands that exist between OT and IT systems. Extending IP connectivity to the edge requires the integration of Ethernet connectivity into resource-constrained embedded devices around factories and buildings. This paper explores the use of Zephyr OS as an embedded software ecosystem for Ethernet-connected industrial devices. Zephyr provides a comprehensive networking software stack that supports protocols such as TCP/IP, MQTT, and TLS that are crucial in developing industrial IoT applications. We present an overview of SPE technology for IIoT applications, followed by a discussion on how Zephyr’s software ecosystem can be harnessed to drive rapid development of secure, real-time, Ethernet-connected industrial edge devices. The discussion aims to underscore the potential of SPE in combination with Zephyr OS, to drive smaller, smarter, and lower-cost intelligent nodes deeper into the built environment.
- 14:15 – 14:55 – Enabling Linux Support with Upstream Kernel on Snapdragon X1 Elite SoCs by Sibi Sankar & Rajendra Nayak, Qualcomm Innovation Center Inc
The session details how the upstream kernel was used during the Snapdragon X1 Elite SoC Linux bring-up, how it was used to obtain the reported ST and MT benchmark Geekbench scores, and the current upstream status of the patches. It also includes a demo booting the upstream kernel with a Debian/Ubuntu userspace on a Snapdragon X1 Elite QRD (Qualcomm Reference Device). The patches to enable basic console support along with a public branch with Display/GPU enabled were posted when the Snapdragon X1 Elite SoC was publicly announced. Boot-to-console support has already landed on kernel version v6.7 and is on track to have remaining kernel support land by the time the first commercial device with X1 Elite SoC comes out on the market.
- 15:25 – 16:05 – Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driver for a New GPU by Alejandro Piñeiro Iglesias, Igalia
The Raspberry Pi 5 was announced in October 2023. This new version of the popular embedded device comes with a new iteration of Broadcom’s VideoCore GPU platform and was released with a fully open-source driver stack, developed by Igalia. The presentation will discuss some of the major changes required to support this new Video Core iteration, the challenges we faced in the process, and the solutions we provided in order to deliver conformant OpenGL ES and Vulkan drivers. The talk will also cover the next steps for the open-source Raspberry Pi 5 graphics stack.
- 16:20 – 17:00 – Comparing Linux OS Image Update Models by Drew Moseley, Toradex
Today’s connected Embedded Linux devices increasingly rely on over-the-air updates to deliver security patches and new functionality. These updates can be challenging due to their substantial size. Delivering them can place a burden on mobile network connections. This session will compare several models for providing OS updates to remote devices focusing on their bandwidth reduction characteristics. We will dig into the architecture of each of the model’s approaches to size reduction including details such as storage formats, update generation, and implementation impact on target systems.
We will then benchmark them against a common set of input images to quantify the size reduction. Reducing the total amount of data transferred is obviously a cost savings, but it can also increase reliability; less data to transfer means there is less time for things to go wrong, resulting in fewer retries and an overall smoother experience. We will wrap up with a discussion of common OTA update systems focusing on the update model(s) supported by each. Armed with this information, attendees will be better equipped to decide which model, and ultimately which solution is appropriate.
Wednesday, April 17 – Day 2, Embedded Open Source Summit 2024
- 9:00 – 9:40 – Accelerated Porting of Linux, U-Boot and Yocto for Production Ready Embedded Systems by Vaishnav Mohandas Achath & Keerthy Jagadeesh, Texas Instruments
Embarking on the journey of bringing SPL/U-Bootc, Linux, and Yocto on a freshly minted System on Chip and a new hardware platform can be a daunting task. Based on the experience of porting multiple ARM-based SoCs to work with mainline Linux/U-Boot/Yocto and also the multiple custom hardware platform bring-up experiences, We discuss strategies to get Linux, U-Boot bootloader, and Yocto-based filesystem functional and product-ready on your system in a very short time, sharing insights, practical experiences, and tools to streamline the process.
While getting your system booting Linux and U-Boot quickly once the silicon/boards arrive is important, it is more important to have a clean production-ready system that can be maintained over the Long term, we also discuss best practices to ensure minimal effort long-term support for your systems as well in this session. By the end of this session, you will be equipped with the knowledge and resources to embark on your journey to bring up Linux, U-Boot, and Yocto porting adventure for your custom embedded platform whether you are a seasoned embedded developer or a Linux enthusiast ready for a challenge.
- 9:55 – 10:35 – Rethinking U-Boot Devicetree Story by Sumit Garg
The maintenance of device trees (DT) for embedded systems often appears to be fragmented with different DT sources appearing in different projects. The DT specification provides a base vocabulary to describe hardware but it is augmented by bindings documentation. Currently, the device bindings are maintained as part of the Linux source tree. This often leads to confusion in the embedded community, especially whether U-Boot should maintain its own DT. Many of the DT boot standards (EBBR, SystemReady, etc) require firmware to provide a DT that the bootloader and kernel can consume. Things get difficult when U-Boot and Linux contain different DT sources or disagree on preferred bindings… and doubly so when U-Boot is being used as part of the firmware implementation!
This session will focus on the journey to change the way we sync DT sources from Linux to U-Boot. In particular how we can switch away from ad-hoc syncs by board maintainers to regular full-tree alignment. This also includes bringing DT bindings checks into the U-Boot build system. We’ll wrap up by looking at how the DT contribution model can become more friendly for contributors/maintainers coming from different projects.
- 11:00 – 11:40 – Optimizing BLE for Throughput-Oriented Applications by Luis Ubieda, Croxel, Inc.
Even though BLE is known for being low power, its presence and accessibility in existing devices are ubiquitous; which enables it to be used for other applications where its throughput capabilities are critical for success. This session goes over the technical details of BLE with a focus on relevant aspects towards improving BLE data-throughput; including tools and tips for improving your BLE connection, and covers an example of optimizing a Zephyr-based application for BLE data-throughput.
This presentation is for you if:
- You struggle to use BLE for anything more than a Low-Power & Low Data-Rate sensor.
- Usually BLE either “just works“ or “is broken“. When is not working, you don’t know where to look.
- You don’t know if BLE is fast enough for your application.
Content will include an overview of BLE from a throughput perspective, factors affecting its performance, throughput expectations, tools and tips, a live demo, and a comparison of BLE-throughput optimized devices vs non-optimized devices.
- 11:55 – 12:35 – Adding Support for Power Over Ethernet (PoE or IEEE Clause 33) to Linux Network Stack by Köry Maincent, Bootlin
Power over Ethernet (PoE) is a technology that combines electrical power and data transmission over a single Ethernet cable. It eliminates the need for separate power sources, simplifying installations for devices like IP cameras, and VoIP phones. In this presentation, we’ll initially delve into Power over Ethernet (PoE), It debuted in IEEE Clause 33 without explicit reference to the PoE nomenclature. We will look at what currently exists in the Linux kernel and user space to support PoE. We’ll continue our discussion with some details of the Linux implementation currently in development and the PSE core changes brought by this new support. The PSE framework core and bindings happen to need modification as it was not prepared for the PoE specificities. In parallel to these extensions of the PSE framework, we developed Linux kernel drivers for two distinct PoE controllers: the Microchip PD692x0 and the Texas Instruments TPS23881. Finally, we will look into the mainline status, the things that still need to be merged, and the future features that need development. This PoE Linux support is sponsored and funded by DENT Project.
- 14:00 – 14:40 – Beefy ML: Ultra-Low Power Algorithms on Cattle by Jordan Yates, CSIRO
Machine learning may conjure images of GPU clusters in a datacenter, but robust algorithms can actually be run in microseconds on a basic Cortex-M4F. Combined with thoughtful hardware design, this enables systems that can run ML algorithms indefinitely on the ear of an animal. In this session, Jordan will provide an overview of the journey to a real-world algorithm designed to monitor cattle feed intake from accelerometer data. The focus will be on the system design, algorithm implementation and validation, but data acquisition, annotation and training will also be touched on. The whole system is built upon multiple open-source components: Zephyr as the underlying OS, Zephyr Power Management for low-power operation, PyTorch for algorithm training, and CMSIS DSP for embedded implementation.
- 14:55 – 15:35 – Tuning RT Kernel to Improve Schedule Performance with Intel Platform by Junxiao Chang, Intel
This work focuses on Linux RT kernel thread scheduling latency performance improvement on the Intel ADL/RPL platform. Linux real-time performance is more and more important for industry, medical, and other domains. This work tunes RT kernel command line parameters, kernel options, and BIOS settings to get the best thread scheduling latency performance on Intel platforms. RT Linux kernel has a lot of kernel options which might impact thread scheduling. For example, adding “idle=poll” makes the CPU wake up faster. The latest generation Intel processors have a lot of features that might be related to RT kernel scheduling performance. Intel ADL and later generations processors have big/small cores. RT thread could have better performance if it is set to big core. With optimizations in BIOS, kernel options and kernel command line parameters, thread schedule latency is much better than it is in the original default kernel. Without these optimizations, scheduling latency might be > 1000us. With optimization, the latency is around 5 to 10 microseconds with the Intel ADL/RPL platform.
- 16:00 – 16:40 – Bluetooth on Embedded Linux Systems Deep Dive by Marcel Ziswiler, Toradex Inc.
Bluetooth is one of the most dominant wireless connection technologies. USB Bluetooth dongles are very common in the consumer world, but many modern embedded systems also contain directly designed-in Bluetooth solutions using interfaces like PCIe, SDIO, or UART. Often as part of a wireless solution with Wi-Fi and/or other wireless technologies like 5G, IEEE 802.15.4, etc. Marcel was tasked to evaluate various Bluetooth solutions and tested all major vendors that have upstream driver support.
This talk introduces the Bluetooth specification and discusses how it may be used on embedded systems from the Linux kernel, accompanying user space, BlueZ Bluetooth stack, and further application-level integration (e.g. home assistant). USB profiles are covered including audio interaction with PipeWire/WirePlumber. The last part concentrates on how to debug various Bluetooth-related issues one may encounter. The powerful BlueZ btmon and hcidump facilities are introduced which may be used to collect traces of Bluetooth communication and in combination with Wireshark allows easy visualization and Bluetooth protocol analysis. A live demonstration of some real-world Bluetooth use cases will also be presented.
- 16:55 – 17:35 – RISC-V and RISE Project BoF by Jeffrey Osier-Mixon, Red Hat
RISC-V is an open instruction set that is taking the world by storm, enabling new and creative hardware designs across the spectrum of computing devices – many of which are themselves open. This BoF is a meeting place at EOSS to discuss the current state of RISC-V as well as the RISE Project, an open-source initiative under LF Europe to support the RISC-V software ecosystem.
Thursday, April 18 – Day 3
- 9:00 – 9:40 – The State of Hardware Video Codecs in Linux by Andrzej Pietrasiewicz & Nicolas Dufresne, Collabora
The need for video codecs on embedded Linux is forever growing. Whether you make security cameras, in-flight entertainment, infotainment, digital signage, or even robots, it’s likely that you will need a video codec of some sort. While compression ratios have massively increased over the years, encoding and decoding complexity have exploded. Due to this expansion, some help from dedicated hardware is needed. In this talk, you will learn how the Linux Media subsystem have gained driver interfaces for various types of hardware codecs and numerous encoding formats such as H.264, HEVC, AV1, VP9, VP8, MPEG-2, and more. You’ll get an insight into the work that is currently underway and a plausible future plan.
- 9:55 – 10:35 – Rust for Linux – What Is Possible and What Is Still Work in Progress by Christina Quast, Independent
Rust has been the up-and-coming new programming language that will remove whole categories of bugs like memory leaks and race conditions from code forever. For a few years, step by step more Rust code has been added to mainline. This talk gives an overview of what kernel modules you can already write, and which functionality is still only to be found in the Rust for Linux project. Furthermore, it outlines how a person new to this topic could get started writing their first kernel module in Rust!
- 11:00 – 11:40 – SoC Development: From ROM to Application by Nadav Cohen Zukerman, Autotalks
This session will unfold a journey of developing a SoC from scratch using Zephyr. Zephyr is present all along our bootflow, from ROM to a bootloader to a fully operational application image. In the session, we will detail the development process, the challenges we had, and the lessons we learned throughout over 2 years of development with Zephyr, two tapeouts (and two upcoming), and two SoC bringups.
- 11:55 – 12:35 – Testing Rotation Sensor Drivers with LEGO Robots and Other Adventures in the Linux IIO Subsystem by David Lechner, BayLibre
Is it possible for a mostly remote team to develop Linux drivers for IIO hardware while not actually putting their hands on it? We’ve been giving it a go and would like to share why we are doing it, how it is going, what works, what doesn’t work, and hear from others who are doing the same. We will share how we’ve managed to update kernels, and use signal generators, logic analyzers, and even LEGO robots remotely in the course of development, testing & validation. We would also like to share some new developments in the IIO subsystem related to the work we are doing. There have been several efforts working towards enabling higher throughput and higher sample rates for IIO devices in several different areas.
- 14:00 – 14:40 – Maximizing SD Card Life, Performance, and Monitoring with KrillKounter by Andrew Murray, The Good Penguin
The underlying storage of an SD card is NAND flash, which is inherently unreliable, has a limited number of program/erase cycles, and has constraints on how data is written. Fortunately, the firmware in an SD card overcomes these challenges well enough to provide a cost-effective and reliable block-based storage medium; though, this is not without side effects that can impact performance and endurance. In this talk, we’ll delve into the ‘write to destruction’ testing that we’ve performed, which illustrates how access patterns and write amplification can significantly impact the lifespan of an SD card. We’ll show you what happens when an SD card fails and provide actionable steps to maximize the lifespan of an SD card in Linux. We will also examine the performance characteristics of SD cards and explore how access patterns can impact write performance. We’ll present methods for analyzing performance and provide practical steps for improving throughput. Finally, we will introduce Krill Kounter, an open-source daemon and library for embedded devices for monitoring SD card wear and indicators of write amplification over its lifetime.
- 15:15 – 15:55 – Using Picolibc in Embedded Systems by Keith Packard, Amazon
Picolibc is a C library designed for embedded environments. Providing a complete C17 library interface along with much of the POSIX 2008 additions, Picolibc offers standards conformance, broad architecture support, and integrated testing performed under emulation on the target architectures. This talk will start by providing an overview of Picolibc, including API support, standards conformance, and memory usage. Then, a description of the testing infrastructure, including the bare-metal test frameworks, emulator bugs fixed, and guidance on supporting new targets will be provided. Next, some specific examples of integrating Picolibc into various embedded RTOSes, including FreeRTOS, Zephyr, and RIOT will be presented. The talk will finish with the current status of Picolibc along with future plans.
- 16:10 – 16:50 – Compound Interest – Dealing with Two Decades of Technical Debt in Embedded Linux by Bartosz Golaszewski, Linaro
The GPIO subsystem is one of the oldest driver abstraction layers in the Linux kernel. First, somewhat unified GPIO interfaces appeared around 20 years ago. Over the years it has become one of the most ubiquitous subsystems in embedded Linux as GPIOs are used universally by all kinds of devices for a multitude of more, less, or not-at-all standardized functions. Over the years GPIOLIB has become its own, self-contained library, was integrated into the driver model, and acquired many new features (device-tree and ACPI support, GPIO irqchips, plug-and-play) but it came at a cost. The subsystem was hit especially hard by Arm fragmentation, the fallout of which is still visible in countless board files containing suboptimal code we need to maintain. We eventually ended up with two in-kernel APIs, two uAPI variants, complex glue code to pinctrl and interrupt subsystems as well as piles upon piles of quirks and corner cases. Efforts to improve the situation have been ongoing and have picked up in 2023/2024. This talk will cover how we try to improve serialization, hot-pluggability, and reduce the API abuse treewide while dancing carefully around existing legacy users.
You’ll find the complete schedule for the Embedded Open Source Summit 2024 on the Linux Foundation website. If you are interested in attending in person, you can register with the following rates:
- Standard – Feb 25 – Apr 7, 2024
- Attendee – USD 799
- Academic – USD 275
- Government – USD 275
- Hobbyist – USD 275
- Small Business – USD 500
- Late – Apr 8–18, 2024
- Attendee – USD 949
- Academic – USD 275
- Government – USD 275
- Hobbyist – USD 275
- Small Business – USD 500
A small business is a company that has less than $5 million in annual revenue and less than 30 employees.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Thanks for posting, indeed more than a couple of interesting talks in there.
No way I will be able to attend in person either — so, how do you plan on checking those talks? Will they be available for remote watching, and/or talk materials downloadable somehow?
I had a look at their website but could find no info on this.
I’m not sure they’ll post all, but many will be uploaded to YouTube after a while.
See the playlist for last year: https://www.youtube.com/watch?v=-ikuU6MjMiI&list=PLbzoR-pLrL6qmJK02QP35go9hj1jawqxy
Kinda disappointing they have no options for remote attending/watching… but I guess if they did, attendance would be greatly reduced, so… anyway, it is what it is.
Guess I’ll be subscribing to the LF YouTube channel and wait until these talks show up there, then.
Thanks!
Hmm FOSDEM managed to do live remote viewing.
Quoting from the registration page:
Virtual:
Thank you for that, I totally missed it when I checked their website👍
Really interested in Adding Support for Power Over Ethernet (PoE or IEEE Clause 33) to Linux Network Stack as that would fit with adding support for switches in OpenWrt!