commit: a1392fe13edc83cf393f18c7977d26084c4d3256
parent 417deca2e8e3ec432d9ef7131198bf531c54ffce
Author: Drew DeVault <sir@cmpwn.com>
Date: Fri, 16 Jun 2023 11:37:17 +0200
Throwing in the towel on mobile Linux
Diffstat:
2 files changed, 225 insertions(+), 0 deletions(-)
diff --git a/assets/main.scss b/assets/main.scss
@@ -280,3 +280,32 @@ dl {
border-color: #bee5eb;
}
}
+
+table {
+ color: #333;
+ background: white;
+ border: 1px solid grey;
+ font-size: 12pt;
+ border-collapse: collapse;
+}
+table thead th,
+table tfoot th {
+ background: rgba(0,0,0,.1);
+}
+table caption {
+ padding:.5em;
+}
+table th,
+table td {
+ padding: .5em;
+ border: 1px solid lightgrey;
+}
+td.red {
+ background: #F8D7DA;
+}
+td.yellow {
+ background: #FFF3CD;
+}
+td.blue {
+ background: #CFE2FF;
+}
diff --git a/content/blog/Mobile-linux-retrospective.md b/content/blog/Mobile-linux-retrospective.md
@@ -0,0 +1,196 @@
+---
+title: Throwing in the towel on mobile Linux
+date: 2023-06-16
+---
+
+I have been tinkering with mobile Linux -- a phrase I will use here to describe
+any Linux distribution other than Android running on a mobile device -- as my
+daily driver since about 2019, when I first picked up the PinePhone. For about 3
+years I have run mobile Linux as my daily driver on my phone, and as of a few
+weeks ago, I've thrown in the towel and switched to Android.
+
+The distribution I ran for the most time is [postmarketOS], which I was mostly
+quite happy with, running at times sxmo and Phosh. I switched to [UBports] a
+couple of months ago. I have tried a variety of hardware platforms to support
+these efforts, namely:
+
+[postmarketOS]: https://postmarketos.org/
+[UBports]: https://ubports.com/en/
+
+* Pinephone (pmOS)
+* Pinephone Pro (pmOS)
+* Xiaomi Poco F1 (pmOS)
+* Fairphone 4 (UBports)
+
+I have returned to LineageOS as my daily driver and closed the book on mobile
+Linux for the time being. What put the final nails in the coffin was what I have
+been calling out as my main concern throughout my experience: reliability,
+particularly of the telephony components.
+
+<table>
+ <thead>
+ <tr>
+ <th>Use-case</th>
+ <th>Importance</th>
+ <th>postmarketOS</th>
+ <th>UBports</th>
+ <th>LineageOS</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Basic system reliability</td>
+ <td class="blue">5</td>
+ <td class="red">2</td>
+ <td class="blue">4</td>
+ <td class="blue">5</td>
+ </tr>
+ <tr>
+ <td>Mobile telephony</td>
+ <td class="blue">5</td>
+ <td class="yellow">3</td>
+ <td class="yellow">3</td>
+ <td class="blue">5</td>
+ </tr>
+ <tr>
+ <td>Hotspot</td>
+ <td class="blue">4</td>
+ <td class="blue">5</td>
+ <td class="yellow">3</td>
+ <td class="blue">5</td>
+ </tr>
+ <tr>
+ <td>2FA</td>
+ <td class="blue">4</td>
+ <td class="blue">4</td>
+ <td class="red">1</td>
+ <td class="blue">5</td>
+ </tr>
+ <tr>
+ <td>Web browsing</td>
+ <td class="blue">4</td>
+ <td class="blue">5</td>
+ <td class="red">2</td>
+ <td class="blue">4</td>
+ </tr>
+ <tr>
+ <td>Mobile banking</td>
+ <td class="blue">4</td>
+ <td class="red">1</td>
+ <td class="red">1</td>
+ <td class="blue">5</td>
+ </tr>
+ <tr>
+ <td>Bluetooth audio</td>
+ <td class="yellow">3</td>
+ <td class="blue">4</td>
+ <td class="red">2</td>
+ <td class="blue">4</td>
+ </tr>
+ <tr>
+ <td>Music player</td>
+ <td class="yellow">3</td>
+ <td class="blue">4</td>
+ <td class="red">1</td>
+ <td class="yellow">3</td>
+ </tr>
+ <tr>
+ <td>Reading email</td>
+ <td class="yellow">3</td>
+ <td class="red">1</td>
+ <td class="yellow">3</td>
+ <td class="blue">4</td>
+ </tr>
+ <tr>
+ <td>Navigation aid</td>
+ <td class="yellow">3</td>
+ <td class="red">2</td>
+ <td class="red">1</td>
+ <td class="blue">5</td>
+ </tr>
+ <tr>
+ <td>Camera</td>
+ <td class="yellow">3</td>
+ <td class="yellow">3</td>
+ <td class="yellow">3</td>
+ <td class="blue">5</td>
+ </tr>
+ <tr>
+ <td>Password manager</td>
+ <td class="yellow">3</td>
+ <td class="blue">5</td>
+ <td class="red">1</td>
+ <td class="red">1</td>
+ </tr>
+ <tr>
+ <td>sysadmin</td>
+ <td class="yellow">3</td>
+ <td class="blue">5</td>
+ <td class="red">2</td>
+ <td class="yellow">3</td>
+ </tr>
+ </tbody>
+</table>
+
+<details style="margin-top: 1rem">
+ <summary>More on these use-cases and my experiences</summary>
+
+ **Mobile banking**: only available through a proprietary vendor-provided
+ Android app. Tried to get it working on Waydroid; did not work on pmOS and
+ almost worked on UBports, but Waydroid is *very* unreliable. Kind of shit but
+ I don't have any choice because my bank requires it for 2FA.
+
+ **Web browsing**: I can just run Firefox upstream on postmarketOS. Amazing!
+ UBports cannot do this, and the available web browsers are not nearly as
+ pleasant to use. I run Fennic on Android and it's fine.
+
+ **Music player**: the music player on UBports is *extremely* unreliable.
+
+ **Reading email**: This is not entirely pmOS's fault; I could have used my
+ main client, aerc, which is a testament to pmOS's general utility, but it is a
+ TUI that is uncomfortable to use on a touchscreen-only device.
+
+ **Password manager**: pmOS gets 5/5 because I could use the password manager I
+ wrote myself, [himitsu](https://himitsu-store.org), out of the box.
+ Non-critical use-case because I could just type passwords in manually on the
+ rare occasion I need to use one.
+
+ **sysadmin**: stuff like being able to SSH into my production boxes from
+ anywhere to troubleshoot stuff.
+</details>
+
+Among these use-cases, there is one that absolutely cannot be budged on: mobile
+telephony. My phone is a critical communication device and I need to be able to
+depend on calls and SMS at all times, therefore the first two rows need to score
+4 or 5 before the platform is suitable for my use. I remember struggling with
+postmarketOS while I was sick with a terrible throat infection -- and I could
+not call my doctor. Not cool.
+
+I really like these projects and I love the work that's going into them.
+postmarketOS in particular: being able to run the same environment I run
+everywhere else, Alpine Linux, on my phone, is fucking amazing. The experience
+is impressively complete in many respects, all kinds of things, including things
+I didn't expect to work well, work great. In the mobile Linux space I think it's
+the most compelling option right now.
+
+But pmOS really suffers from reliability issues -- both on edge and on stable it
+seemed like every update broke some things and fixed others, so only a subset of
+these cool features was working well at any given moment. The breakage would
+often be minor nuisances, such as the media controls on my bluetooth headphones
+breaking in one update and being fixed in the next, or major showstoppers such
+as broken phone calls, SMS, or, in one case, all of my icons disappearing from
+the UI (with no fallback in most cases, leaving me navigating the UI blind).
+
+So I tried UBports instead, and despite the general lack of good auxiliary
+features compared to pmOS, the core telephony was more reliable -- for a while.
+But once issues started to appear, particularly around SMS, I could not tolerate
+it for long in view of the general uselessness of the OS for anything else. I
+finally gave it up and installed LineageOS.
+
+Mobile Linux is very cool and the community has made tremendous, unprecedented
+progress towards realizing its potential, and the forward momentum is still
+strong. I'm excited to see it continue to improve. But I think that before
+anyone can be expected to use this as a daily driver, the community really needs
+to baton down the hatches and focus on one thing and one thing only: always,
+*always* being usable as a phone. I'll be back once more reliability is in
+place.