We’ve had an excellent year of adding more functionality for the phone to the mainline Linux kernel. As a result, the Librem 5 phone has become quite usable in 2021 and will further improve in 2022. We have also increased shipping throughput, and our estimated shipping times are more accurate than ever. Here is a complete run-down from our team.
The most visible change was switching the Operating System (OS) from PureOS 9 (code name: Amber) to PureOS 10 (Code name: Byzantium), based on Debian Bullseye. This PureOS 10 update brings in updated software and disk encryption. The Librem 5 now comes with an encrypted root file system. Unlike with PureOS 9, there are no phone-specific software repositories in PureOS 10, so a lot of work has gone into integrating phone-specific patches into upstream software releases so that they work well both on laptop and desktop form factors.
The camera sensors on the Librem 5 came to life in 2021. In January we used a v5.9 based kernel without support for any camera at all. Now we’re on a kernel based on v5.15 and support both cameras in the kernel. We’ve spent much of the time working on supporting the cameras and we’ve completed camera driver support for all i.MX8MQ systems. Most of the camera stack bits (except for the back cam sensor driver) are already mainlined.
Now you can get access to the smart card reader on the Librem 5.
Get better control of how you share your location. When you disable location services on a Librem 5, you can trust (and audit) that the phone is honoring your request. For ultimate privacy, you can even go into full lockdown mode to disable all radios, GPS, cameras, mics and other sensors.
SD card readers in mainline Linux haven’t used proper runtime power management. Instead, distributions typically poll the device for changes regularly. Now users can enable full runtime suspend for SD card readers and expect it to work like any other device. This helps the Librem 5 save power but also benefits other devices that have SD card readers.
We added SIP support to calls (the Librem 5’s phone call application) based on libsofia and gstreamer. Phone calls can now also be accepted (or rejected) on the locked phone and the phone stays fully usable while on a call.
There were more improvements like user avatars in more places and contact lookups from within the calls application (which will soon be expanded to also cover SIP contacts).
Calls were moved into the GNOME project in 2021 as well so it’s now officially GNOME calls.
Phone call on lock screen
Community members, Chris Talbot with Sadiq implemented Multimedia Message Service (MMS) support in Librem Chats (the Librem 5’s chat application). Besides the changes in Librem Chats itself, this also required adding ModemManager support to mmsd-tng (implemented by Chris).
We added initial, experimental support for the Matrix protocol which will turn into a non-experimental, everyday use protocol in 2022.
Libadwaita is a library for implementing the GNOME HIG. It saw its first stable release in 2021. This provides the building blocks for moving applications from GTK3 to GTK4, while still being adaptive and working well on the Librem 5’s phone screen (and other mobile devices).
Many GNOME/GTK applications saw improvements for the phone form factor, but one of the larger reworks was GNOME Software. This work is now fully upstream.
Phosh (the phone shell) saw 13 releases so we’ll cover that in a separate post and mention high contrast mode here (which is now also honored by the on-screen keyboard squeekboard). The compositor (phoc) saw many fixes regarding window placement, making it work much better both in phone and in docked mode (with an external screen attached). For 2022 we expect the gesture support to land so that you can drag the top bar and bottom bar in phosh.
Expect more from Librem 5: easier photo taking, flash integration and mainlining of the remaining bits. Other areas include work on suspending the device when not in use which – while not ready (and hence not enabled) yet – will continue to see work in 2022.
While we focus on our hardware, of course, we put our work out for improving our code quality and to encourage more testing. Let’s not forget that we are one community and develop as part of it. Just like including code into the mainline or an upstream project can help us and others equally, our own work on an issue should never stop there.
The post is based on inputs provided by Guido Gunther and Martin Kepplinger. We acknowledge each of their contributions along with several community members (both employees and volunteers). The full documentation is maintained in our repository.
There are many ways you can help with our mission to make a convenient, freedom-respecting phone everyone’s daily driver.
If you have software development expertise, here are some quick ways to get involved.
You can contribute funds directly to a specific app or feature.
Librem 5 orders directly fund all the advances we’ve been able to make in 2021, and will continue to be the primary way we fund Librem 5 development in 2022