A PC in your pocket: Librem 5, a Free Software phone
Librem 5 runs the fully convergent PureOS, which means you can take your desktop with you within your phone. Its dedicated graphical environment, Phosh, is becoming a popular option for Linux phones. Guido Günther, one of Purism’s main developers, reveals details of Librem’s software development in this interview.
Having a Free Software phone gives you control over your device. You can gain a higher level of privacy protection, and you can finally avoid apps you were stuck with before. It also means you can often keep your device for longer, and protect the environment by reducing e-waste.
When deciding on your switch to a Free Software operating system, your options are installing a new system on your current phone or acquiring a phone with a Free Software operating system pre-installed.
The latter is clearly the easier route, and Purism’s Librem 5 may be the solution for you. By default, it runs PureOS, a Free Software operating system that comes with Phosh, its polished graphical environment. Projects like postmarketOS, Mobian, and Debian have picked up Phosh too, putting it into use on other devices and contributing patches.
Guido Günther is one of the main developers of Phosh (and an FSFE supporter!) and he kindly agreed to tell us about the software, how it fits within the Librem 5 ecosystem, and its advantages.
Fani Partsafyllidou: I would like to start with a basic question, what do you do at Purism?
Guido Günther: That is not easy to answer, but here goes: I am mostly working on the Librem 5 phone. I was involved with the initial board bringup of making Linux work on the device by writing device drivers and user space components. Since we needed a graphical shell and compositor, I worked with others on the team on that too. That is how Phosh was born.
I also work on improving PureOS, the Debian based Linux distribution that runs on the phones and on the laptops. Our aim is to improve the Free Software ecosystems for mobile devices (like smartphones) in general, and the Librem 5 in particular.
Fani: Librem 5 runs PureOS, right?
Guido: Yes. Like all of Purism's products, the Librem 5 runs PureOS, which is a Debian-based operating system that is customized to fit Purism's devices so it is convenient for end users. It also has FSF’s endorsement
Fani: And what does Phosh do?
Guido: Phosh is the graphical shell, the environment you interact with on the phone. It is built up from multiple components:
- the Wayland compositor, phoc, is responsible for drawing things on the screen, it leverages the wlroots library for that;
- then there is an on-screen keyboard called squeekboard;
- finally there is the shell itself, which is responsible for things like the lock screen, notifications, the GUI elements on the top and bottom bar, quick settings, etc. It is based on the gimp toolkit and other components of the GNOME desktop. Here is an overview.
Initially we were only going to call the graphical shell itself “Phosh”, but the community latched on to the name and identified the whole mobile experience that it is based on (phosh + phoc + squeekboard + all the GNOME components) as “Phosh”, so the name stuck.
Fani: Which phones run Phosh?
Guido: While Phosh was initially developed for the Librem 5, it is also being used by all kinds of mobile devices that can run Linux, like the original Pinephones and the Pinephone Pro. It's also used on devices that formerly ran Android but can now also run Linux, like the OnePlus devices. People are also using it on tablets and laptops running Linux. The main use case is certainly smartphones running Linux, though.
It is worth noting that Phosh is not restricted to PureOS. PostmarketOS, for example, ships it. It is in Debian, and, as far as I know, also in Fedora, Manjaro, and many other Linux distributions.
Very often when you see screenshots of phones running Linux, they will be running Phosh. Here is someone running it on a cutiepie, and here's someone running Phosh (using postmarketOS) on a Poco F1, which was an Android phone before.
Phosh is very often used by people who use their Linux-based phones as a "daily driver", basically as their only smartphone. We are very happy about that.
Fani: I have seen references about sustainability in Librem5. At the FSFE we are also dealing with sustainability in software. What do you understand as a sustainable technology? What do you see as its main challenges?
Guido: For me, technology that has been produced with sustainability in mind allows the user to replace software and parts, as well as repair the device over a long period of time without special equipment.
There are multiple challenges. For example, on the software side, you need to make sure your kernel and userspace do not include any non-free components, which is also worthwhile for privacy reasons. Otherwise you might hit the end of life of your product because you are not able to update to the newer, security-supported versions. This happens every so often to Android devices. Users find they cannot move to a newer kernel as the non-free, binary-only bits that are needed to run the device are only available for older kernels.
Finding or writing Free Software drivers can be very challenging, especially when it comes to complex things like the GPU, as these are very complex devices. Similarly for software components in the camera stack. But having free drivers is a requirement for sustainability.
On the hardware side, you want to make sure parts are easily replaceable, that as little as possible is glued in and parts can be replaced with mostly a screwdriver. This is true in Librem 5.
There are limits to sustainability. For example, to decode videos in a power-efficient way your hardware needs to support this, as doing it on the *****U takes way too much battery. When a new video standard emerges on the web, you cannot always decode it in an efficient way. The device will keep working but it might just not be as useful.
Fani: Moving back to Librem 5 users and software adaptability: What are the best hacks people came up with when using a Librem5 phone?
Guido: The thing that comes to mind is not something I would call a hack, as it is an intended use case, but one of the most amazing things is that you can turn it into a "laptop" by using a dock. So basically you carry your phone and can attach it to a projector -- I have given talks at conferences like that. Or you can hook it up to a "dock" and it becomes a laptop-screen+keyboard, then you can add a usb-c monitor and turn it into a "full" PC.
People have used their Librem5 as a mobile hotspot to supply the whole house when there was an outage on their cable line, or as a loudspeaker as their laptops had bad audio quality, and have rerouted the laptop audio to the phone via pulseaudio.
Since you're not restricted by any means and you can install any software, there are unlimited possibilities. I'm so used to everything being possible that I currently have a hard time thinking of "cool" things as everything feels so natural already.
Fani: How does convergence, that is, the ability to have almost the same OS in phones and laptops, as in PureOS, benefit software development?
Guido: Since we are reusing lots of existing components, we benefit from the stability of already existing Free Software solutions, as well as being able to contribute back. For example, the libhandy and libadwaita libraries are now part of GNOME and used by lots of applications.
Using mostly the same components across devices helps avoid developing the same things twice, one for mobile and one for desktop. It allows people with knowledge of desktop Linux to find their way around right away, especially when it comes to configuration. It also allows them to contribute more easily as it is the same technology stack.
Developers, users, and sysadmins can use the very same trouble-shooting tools they know, such as wireshark, perf, and sysprof, across devices. And, if you find a bug and fix it on one side, the "other" side benefits directly. It is really the same software coming from the same source tree. As for users, switching becomes very easy, as they will already be familiar with the software.
Fani: On a side note I would like to ask you about Bonn. You have been active in the FSFE Bonn local group for many years. Do you recall any fun local activities there?
Guido: In fact, one of the recent fun things is when we switched to BigBlueButton meetings due to the pandemic. We had old friends from Düsseldorf in the meetings who otherwise would not have made it to the local meetings due to the distance.
The FSFE booth in FrosCon, a social event often staffed with people from the Bonn group, is usually a highlight. I am glad this FrosCon is on site again. However, I am not super active in the local group at the moment, mostly due to time constraints.
The local FSFE meetings often had a short talk about different topics which is usually the best part since it pulls in more people, and very often brings in new people. I hope we resume these when the pandemic situation has settled down. Many people, including myself, feel less inclined to prepare talks when it's "only" online.
Fani: You work in Free Software development, and you are involved with the FSFE. What keeps you motivated when it comes to supporting software freedom and the FSFE?
Guido: It is really motivating for me that we can get to a point where people can use a Free-Software-only device as their main phone or laptop. Improving that keeps me motivated on the development side. We cannot have free democracies without Free Software, hence doing anything else is not time well-spent. It is also a reason why the FSFE is important, as telling people about it and nudging decision makers to embrace it is key.
Free Software initiatives for phones
If you would like to explore more options on Free Software phones, check out:
- What is Free Software?;
- How you can upcycle your phone;
- Our community-led wiki with Free Software initiatives for phones;
- Our interview with Plasma Mobile developer Bhushan Shah.