My first PinePhone and diving into mobile Linux

In August I decided to buy myself a PinePhone after being on the fence about it for a couple of weeks. When Apple announced they were going to introduce client side scanning with iOS 15 I received the nudge I needed to make the purchase.

If you’re not familiar with the PinePhone, it’s a smartphone that can run Linux but unlike many phones that can run Linux it does this natively. Most smartphones are Android devices first and then have Linux installed over the top, requiring a bridge layer to communicate between the hardware and Linux.

The PinePhone is very much in it’s early days and there are clear warnings across the website indicating that the device should only be bought by early adopters with experience of Linux but if you’re willing to put up with a bit of pain then it’s a really promising initiative.

While the hardware is not open-source (in the sense of you can’t build one at home) it is built with repairability, privacy and tinkering in mind with spare parts available for purchase, dip switches for physically disabling features such as the mic & cameras and a set of pins exposed for those who want to build hardware extensions.

My main interest in the PinePhone was to see if a Linux phone would be a viable move away from Apple and their privacy hypocracy. I was willing to buy a separate compact camera I could take with me to compensate for not having a decent in-phone camera if that was going to allow me to break free.

The other interest was convergence as I recall Ubuntu Touch demoing the functionality years ago and being really excited of being able to turn my phone into a desktop just by plugging it into a monitor.

I went into it knowing full well that, as with most of my Linux experiences there’d be a fair amount of work involved in getting things to work but if I was able to use it to keep in touch with people then it was good enough.

First Impressions — Order Communication

I’d like to start at the point after I’ve handed over the £170 to buy the PinePhone as I think this is a process that could be improved, especially if Pine64 want to reach a more mainstream tech audience.

On placing the order I was sent an invoice with an order number but there’s no means on the Pine64 site to enter that number to get a better understanding of what state it’s in. While I’m in a fortunate enough position that losing £170 isn’t going to be the end of the world it’s still a lot of money to not know what’s going on.

After a couple of weeks I had a follow up email to say the order was complete and on it’s way and this did have something that would keep me informed as there was a DHL tracking number.

I’ll go on a little tangent now as this isn’t Pine64s fault but DHL gave me some serious scammer vibes as they phoned me to tell me the parcel was coming from Hong Kong and wanted me to confirm I had the extra £40 to cover the import charge. They usually just text a link for me to pay via, so I spent the call refusing to give any information over but it turned out to be a legit call from DHL and I got the text after a couple of days which really confused me why they phoned in the first place.

First Impressions — The PinePhone itself

When I finally got the parcel delivered I was really excited to boot the device up and have a play. The phone comes in a slim box and contains the phone, USB-C charging cable and a simcard holder.

The PinePhone box is way slimmer than I was expecting

I booted the device and found it had around half a battery which was more than enough for me to set it up and start checking out the functionality. The Beta Edition that I bought shipped with Manjaro running Plasma.

Plasma was generally OK although the first time I used it, it was quite sluggish, but after a restart it was a bit snappier. The camera app though remained unusable after restart, rendering at around 5fps and capturing a really bad image.

Additionally, when I set up the phone in convergence mode it struggled with my screen and showed the desktop and part of a phone UI side by side, and attempting to update the OS out of the box resulted in an dependency error so I wasn’t confident I’d be able to rely on Plasma for a daily driver.

I encountered some issues running Plasma in convergence mode

One of the reasons that the PinePhone is great is that you can swap out the OS it runs really easily, as you can put another OS on the microSD card and it will boot from that first so you can try it out before committing to modifying the eMMC.

I burned Ubuntu Touch onto an old microSD card I had lying around and had a go with that and instantly fell in love with it. As someone who runs Ubuntu on my desktop I was right at home with that UI and I found it much nicer than Plasma’s more Android inspired design.

The particular version of Ubuntu Touch I had installed at the time (I think it was OTA-17) had a bug though as when I locked the phone’s screen I couldn’t unlock it as the screen never turned on again, so I had to switch the update channel to pull in a fix and that got it working again properly.

After fixing the issues with Ubuntu I started to think about if the PinePhone was going to provide me with enough to justify moving over to using it as my phone and unfortunately I couldn’t make that call because of the following reasons:

  • The WiFi chip only supports 2.4Ghz and my router doesn’t seem to handle 2.4Ghz as well as it does 5Ghz making using it at home really awkward as it constantly disconnects
  • The battery life isn’t great, I was getting about 2–3 hours out of it from full charge while testing things out so it’s not really something I can sit doom-scrolling on while watching TV and then head out of the house with
  • The specs of the phone are good enough for launching a couple of apps but it struggles if you try to do anything intense like set up something like libertine, Anbox or Waydroid which I needed for keeping in touch with friends via Signal

A second hand Android might be a better option

After using Ubuntu Touch I was really interested in finding a device that would have a beefier battery so I looked at the device list on the UBPorts website and saw that the OnePlus 6T offered 24 hours on a single charge and after searching eBay I found one with 8GB of RAM for £169.

This was about the same price I paid for the PinePhone but as the PinePhone also had import charges added on top then actually just buying the OnePlus 6T would have been cheaper.

However installing Ubuntu Touch on the device isn’t as easy as just flashing the OS to a microSD like with the PinePhone as it involves installing Hallium and the official installer I found to be a bit flakey.

Ubuntu Touch runs really well on the OnePlus 6T and I’ve been able to get Waydroid working on it in order to run Signal via their Android app just fine.

Unfortunately I can’t make the jump just yet as I have a number of apps that I need to use (such as my banking app which as this particular bank doesn’t have any physical branches or web based banking makes things awkward) that don’t seem to work under either Anbox or Waydroid.

Overall impressions

I really like what Pine64 are doing and will be keeping an eye on their devices as they offer smartwatches and e-ink tablets which I could easily replace my Apple Watch and iPad with.

Starting at around £110 (plus shipping and import taxes) the PinePhone has the right price point I think for it to be a justifiable expense for anyone looking to give mobile Linux a try and I would recommend giving it a shot if you’re able to get by with a smaller set of apps you can use.

At the time of writing, the PinePhone Pro has just been announced so I look forward to seeing what the battery life on that device is like, but for now I will be sticking with trying to set up Ubuntu Touch on the OnePlus 6T.

In order to use a Linux mobile device as my daily driver though there’s some dependencies that I have to resolve in order to free myself from being tied down to iOS or Android. Until then I’ll just have to disable iCloud on my iPhone and hope that the UK stops turning into a 1984 dystopian nightmare.

Currently building reciprocal.dev. Interested in building shared understanding, Automated Testing, Dev practises, Metal, Chiptune. All views my own.