logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git

PinePhone-review.md (7409B)


  1. ---
  2. date: 2019-12-18
  3. layout: post
  4. title: PinePhone review
  5. tags: [review, mobile]
  6. ---
  7. **tl;dr**: Holy shit! This is the phone I have always wanted. I have never been
  8. this excited about the mobile sector before. However: the software side is
  9. totally absent — phone calls are very dubious, SMS is somewhat dubious,
  10. LTE requires some hacks, and everything will have to be written from the ground
  11. up.
  12. I have a PinePhone developer edition model, which I paid for out of pocket[^1]
  13. and which took an excruciatingly long time to arrive. When it finally arrived,
  14. it came with no SIM or microSD card (expected), and the eMMC had some half-assed
  15. version of Android on it which just boot looped without POSTing to anything
  16. useful[^2]. This didn't bother me in the slightest — like any other
  17. computer I've purchased, I planned on immediately flashing my own OS on it. My
  18. Linux distribution of choice for it is
  19. [postmarketOS](https://postmarketos.org/), which is basically the mobile OS I'd
  20. build if I wanted to build a mobile OS.
  21. [^1]: In other words, no one paid me to or even asked me to write this review.
  22. [^2]: I understand that the final production run of the PinePhone is going to ship with postmarketOS or something.
  23. Let me make this clear: **right now, there are very few people, perhaps only
  24. dozens, for whom this phone is the right phone, given the current level of
  25. software support**. I am not using it as my daily driver, and I won't for some
  26. time. The only kind of person I would recommend this phone to is a developer who
  27. believes in the phone and wants to help build the software necessary for it to
  28. work. However, it seems to me that all of the right people *are* working on the
  29. software end of this phone — everyone I'd expect from the pmOS community,
  30. from KDE, from the kernel hackers — this phone has an unprecedented level
  31. of community support and the software *will* be written.
  32. So, what's it actually like?
  33. <details>
  34. <summary>Expand for a summary of the specs</summary>
  35. <p>
  36. The device is about
  37. <abbr title="The thickness of a GameBoy cartridge">1 cm thick</abbr>
  38. and weighs
  39. <abbr
  40. title="The weight of one GameBoy Color, with batteries, without cartridge"
  41. >188 grams</abbr>. The screen is about 16 cm tall, of which 1.5 cm is bezel,
  42. and <abbr
  43. title="About the width and height of a GameBoy color, plus 1 inch of height"
  44. >7.5 cm wide</abbr> (5 mm of bezel). The physical size and weight is very
  45. similar to my daily driver, a Samsung Galaxy J7 Refine. It has a USB-C port,
  46. which I understand can be reconfigured for DisplayPort, and a standard
  47. headphone jack and speakers, both of which sound fine in my experience. The
  48. screen is 720x1440, and looks about as nice as any other phone. It has
  49. front- and back-facing cameras, which I've yet to get working (I understand
  50. that someone has got them working at some point), plus a flash/lamp on the
  51. back, and an <abbr
  52. title="Note that the only values for R, G, and B that I've managed to get working are 0.0 and 1.0 each, for a total of 7 possible colors (including off)"
  53. >RGB LED</abbr> on the front.
  54. </p>
  55. <p>
  56. The eMMC is 16G and, side note, had <em>seventeen</em> partitions on it when
  57. I first got the phone. 2G of RAM, 4 cores. It's not very powerful, but in my
  58. experience it runs lightweight UIs (such as <a
  59. href="https://swaywm.org">sway</a>) just fine. With very little effort by
  60. way of power management, and with obvious power sinks left unfixed, the
  61. battery lasts about 5 hours.
  62. </p>
  63. </details>
  64. In short, I'm quite satisfied with it, but I've never had especially strenuous
  65. demands of my phone. I haven't run any benchmarks on the GPU, but it seems
  66. reasonably fast and the open-source Lima driver supports GLESv2. The modem is
  67. supported by [Ofono](https://01.org/ofono), which is a telephony daemon based on
  68. dbus &mdash; however, I understand that we can just open `/dev/ttyUSB1` and talk
  69. to the modem ourselves, and I may just write a program that does this. Using
  70. Ofono, I have successfully spun up LTE internet, sent and received SMS messages,
  71. and placed and answered phone calls - though the last one without working
  72. audio. A friend from KDE, Bhushan Shah, is working on this and rumor has it that
  73. a call has successfully been placed. I have not had success with MMS, but I
  74. think it's possible. WiFi works. All of this with zero blobs and a kernel which
  75. is... admittedly, pretty heavily patched, but [open
  76. source](https://gitlab.com/pine64-org/linux) and making its way upstream.[^3]
  77. [^3]: The upstream kernel actually does work if you patch in the DTS, but WiFi doesn't work and it's not very stable.
  78. Of course, no one wants to place phone calls by typing a lengthy command into
  79. their terminal, but that these features can be done in an annoying way means
  80. that it's feasible to write applications that do this in a convenient way. For
  81. my part, I have been working on some components of a mobile-friendly Wayland
  82. compositor, based on Sway, which I'm calling Sway Mobile for the time being. I'm
  83. not sure if Sway will actually stick around once it becomes difficult to bend to
  84. my will (it's designed for keyboard-driven operation, after all), but I'm
  85. building mobile shell components which will translate nicely to any other
  86. wlroots-based compositors.
  87. The first of these is a simple app drawer, which I've dubbed
  88. [casa](https://git.sr.ht/~sircmpwn/casa). I have a lot more stuff planned:
  89. - A new bar/notification drawer/quick action thing
  90. - A dialer & call manager, maybe integrated with gnome-contacts
  91. - A telephony daemon which records incoming SMS messages and pulls up the call
  92. manager for incoming phone calls. Idea: write incoming SMS messages into a
  93. Maildir.
  94. - A new touch-friendly Wayland lock screen
  95. - An on-screen keyboard program
  96. Here's a video showing casa in action:
  97. <video
  98. src="https://yukari.sr.ht/casa.webm?cache-break"
  99. style="max-width: 50%; margin: 0 auto; display: block"
  100. autoplay loop muted >
  101. Your browser does not support webm playback. Please choose a browser which
  102. supports free and open standards.
  103. </video>
  104. The latest version has 4 columns and uses the space a bit better. Also, in the
  105. course of this work I put together the
  106. [fdicons](https://gitlab.freedesktop.org/ddevault/fdicons) library, which may be
  107. useful to some.
  108. I have all sorts of other small things to work on, like making audio behave
  109. better and improving power management. I intend to contribute these tools to
  110. postmarketOS upstream as a nice lightweight plug-and-play UI package you can
  111. choose from when installing pmOS, either improving their existing
  112. postmarketos-ui-sway meta-package or making something new.
  113. In conclusion: I have been waiting for this phone for years and years and years.
  114. I have been hoping that someone would make a phone whose hardware was compatible
  115. with upstream Linux drivers, and could *theoretically* be used as a daily driver
  116. if only the software were up to snuff. I wanted this because I knew that the
  117. free software community was totally capable of building the software for such a
  118. phone, if only the hardware existed. This is actually happening &mdash; all of
  119. the free software people I would hope are working on the PinePhone, are working
  120. on the PinePhone. And it's only $150! I could buy four of them for the price of
  121. the typical smartphone! And I just might!