While typically taking place in Brussels, Belgium, FOSDEM 2022 will take place online just like FOSDEM 2021 due to COVID-19 restrictions. The good news is that it means anybody can attend it live from anywhere in the world, and makes it more like “FOSDIM”, replacing European with International, in “Free and Open Source Developers’ European Meeting”.
FOSDEM 2022 will take place on February 5-6 with 637 speakers, 718 events, and 103 tracks. I’ve made my own little virtual schedule below mostly with sessions from the Embedded, Mobile and Automotive devroom, but also other devrooms including “Computer Aided Modeling and Design”, “FOSS on Mobile Devices”, “Libre-Open VLSI and FPGA”, and others.
Saturday, February 5, 2022
- 12:30 – 13:00 – Five mysteries in Embedded Linux by Josef Holzmayr
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 what
This talk 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.
- 13:00 – 13:30 – Back to DirectFB! The revival of DirectFB with DirectFB2 by Nicolas Caramelli
DirectFB2 is a fork of DirectFB, a graphics library designed with embedded systems in mind that was widely used in the GNU/Linux embedded world. DirectFB2 comes with changes such as a Meson build system, a pure C implementation, and modularization of the source code.
Access to the low-level display is based on a DRM/KMS system module (or possibly on a legacy Framebuffer system module), and depending on the platform, hardware-accelerated graphics rendering can be achieved using the architecture of the GFX driver modules. The core library is very light (no external dependencies) and provides basic font/image/video rendering support which can be demonstrated with the DirectFB-examples.
The use of additional DirectFB providers based on external libraries is also possible thanks to the DirectFB-media package, such as rendering fonts with the FreeType library, rendering images with libpng or jpeg libraries, rendering videos with FFmpeg or GStreamer libraries. For 3D graphics, OpenGL or Vulkan rendering can be done with the DirectFB graphics backend. As an example, the Mesa 3D implementation makes OpenGL rendering possible with a DirectFBGL module or with EGL for the DirectFB platform, and the SwiftShader implementation makes Vulkan rendering possible with the DirectFB WSI.
This talk aims at getting started with DirectFB2 which may be worth considering on some devices.
- 13:30 – 14:30 – Automotive Ethernet PHY bring-up: lessons learned and debug tips by Jean-Louis Thekekara
I would like to share my experience bringing up various Automotive Ethernet Gigabit PHYs on an iMX8 platform.
- PHY configuration CheckList (= What I need to know about my PHY, my schematic before starting the bring-up)
- SW implementation (= step-by-step SW integration + common pitfalls to avoid, mainly focused on Linux, but I talk also about U-Boot)
- Debug tips (= SW and HW tips)
This presentation is based on a training I already gave internally in the Valeo Group (with some extra additions). This experience led to some patches that I hope to push at U-boot and Linux levels.
- 14:30 – 15:00 – Bringing RAUC A/B Updates to More Linux Devices by Leon ANAVI
RAUC is a safe and secure open-source software solution for A/B updates of embedded Linux devices. RAUC supports industry-leading build systems: the Yocto Project and OpenEmbedded, Buildroot and PTXdist. Porting RAUC to a new device requires several advanced technical steps. Layer meta-rauc-community exists to speed up and simplify the integration process for Yocto and OpenEmbedded by providing examples for popular devices such as Raspberry Pi, Allwinner (Sunxi), NVIDIA Tegra, and QEMU.
To port RAUC to a new device, we need to go through several steps: setup appropriate bootloader like U-Boot, enable SquashFS in the Linux kernel configurations, use ext4 file system, create partitions and configure RAUC slots, generate certificates, and setup bootloader environment configurations with a script to switch RAUC slots over upgrades. To simplify the getting started process of developers using RAUC with Yocto and OpenEmbedded in 2020 Leon Anavi created layer meta-rauc-community. In 2021 the layer was moved to the RAUC organization in GitHub. Initially, it offered only Raspberry Pi support and over time, thanks to numerous community contributions, the support was extended to more machines.
This presentation will provide a brief introduction to RAUC and will focus on layers meta-rauc and meta-rauc-community. We will go through the exact steps of how to build, flash and update an image using bitbake to the currently supported platforms. Furthermore, we will discuss general guidelines for porting RAUC and adding new supported machines to meta-rauc-community in the future.
- 15:00 – 15:30 – Pushing the Open Source Hardware Limits with KiCAD by Tsvetan Usunov
The talk will cover the design of very complex and powerful OSHW Linux boards based on the new NXP iMX8 and ST STMP1 SOC with FLOSS KiCAD tools and then running FLOSS software for cloud, IoT, and Health to offer full transparency to the people who value their privacy not only on software but also on hardware level.
- 15:20 – 16:00 – The road towards using regular Linux on ebook readers (experiences and progress with Kobo/Tolino readers) by Andreas Kemnade
Most Kobo/Tolino readers offer a well-marked console port and often a second UART. If they are not water-resistant, they offer an internal µSD card slot containing the whole operating system and bootloader so that sounds like an invitation to do something interesting with them besides just reading books. Especially in prolonged outdoor activities, the display and their low power consumption have their merits. Hardware is quite similar, so you also have chances to get a replacement next corner. Several device trees and also some drivers made their way into mainline Linux now, on others upstreaming work is in progress. Support is starting to find its way into mobile Linux distributions like postmarketOS and graphics start to work with standard APIs. In this talk, I talk about my experiences, especially the current state of support in mainline Linux, what is missing, and what are the challenges. I will also talk about requirements for the graphics userspace and shortly present my favorite use case: displaying maps.
- 16:00 – 16:30 – Build Systems all the way down by Eilís Ní Fhlannagáin
In this talk, pidge will take a critical look at the places where meta-zephyr succeeds and fails in its original goals, the reasons behind that, and the steps being taken to fix those issues. OpenEmbedded, Zephyr and meta-zephyr are powerful tools that can give IoT developers the ability to rapidly develop embedded solutions. Integrating them all however is challenging, made more so by wrapping multiple build systems, machine configurations, and build languages into a coherent solution.
In this talk, pidge is going to show changes being implemented through her work on the Eclipse Oniro project to the meta-zephyr layer that brings most zephyr-supported machine configurations into meta-zephyr but also removes the need for OE machine configurations to have any knowledge of core zephyr modules. She will discuss the issues she encountered around integrating those changes from the zephyr side.
- 16:30 – 17:30 – One-stop shop: Best Practices for Programming Embedded FPGAs by Babar Khan
FPGAs are increasingly being used in today’s embedded systems. But they are notoriously complex for having a difficult programming model. In order to counter this complexity, there has been a growing focus to design FPGA hardware at a higher level of abstraction with new languages and compilers. This talk will serve as “one-stop shop” for topics related to these developments.
Are you an embedded developer? Do you like FPGAs? Do you want to know the best programming practices for embedded systems that deploy FPGAs? Do you like economical hardware? Do you like open-source projects? If your answer is “yes” to either of the aforementioned questions, then this talk is for you. As the title goes, this talk and its content will actually be “one-stop shop” for best practices related to FPGA programming. Considering C-based languages still dominate the embedded systems, the talk will focus on new methodologies that can be broadly implemented while using all C-based (C/C++/C#) languages when it comes to implementing your designs on FPGAs. To take it further, the talk will shift focus on C++ as C++ is finally picking up pace to come even closer to low-level hardware as compared to previous C++ standards. The last four C++ standards have come a long way to make C++ language even more compatible with embedded systems. Many open-source FPGA libraries are based on modern C++. At the end of the day, you will know how a modern embedded developer can adopt certain coding practices to fully exploit the underlying spatial parallelism of FPGA hardware. Additionally, you will learn about open source compilers, open-source projects, and economical FPGAs hardware to implement these best practices.
- 17:30 – 18:00 – GPIO across Linux and Zephyr kernels (maximizing code reuse) by Bernhard Rosenkränzer
Sometimes it is useful to share code across multiple kernels — we avoid doing the work twice. However, this might be complicated when one version is using Zephyr with a Cortex-M, and another Linux on a Cortex-A. We will explore this problem using an example of the door lock blueprint from the Eclipse Oniro project, an implementation of basic door lock functionality. For a typical use-case, a Cortex-M with Zephyr is more than sufficient, but we might also want to integrate the same application in a bigger one using Linux on a Cortex-A. Will we find a way to do so?
Sunday, February 6, 2022
- 10:15 – 10:45 – Running Mainline Linux on Snapdragon 410 (How we support over 25 devices in postmarketOS) by
The Qualcomm Snapdragon 410 (msm8916) is an SoC that was used in many smartphones and tablets around 2015. It is the most mature “aftermarket” platform postmarketOS can offer at the time of writing. Many of the supported devices are quite usable and have most of the expected features like phone calls and mobile data working.
The talk goes over some of the most important challenges that we have faced while supporting those devices and describes the ways in which we have solved them. Apart from the Linux kernel, we focus on various other tools and projects like lk2nd – a shim bootloader that prepares the environment for booting Linux and hides some device-specific quirks from the kernel. It also unifies the boot and installation process on all devices.
We also have other tools and resources to make porting easier. Those include various documentation or even a fully automated display driver generator that helps with the fact that each display requires unique initialization.
- 11:20 – 11:50 – Bring openwifi to PYNQ-Z1 at ultra-low-cost by Yimin Gu
Both software-defined radio and FPGA are interesting. Especially, the combination of AD936X RF transceiver and ZYNQ 7020 level FPGA SoC is capable of running openwifi. Price has been keeping average DIYers away from this kind of platform as evaluation boards from ADI and Xilinx are both extremely expensive. Cheaper ones like ANTSDR exist but seems all of them have tied the RF and ZYNQ chip together, so these are not suitable for generic ZYNQ development anymore.
In this talk, I want to introduce an openwifi capable low-cost AD936X extension board design and realization for the wildly available PYNQ-Z1 board by Digilent. This provides openwifi and PlutoSDR functionalities meanwhile keeping the major if not all functions of PYNQ-Z1 intact, with summed price potentially lower than all currently available openwifi capable platforms. Similar designs may also be applicable to other ZYNQ boards like ZYBO Z7-20 or Arty Z7-20, thus these could make openwifi available to much more people, especially those who already have a ZYNQ board. Besides this extension board, I’ll also touch on tools and workflows for “modern” circuit board DIY, which enabled me to build this 4-layer board with BGA chip comfortably at home.
- 12:00 – 12:40 – Update On Java On The Raspberry Pi by Frank Delporte
An overview of Java projects running on the Raspberry Pi.
In 2021, the Pi4J project released a completely new second version of its object-oriented GPIO API and implementation library for the Raspberry Pi. Let’s take a look at the new documentation site and example projects to get you started with Java development on the Raspberry Pi.
- 12:40 – 13:20 – Benefits Of MQTT For IoT Apps And Beyond by Mary Grygleski
A quick study on several popular MQTT brokers!
IoT applications run on IoT devices and can be created to be specific to almost every industry and vertical, from small devices to large ones, including healthcare, industrial automation, smart homes and buildings, automotive, and wearable technology. The possibilities are limitless. Increasingly, IoT applications are using AI and machine learning to add intelligence to devices. Among all of the variables in the IoT ecosystem, one common theme is the need to be able to handle the constrained operating environment, such as unreliable network connectivity, limited bandwidth, low battery power, and so on. We will take a look into the MQTT protocol, how it has evolved from its early days which was intended for the connection of oil pipelines via satellite, to now the ever-increasing demand in IoT and M2M applications, to how this protocol will evolve to meet the modern needs especially in the current cloud computing era. We will study a few outstanding MQTT libraries that are available in the market, such as the Java-based HiveMQ, and open source libraries such as Eclipse Mosquitto and Apache-licensed VerneMQ.
- 13:45 – 14:25 – Efabless Open ASICs by Mohamed Kassem
This presentation by Mohammed Kaseem, the CTO of e-Fabless, will outline how e-Fabless is empowering Libre/Open VLSI Hardware development. There are two initiatives: ChipIgnite which provides significantly-reduced cost Shuttle runs, and the Google-sponsored Skywater 130nm Programme.
- 15:00 – 15:30 – Running an OpenThread Mesh Network with Linux and Zephyr by Stefan Schmidt
The Thread protocol specifies a low-power IoT mesh network. It offers self-healing, low latency, and IPv6 connectivity without a single point of failure. In addition to the lower layer mesh functionality, it also offers mesh network management, as well as secure onboarding of headless devices.
OpenThread is an open-source project implementing the Thread protocol and its components. The focus of this talk is to demonstrate a Linux-based OpenThread border router and Zephyr-based mesh nodes. Tight together by a Yocto based build system this talk shows all components you need to have an IPv6 enabled microprocessor on a low-power wireless link. The used power is small enough to allow operating a small sensor for months or years on a coin cell battery in such a scenario. All are served by a Linux-based border router to allow for internet access and end-to-end IPv6 connectivity.
All of the above is bundled together in an Eclipse Oniro Project blueprint for a transparent IoT gateway.
- 15:30 – 16:00 – Towards UN R155 compliance with open source stack by José Bollo
The UNECE WP.29 regulation R155 for Cyber Security Management and R156 for Software Updates have been adopted in 2021 by UNECE’s World Forum for Harmonization of Vehicle Regulations. This means that cybersecurity is now non-negotiable for accessing the market in more than 60 countries, starting in July 2022.
The open source secured-by-design stack redpesk helps to fulfill regulatory requirements by providing:
- MAC-enabled Linux distribution (SMACK/SELinux)
- Secure microservices architecture
- Integration with RTOS for safety
- Innovative container engine fitted for embedded
- LTS on full car life (approx. 20 years)
- SOTA support
- 16:00 – 16:30 – Phosh Contributors Get Together
Get to meet the other Phosh contributors. You’re contributing to Phosh or its wider ecosystems as a designer, translator, distribution packager, tester, or developer (or intend to do so)? Then join us at this get-together. There’s no formal schedule, it’s just about meeting other people since we can’t have an RL meeting.
- 16:30 – 17:00 – Why Embedded Linux Needs a Container Manager Written in C by Ricardo Mendoza
Container technology has always been part of the cloud domain, and as such, its roadmap has usually been dictated by the use cases and requirements of that world. In the servers’ domain, resource utilization is nowhere near as relevant as it is in the embedded domain. The different languages and technologies that power the tools and mechanisms through which containers are leveraged in the bare metal server and /cloud worlds just don’t fit into the requirements of embedded.
Despite the above, these past couple of years have seen an aggressive push from cloud-centric companies trying to tell the Embedded Linux ecosystem and its development community that we should make do with Golang, NodeJS and similar solutions and tools. Most are unaware of the challenges when you cram cloud tools into a resource-constrained embedded system. Even though the architecture of some of these frameworks has the right intention (LXD), most just lack the interest in understanding the specific requirements of embedded.
In this talk, we’ll explore how using containers for embedded systems modeling can help facilitate development cycles by enabling modular software architectures. We’ll deep dive into what the real requirements of embedded systems are and how modern container technology can help us meet the actual needs of this world. And lastly, we’ll walk through an example with Pantavisor, an open-source container framework implemented for embedded systems.
- 17:00 – 17:30 – Over-the-air (OTA) software updates with NVIDIA Jetson by Luis Ramirez Vargas
With over half a million developers worldwide, NVIDIA Jetson is one of the most popular embedded computing platforms that brings AI performance to the Edge in a power-efficient and compact form factor
In this talk, we will cover in detail a unique way of integrating robust and secure over-the-air software (OTA) updates with the NVIDIA JetPack 4.6 production release that works for all Jetson System-on-Modules (SoMs) with support for the official L4T (Ubuntu-based) operating system, running JetPack 4.6 or later. As it is built on top of the latest JetPack SDK release, there is no need to have separate integrations when building and deploying applications on different Jetson SoMs. This has the benefit of enormously cutting down the bring-up time of an OTA solution to do all types of OTA updates. It has low maintenance costs since it does not involve modifying the boot process and rather relying on officially supported tools by NVIDIA which should not “break” with new L4T releases or board changes. We will cover the details of the integration with the high-level user flow as outlined below, which “clones” the running image of a golden device and deploys it in a robust manner to the entire fleet of devices:
- Download L4T image from NVIDIA
- Use NVIDIA tools to flash A/B setup with L4T image
- Install Mender as deb package, plus integration layer
- Run Mender snapshot to create Artifact
- Deploy Artifact snapshot to fleet
You can check out the full schedule for FOSDEM 2022 by day, track, or devroom on FOSDEM website, As always, it’s free to attend.
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.