Yan's Blog 📚

Daily driving a Linux Phone - My Experience

3 phones (Pinephone, Opeplus 6, Pixel 3a) running firefox on PostmarketOS displaying postmarketos.org

My first exposure to 3rd-party smartphone operating systems originally intended to run Android was from a Linus Tech Tip video. This video covered how one could extend the usable life of an old smartphone by installing a 3rd-party Android ROM called LineageOS. After further research, I also discovered a project called Ubuntu Touch that promised to bring Ubuntu to your smartphone but in a touch-friendly package. While Ubuntu touch had an initial “wow” factor, this feeling eventually wore off when I realized that you can realistically only use app from the UBports app store, since desktop Ubuntu apps are pretty clunky to use on a small screen and do not support hardware acceleration on Ubuntu touch.

This lead me searching for something that would let me run Full, Fat, desktop Linux apps on a smartphone, which is exactly the goal of PostmarketOS: A true, linux operating system that uses an upstream, up to-date linux kernel and runs a Wayland or X11 compositor. Approaching smartphone software like this has several benefits:

The biggest downside of PostmarketOS is hardware compatibility. Very few devices have working GPS, Camera or USB. This is why PostmarketOS has a handy hardware table that indicates a phone’s hardware support for essential features.

The PostmarketOS Table of hardware

I concluded, based on the hardware table, that the Pinephone , a phone designed to run Linux out of the box, was the best option. It has a working GPS, Camera, Video out, suspend and USB. The Pinephone’s biggest weakness is that it uses a relatively old chip that uses lots of power (40nm transistor size!) for very weak performance. The interface is horribly sluggish and the battery lasts a bit over an hour when actively using it. I managed to daily drive it for almost a year, mostly since it’s battery life when suspended was long enough to get though a day and not needing a case due to the plastic shell also helped.

A photo of the Pinephone

After tolerating the Pinephone for a year, I looked for other options. I ended up picking up a Oneplus 6 that I got for a reasonable price on Kijiji, a local marketplace used in Ontario. The Oneplus 6 seems to be one of the best supported Android devices that can run PostmarketOS. Cellular, haptics, speaker, and Graphical acceleration all function perfectly. There are a few major problems that hold this device back from perfection:

The Oneplus 6

Imagine how exited I was when I read the latest PostmarketOS blog and found out the the camera on the Pixel 3a was functional! I immediately looked to Kijiji again to see if I could find a Pixel 3a for a good price. I immediatly flashed the latest PostmarketOS Edge upon receiving it to see what the camera looked like. While I was impressed that a proper Linux phone had a working camera at all, the camera has a major issue that makes it almost useless to me: There is no focus! The focus is locked to be as close as possible, so it’s only really possible to take photos of small objects, like sharing your breakfast with friends. Even then, the photos have a green color to them and are cropped in, meaning the resolution and FOV of the phone camera is reduced. Looking at the pmaports issue for cameras, it seems like lots of work is needed to get the camera backend to support focus at all, as well as actually getting the Pixel 3a hardware to work. The Pixel 3a had additional problems compared to the Oneplus 6 as well:

Using the camera on the Pixel 3a

Overall, I really want to use PostmarketOS. The software does basically all I want out of a phone, and it does many thing better than Android. I really like how all the applications come from central repository, meaning updates are at regular intervals. I like how notifications are only used to notify for communications. I like how I can sign into Nextcloud and have Calender, Mail, Contacts and Files all work without dedicated sync applications or a different UX for each app. I like how the open applications stay in the order I left them. It’s just that hardware support is lacking.

I tried a project called Drodian, basically Mobian running ontop of the original Android kernel using Halium, but I found it to be prone to crashing and not connecting to cellular. As of writing this post, I use CalyxOS on the Pixel 3a I got for PostmarketOS. It has a locked bootloader, working camera and GPS and All day battery. It just feels a bit icky to be using a Google OS with all the weirdness that Android entails when 90% of my needs are met my PostmarketOS.

I’ve considered the possibility of constructing my own phone using prefab components like a RPI CM4, the Qucetel Modem used in the pinephone, a Pi camera, 2 18650 cells, and a screen all joined by a custom PCB inside a 3d printed enclosure. While this device would probably be thick (~1.5-2.0cm) and would have poor specifications (Low res screen, short battery life), it could be possible to have everything just work, which would be enough for me.

#Linux #Postmarketos