FOSDEM is an open-source developer event that takes place on the first week-end of February every year in Brussels, Belgium. Every year except this year, as due to COVID-19 restrictions, FOSDEM 2021 will take place online like most events these days.
The schedule has been up for some time, and today I’ll look at some of the interesting talks mostly from the Embedded, Mobile and Automotive “virtual devroom” but also other tracks.
- 13:00 – 14:00 – From Reset Vector to Kernel – Navigating the ARM Matryoshka
Long gone are the times of executing the OS in-place from memory-mapped flash upon reset. A modern SoC now comes with complex mask ROM firmware, with driver, filesystem, protocol and crypto support for loading… yet another bootloader.
In his talk, Ahmad follows this chain of bootloaders until the kernel is started, stopping along the way for RAM setup, peripherial initialization, runtime services and other interesting sights. Getting acquainted with the bootstrap process on a modern ARM-based SoC can be an intimidating task: Documentation speaks of Boot ROM, blobs, SPL, secure monitor, trusted execution environment, Open Firmware Device Trees all interacting with each other and with a bootloader to facilitate kernel boot.
The talk intends to shed some light onto this. Starting with an overview of the bare minimum needed to bootstrap an i.MX8M, it retraces the steps of the barebox bootloader, and firmware loaded by it, until Linux eventually takes over.
- 14:00 – 15:00 – Embedded Linux “from scratch” in 45 minutes… on Risc-V
Join and discover how to build your own embedded Linux system completely from scratch. You will build your own toolchain, bootloader and kernel, that you will run on system with the new RISC-V open Instruction Set Architecture emulated by QEMU. You will also build a minimal root filesystem by yourself thanks to the BusyBox project. You will finish by controlling the system through a tiny webserver. The approach will be to provide only the files that are strictly necessary.
You will also get details about what’s specific to the Risc-V architecture, in particular about the various stages of the boot process. At the end of the presentation, you will leave with all the hardware (!), source code build instructions and demo binaries to reproduce everything by yourself at home, and add your own improvements. Most of the details should also be useful to people using other hardware architectures (in particular arm and arm64).
Michael Opdenacker here proposes a new version of an older presentation he made 15 years ago to discover embedded Linux, and which was for a long time one of his most downloaded presentations.
- 15:00 – 16:00 – Overview of the Open Source Vulkan Driver for Raspberry Pi 4
Igalia has been developing a new open source Mesa driver for the Raspberry Pi 4 since December 2019. This talk will discuss the development story and current status of the driver, provide a high level overview of the major design elements, discuss some of the challenges we found in bringing specific aspects of Vulkan 1.0 to the V3D GPU platform and finally, talk about future plans and how to contribute to the on-going development effort.
- 17:00 – 17:15 – TerosHDL, an open HDL IDE
TerosHDL is an open source project focused in the development and integration of EDA tools in an IDE. It’s currently based on VSCode and Atom.
The goal of TerosHDL is bringing all facilities of software code tools to the HDL development: linter, code completion, simulators management, automate documentation, snippets…
We will introduce TerosHDL VSCode with multiple features. In the new release the architecture has been completely rebuild, reduce some dependencies and clarify the code.
Some of the new features are:
- Verilog/SystemVerilog support.
- Dependencies viewer.
- State machine viewer.
- More beautiful documentation.
- 17:15 – 17:30 – MutantC PDA introduction – open source and hardware PDA shell
MutantC is an open-source and open hardware shell for RPi form factor boards. It includes hardware keyboard, sliding display with touchscreen, battery with charging circuit, etc. This short talk will be an introduction to the project, its goals, and changes to the v3 hardware revision.
- 17:30 – 18:00 – Open Harmony – more than an OS
Breaking hardware boundaries, transcending the classic dichotomy of an OS, this is what OpenHarmony is about. Catering the needs from tiny sensors up to powerful systems, from edge to cloud.
In this presentation Stefan will address questions every FOSS developer will have, when hearing about OpenHarmony for the first time. If you are curious about the architecture, used FOSS projects, or want to know more about contribution guidelines and start picking in the code this talk would be a good start.
Stefan will talk about the multiple-kernel approach, the distributed architecture and layers. He will also explain our public development infrastructure and contribution flows.
- 11:00 – 11:30 – openwifi – open source WiFi chip – Progress 2020 and future
Openwifi project, the opensource WiFi chip design, was firstly announced in FOSDEM 2020. During the unusual 2020, openwifi project has made many progresses, also encountered some difficulties. In this presentation, openwifi project would share with you:
- result of user/community growth
- main progresses: hardware support; performance; stability; bug fixes; new features
- difficulties: community participation (FPGA people << software people); too expensive hardware
- idea of low cost hardware
- new features planned
- 13:00 – 14:00 – Networking Performances in the Linux Kernel, Getting the most out of the Hardware
Nowadays, complex Network Interface Controllers (NICs) can be found even on small embedded systems, bringing powerful features that were previously found only in the server world closest to day to day users. This is a good occasion to dive into the Linux Networking stack, to discover what is used to make networking as fast as possible, by both using all the features of the hardware, but also implementing some clever software tricks.
In this talk, we’ll cover these various techniques, ranging from simple batch processing with NAPI, queue management with RSS, RPS, XPS and so on, flow steering and filtering with ethool and TC, to finish with the newest big change that is XDP.
We’ll dive into these various techniques and see how to configure them to squeeze the most out of your hardware, and discover that what was previously in the realm of datacenters and huge computers can now also be applicable to embedded Linux development.
- 14:00 – 14:30 – Embedded Linux License Compliance for Hackers & Makers
This presentation will cover the practices and tools you can use to improve compliance with open source licenses as a hobbyist or small business using OpenEmbedded/Yocto Project, Buildroot or other Embedded Linux build systems. The focus will be on practical steps that don’t require excessive time, effort or consultation with expensive lawyers. This presentation will also discuss license compliance pitfalls to avoid. No legal advice will be given in this talk.
- 14:30 – 15:00 – Safety and open source, oh my?
At FOSDEM 2020 we introduced Eclipse iceoryx, a true zero-copy middleware for safety-critical applications like automated driving. At FOSDEM 2021 we will give an overview of what needs to be considered when writing safety software in the open, share our experience regarding the development workflow and present the progress of the Eclipse iceoryx certification.
- 15:00 – 15:30 – Adding Open Hardware to Open Software for a More Equitable IoT – How I Became an Indie Manufacturer and How You Can Too
We all know the benefits of open software, but not as many of us take the step into designing and building the hardware to run it on. Consumers are left with a choice of mass-market devices – hoping the company doesn’t turn off its servers, and doesn’t sell their data – or going DIY and soldering up things themselves.
We need a wealth of Indie Manufacturers, building open hardware devices to provide more options and freedom to end users. This talk shows MCQN Ltd’s path on that journey and how you could follow it too. We’ll look at the whole process of making an open hardware product, from the design through to batch manufacturing and shipping. Sharing the open-source tools used plus the services and kit you’d need.
- 15:30 – 16:00 – Networked Audio in Android Automotive
The modern vehicle audio system is built with a number of networked components that are needed for many complex and integrated functionalities such as active noise cancellation, warning sounds, diagnostics, etc. And thus, complex and flexible audio setups are a fundamental design need for modern vehicles. GENIVI AASIG analyzes various scenarios of integrating Android in this complex setup and analyzes the maturity and gaps of Android Automotive solution in this context. This talk aims to highlight some of the findings of the group and discuss further investigation topics in this area
The talk will give a short overview of the audio system design choices with Android. As part of the analysis towards integrating Android in the complex setup that exists today, the first step group took was to extract raw PCM stream out of Android context. The talk will discuss the implementation of this and the various design tradeoffs and decisions that was taken. The next step would be to connect Android to audio network. Currently A2B and AVB are being investigated. Further investigations includes topics like: ECNR handling, calibration mechanisms, how to utilize DSPs in various system configuration (virtualization, containerization, multi HW).
- 16:00 – 16:30 – Designing an open communication framework for the connected car
The connected car has been around some time but we are still waiting for a large breakthrough when it comes to third party services powered by vehicle data. The fragmentation of different technical solutions makes it difficult for 3rd parties or developers to work with easily accessible vehicle APIs.
To tackle this, the GENIVI Cloud & Connected Services project is designing an end-to-end communication framework starting from the data transfer from embedded systems in the vehicles and spanning to cloud based APIs. The framework is built on open protocols and is demonstrated with open-source reference code with the aim of simplifying implementation work for both car manufacturers and 3rd party developers. This presentation will detail the work results to date and will be co-presented by Kevin Valdek from HIGH MOBILITY and Ulf Bjorkengren from Geotab.
- 16:30 – 17:30 – Feedback Wanted: What features and design choices are needed for an Industrial IoT SBC?
A few years ago at balena, we designed and built a robust carrier board for the Raspberry Pi 3 Compute Module, specifically targeting IoT use cases, called the balena Fin. We are now starting the design process for a successor, and are asking for input, ideas, and advice on what should be included, excluded, or optional.
Let’s talk about form-factor and size, SoC and SoM choices (pros and cons), memory and storage, connectivity, ports and port placement, expansion, and intended use-cases.
Designing a board with community input and dialogue results in a better product in the end, and meets more people’s needs. As experts, we’d love to hear your thoughts! Let’s have a chat about what you think is important and should be included in an industrial-strength IoT single board computer.
There are fewer tracks related to hardware, embedded, and IoT this year, but still plenty of other talks that may be interesting. You’ll find the full schedule with 661 speakers, 719 events, and 113 tracks on the official website. It should be easier to attend than usual as traveling is not required, and seating won’t be a problem since everything will be online. That’s provided the infrastructure can keep up.