From June 28 to June 30, Bootlin participated to the Embedded Linux Conference Europe, which was organized as part of the new and larger Embedded Open Source Summit.
In addition, the day before the conference, on June 27, our team had a great team building event, spending the day visiting Prague, having lunch in a traditional restaurant, enjoying a boat tour on the Vltava river, and an evening with a traditional dinner and folklore music. As our team is distributed, conferences are a great opportunity to meet each other and Prague was for several members of our team their first in-person meeting.
With 14 Bootlin engineers at the conference, almost our entire engineering team participated. Indeed, we have a policy at Bootlin to offer to all our engineers, regardless of their seniority level, the chance of attending 2 technical conferences each year.
This first edition of Embedded Open Source Summit was a new attempt from the Linux Foundation to host embedded-focused events outside of the larger Open Source Summit. We found this new format of having an embedded-focused conference to be very effective. The crowd was smaller, and it was much easier to meet people with similar interests, and for other people to find us. Unfortunately the 2024 edition in the US will again be co-located with the larger Open Source Summit, but we look forward to the 2025 edition, back in Europe, and part of the embedded-focused Embedded Open Source Summit.
We also found the talk selection to be of very high quality this year, with many in our team agreeing that the quality was probably even higher than last year’s edition. In a number of future blog posts, we will share our selection of talks we found interesting, to hopefully encourage our readers to dig into some of the very useful content provided during the conference. In terms of schedule, we unfortunately again found disappointing the time dedicated to keynotes that were for many not very relevant to people interested by technical topics, and would have preferred to see more time dedicated to technical talks.
During this conference, we presented 3 talks and had one booth at the technical showcase.
A tour of USB Device Controller (UDC) in Linux
Talk given by Bootlin engineer Hervé Codina
This talk is a presentation of the USB Device Controller (UDC) subsystem in Linux. It will focus on USB 2.0 devices but the topics presented will also be relevant for USB3.
A USB Device Controller (UDC) is one component of a USB Gadget. A USB gadget is made of one or more USB functions exposed through one UDC. The USB functions are in charge of the functionalities and the UDC handles the transfers on the USB Endpoints involved in the USB gadget and drives the hardware to perform such transfers.
In this talk, we will first give an introduction to the USB 2.0 standard. We will highlight the different types of transfers, the available standard control requests and the standard device states.
Then, based on the USB 2.0 standard introduction, we will describe the goal of the UDCs and how they are implemented in the Linux kernel with a particular focus on the USB EP0 control handling involved in the USB enumeration process.
The last part will present a tool available and several pre-composed USB gadgets that can be used to test a UDC.
A Current Overview of the DRM KMS Driver-Side APIs
Talk by Bootlin engineer Paul Kocialkowski
DRM KMS has been around for over ten years now and is the de-facto standard API for display hardware support in Linux. It has replaced the legacy fbdev API that should eventually be removed from the kernel entirely. Yet DRM KMS is a complete (and complex) framework that has evolved quite a lot over time, bringing support for modern hardware and interfaces as well as important features such as atomic configuration, zero-copy buffer sharing, fences and many more.
A downside of this is the relative complexity of writing new drivers, which can sometimes feel a bit discouraging to newcomers. This talk will highlight the main aspects of the current DRM KMS kernel-side APIs and how to use them for writing such drivers. It will cover various topics such as memory management, internal pipeline configuration, bridge and panel handling as well as complex interfaces handling (such as MIPI DSI and DP).
Examples from actual drivers in the tree will be presented, as well as impressions from personal experience when writing the logicvc-drm driver and working on various panel and bridge drivers.
Finding the Best Block filesystem for Your Embedded Linux System
Talk by Bootlin engineer Michael Opdenacker
It can be difficult to find the most appropriate filesystem for your embedded system’s eMMC or SD card storage. You can benchmark your system with each of them, but it can be time consuming. In this talk, we will compare all the actively maintained block filesystems supported in the Linux kernel: ext2, ext4, xfs, btrfs, f2fs, squashfs and erofs. Each of them will be properly introduced, with its basic design principles and main features.
We will then compare each filesystem in terms of kernel module size and load time, filesystem mount time (important for boot time), filesystem size, as well as read and write performance on a few simple scenarios. We will also look for the best compression algorithms for filesystems with compression options. Performance comparisons will be run both on a 32 bit ARM board and on a 64 bit ARM one, both using a fast SD card as storage device.
Filesystem performance can really depend on the benchmark, on your storage and on your CPU, so no universal results should be expected. However, you will learn what the best solution is in specific hardware configurations and testcases.
No AI will be used to prepare, write this presentation and answer your questions. Only a human brain with 20 years of experience with Embedded Linux.
Snagboot: a generic recovery and reflashing tool
Poster and demo presented at the technical showcase by Bootlin intern Romain Gantois about our recently released project snagboot.
Bootlin in Tim Bird’s Status of Embedded Linux talk
Tim Bird mentioned the work from Bootlin engineers as part of the top contributing companies to the Linux kernel on embedded topics:
Later in the presentation, Tim spent a full slide to talk about our Snagboot project, which gave a nice spotlight to this new project:
Next edition, and other conferences
The next edition of Embedded Linux Conference will take place on April 15-19 in Seattle, USA. In the mean time, you can also consider attending the next Embedded Recipes conference in Paris, on September 28-29. Several engineers from Bootlin will be attending those two conferences, so we look forward to meeting you there!