FOSDEM 2025

05 March 2025
Tim Guite

This was my first FOSDEM, so I was pretty excited!

FOSDEM is held on the Universite Libre de Bruxelles, so after arriving by tram, the first thing I noticed was how many people were there! It should have been obvious to me that there would be a lot of people when there are over 70 specialised tracks taking place over the two days. Bear in mind, this is a conference organised completely by volunteers. It was really impressive and exciting to see crowds of people that care about free and open source software in person, rather than just on my screen.

Being interested in all things embedded, I headed straight for the embedded dev room and camped there for most of the afternoon. The room holds about 200 people and it was almost full for the whole day. There are a few talks I want to highlight here, but slides for all the talks are available now and recordings are on their way.

First up, Bartosz Golaszewski spoke about his experience maintaining the GPIO subsytem for Linux. The existing implementation for this, /sys/class/gpio, has a number of issues such as magic numbers for specific pins and an inconsistent ABI. This is the method that google recommends! Bartosz has been working on a number of replacements including libgpiod and a corresponding set of command line tools. The main difficulty he’s faced is that developers do not want to change their programs, so any replacements have to behave like the thing they are replacing, even though that thing is not a good as it could be. It was great to hear from someone directly responsible for an important part of Linux and hear how they think about these sorts of changes.

John Nordby gave a talk on MicroPython and his emlearn project. He covered what MicroPython can do, how it’s slightly different from Python for PCs and the tooling that is available for embedded applications. One thing he emphasised which I wasn’t so aware of is how C modules can be loaded at runtime as native modules. These native modules are important for speeding up calculations and getting the most of of the chip. There were also mentions for Wokwi and OpenMV which are great projects to look into!

Towards the end of the session, Zephyr was gently roasted by Benjamin Cabe. He was looking at some of the common complaints made about Zephyr and explaining why things are like that and how to make changes to suit your project. The main challenge Zephyr has is that is covers such a wide range of possible applications and developers that the defaults will never suit everyone. Instead, an array of tools is provided that allows you to customise it. Of course, the challenge for developers is learning what these tools are, and how they interact with each other. The promising thing I took away was how busy the room was for this talk, and that there were a number of other talks at FOSDEM highlighting interesting use cases for Zephyr. There is clearly a lot of enthusiasm from industry and developers around Zephyr.

Finally, I want to mention an interesting talk by Yumin Gu, who has written the GenZ board support package generator for the Zynq 7000 series of chips. He demonstrated a fully open source workflow for creating Zynq binaries. As he mentioned, the official AMD way of creating these binaries is already complex and so the open source, command line centred method could actually be simpler for developers. I thought this was such an interesting project and it opens up possibilities such as building the FPGA bitstream on the chip itself, which is just really neat!

I had to leave the embedded session a little early as I had volunteered to help organise the Big FOSDEM Quiz of the Year talk in the main lecture theatre. I met a bunch of the volunteers who had been running the help desk all day and organising all the other volunteers. Some of them don’t actually go to any of the talks, they just work all weekend. It shows how much effort is required to make a big event like this run smoothly! The quiz itself was great, Steven Goodwin expertly hosted a panel of contestants and got the audience involved as well!