In early February, I traveled to Brussels to attend the largest open-source event I’ve been to so far: FOSDEM. The trip was paid for with donations. I had hoped to demonstrate Nemomobile during my talk, but unfortunately it was not added to the schedule. Overall, I enjoyed all of the sessions, especially the mobile track and the “hallway track” full of small talks with many interesting people.
I started preparing on Thursday, when managed to brick my daily driver, so I was forced to use my PinePhone instead. The trip itself began on Friday, and while boarding the plane, I met David, a postmarketOS contributor. He introduced me to Erik, who works on the Mesa and Mali driver, as well as some of his colleagues from Collabora. After arriving, I enjoyed a pleasant Collabora meetup. Erik explained how to use the apitrace tool for reporting GPU issues. He also gave me a few hints for potentially working around the issue. For example the sched_timeout_ms kernel variable.
The FOSS on mobile devices track on Saturday began with a talk on Ubuntu Touch and the Lomiri user interface, presented by Alfred using a Fairphone 4. He showcased the convergence feature, which enables users to connect their smartphones to a larger screen and adapt the mobile UI to a desktop or TV use case. The impressive demonstration of the feature brought to mind my first experience with Maemo, since which I think of similar concepts.
Later on, I had a chance to chat with Alfred and learn some of the technical details. He explained how the Aethercast application allows for direct screen streaming to Miracast wireless displays by accessing the screen image buffer in memory. I’m curious to see if this approach could also work on mainline devices.
Sharp pictures with libcamera
Pavel Machek presented his progress with libcamera, a new framework for camera capture on Linux. Most PinePhone users are familiar with the MegaPixels camera app, which is specific to the hardware. A fork of the app called MiliPixels uses the libcamera framework for capturing pictures and recording videos. Pavel demonstrated his work on a Librem 5 phone, but the framework is also compatible with other devices. He explored the capture pipeline, identified and resolved some bottlenecks, and achieved improvements in areas such as auto focus, white balance, and auto exposure, resulting in surprisingly good picture quality.
Phosh is growing to nice UI
While I’m not a big fan of Gtk and related UIs, I have to admit that Phosh is becoming an increasingly interesting mobile interface. This is largely thanks to the addition of swipe gestures, which make it easier to navigate on small screens. In his talk, Evangelos showcased some of Phosh’s latest advances, including plugins for the lock screen that allow you to access features like calendars, tickets, or emergency info without unlocking the phone. He also introduced the idea of automated theme switching using a light intensity sensor, and demonstrated a new design for the Calls application that now supports VoIP calls using the SIP protocol, with encrypted media streams.
Actually, the call display won’t tell you right now that it is an encrypted call. Unfortunately, it doesn’t show that it is an encrypted call. You have to trust me.
A lot of work has been done on group chats and messages, with some people working on integrating Matrix chat into the messaging app. Additionally, a new dark style preference has been added for the whole Phosh environment. It appears that the patches for this feature have been merged into libadwaita, which means that it will likely be available in GNOME as well.
Phosh is in good shape. There are things that still can be better, but it is definitely usable as a daily driver…ish.
Oliver was demonstrating the installer and application for installation and first-run setup. The application was built using the LVGL graphical framework and could be placed directly into the initramfs. The UI was suitable for entering the disk encryption password and choosing the installation destination (eMMC or SD card), which is why it needed to run from the initramfs. He also described different scenarios for the first-run wizard and asked for suggestions on what could be included or omitted.
Norman was a brave presenter in the Mobile track who delivered his talk directly from his phone. He introduced the audience to the Genode OS and its main idea of separating all components into distinct nodes and defining the relationships between them. This approach can potentially reduce the attack surface of applications by 99%. He demonstrated how by swiping over the edge, it was possible to view a graph of the components and update their relationships and settings. This approach reminded me of the way applications are created with Squeak Smalltalk.
And the others..
The schedule was packed with many interesting topics, but given the limited time, it was challenging to delve deeply into them. As a result, it was harder to follow and describe here the details of the more technical sessions.
On Sunday, I attended Peter Manev’s Suricata talk, where he summarized the features of Suricata 7, which is set to release soon. Among the impressive features are pcap recording and DPDK support.
After that, I attended two NIX OS talks. While the talks were informative, I must admit that I am still apprehensive about using an OS based on functional programming languages.
During the SailfishOS BoF session, I observed that the team was primarily focused on refining and addressing the platform’s details, rather than introducing significant new ideas or changes. While I don’t see this as a problem in and of itself, I had hoped to see them leading the market with innovative new features or technologies, such as Qt6 or Flatpak. However, it seemed that the team was somewhat hesitant to fully embrace Flatpak due to concerns about non-native user experiences.
The final session of the conference that stood out for me was the NASA talk. Although it provided an overview of the project and some interesting stories from NASA, what really stunned me was the large and crowded room, which highlighted just how big FOSDEM as a conference really is.
The main reason to attend conferences like FOSDEM is the opportunity to put faces to chat nicknames and GitHub emails, and to speak with people in person.
I spent a lot of time at the mobile stand, which was very crowded. There were other projects such as postmarketOS, mobian, and plasma mobile. In open source, other projects aren’t competitors to fight against, but sources of knowledge and inspiration.
There were also a few Nemomobile contributors at the conference. Jolla is actually one of them. They have made many improvements to Nemo. I met also Alexi and Eetu. He showed me his past work for the Necunos phone. They already have a port of Qt Quick Controls Nemo to version 2.
At the Pine64 stand, I met TL Lim and Lucas and had a chance to play with the PineTab2 and PinePhone Pro with the hardware keyboard. Manjaro didn’t have its own stand, but I met @spikerguy there and we had a discussion about how we could improve packaging of Nemo for Manjaro.
There were other interesting stands around, such as HAM or IoT, and various hardware was blinking and beeping. Robotic toys were moving on the desk. I was mostly curious about the automotive demo. The outcome was, “Don’t expect to just install this in your car. We’re just showing a platform for car manufacturers.” This is a sad example of vendor lock-in. It would be great to break this barrier and be able to deploy and use open source from A to Z in cars for non-critical systems.
Site seeing, trip, and other conferences
The conference is not just about learning something new in your field, but also about discovering new places. Brussels has some unique attractions such as the Atomium and the Manneken Pis – a statue of a peeing boy (and statues of peeing girl, and dog). The Atomium was bigger than we expected, and the Manneken Pis was smaller than we expected. While in Brussels, you should try the waffles, chocolate, and mussels. And of course, Belgium is known for its wide range of beer types. I enjoyed my trip, especially since I got to fly there.