Met een Android-telefoon of iPhone ben je volledig overgeleverd aan de grillen van Google of Apple. De PinePhone biedt een verfrissend alternatief: een smartphone waarop je elke ARM-compatibele Linux-distributie installeert.

Koen Vervloesem

Deze review is het resultaat van anderhalve maand gebruik van de PinePhone. Belangrijk om te weten is dat producent Pine64 zich alleen bezighoudt met de hardware: de softwarekant laat het bedrijf aan de community over. Daarvoor kan de community wel rekenen op alle mogelijke informatie over hoe de PinePhone gebouwd is, inclusief elektronische schema’s en datasheets. Dat is tegelijk de sterkte en de zwakte van de PinePhone. Een voordeel is dat je niet aan één besturingssysteem gebonden bent: je kiest zelf wat je op je PinePhone installeert, en daarin ben je volledig vrij. Aan de andere kant zul je wel enkele besturingssystemen moeten uitproberen voordat je er een vindt die je ligt, en ze zijn nog niet allemaal even bruikbaar.

Verschillende edities

Pine64 installeert al wel een besturingssysteem op de PinePhones die het levert, maar het werkt met edities. Het is niet zo dat je een PinePhone kunt bestellen en die onmiddellijk geleverd krijgt. Je doet een pre-order voor een specifieke editie, en zodra Pine64 voldoende bestellingen heeft, levert het die. Elke editie komt overeen met een hardwarerevisie, die kleine aanpassingen aan de hardware heeft. Achtereenvolgens waren er edities met Ubuntu Touch, postmarketOS en Manjaro. Van elke verkoop krijgen de ontwikkelaars van het gekozen besturingssysteem voor de editie 10 dollar van Pine64. Het voorgeïnstalleerde besturingssysteem staat op de interne eMMC-opslag, maar je kunt het eenvoudig overschrijven met je eigen favoriete besturingssysteem, of een micro SD-kaart met een besturingssysteem toevoegen. De micro SD-kaart krijgt altijd voorrang bij het opstarten.

“Powered by Linux” is iets wat je niet snel op een telefoon te zien krijgt.

Specificaties

Afmetingen: 160,5 x 76,6 x 9,2 mm
Gewicht: 180-200 g
SIM: Micro-SIM
Scherm: 5,95 inch capacitief aanraakscherm (HD IPS), 1440×720 pixels, 18:9 ratio
SoC: Allwinner A64
RAM: 2 GB of 3 GB LPDDR3 SDRAM
Interne opslag: 16 GB of 32 GB eMMC, uitbreidbaar tot 2 TB via micro-sd (SDHC en SDXC)
Camera: 5 MP, 1/4″, LED Flash
Selfiecamera: 2 MP, f/2.8, 1/5″
Geluid: Luidspreker, 3,5 mm jack & microfoon
Communicatie: LTE, WCDMA, GSM, Wi-Fi 802.11b/g/n, Bluetooth 4.0 met A2DP, GPS/GLONASS/BeiDou/Galileo/QZSS
Sensoren: Accelerometer, gyro, nabijheid, omgevingslicht, kompas
Killswitches: Modem, Wi-Fi & Bluetooth, Microfoon, Camera, Selfiecamera, Audiojack
Batterij: Lithium-ion, 2800 mAh (10,64 Wh), Samsung J7-formaat
I/O: USB-C met USB Host, DisplayPort Alternate Mode, 15 W (5 V 3 A) Quick Charge, USB PD

Controle over je hardware

Zie het kader “Specificaties” voor de eigenschappen van de hardware. Zoals je ziet, zijn dit entry-level eigenschappen. Dat kun je ook verwachten voor een prijs van $150. Maar de PinePhone is meer dan een gewone smartphone. Het is een smartphone die je volledige controle wil geven, en dat zie je ook al aan de hardware. Zo vind je in de binnenkant van de telefoon zes minuscule dipschakelaars waarmee je onderdelen van de telefoon kunt uitschakelen: de modem en gps, Wi-Fi & Bluetooth, de microfoon, camera, selfiecamera, en audiojack. In de telefoon duidt een kleine sticker aan waarvoor elke schakelaar staat. Interessant voor wie zijn privacy extra wil beschermen, maar het is wel onhandig dat je daarvoor eerst de achterkant van de telefoon moet verwijderen.

Hardwareuitbreidingen

Iets anders opvallends zijn de zes pogopinnen die je vlak boven de killswitches ziet. Dat zijn verende pinnen voor contact met hardwareuitbreidingen. In de telefoon zelf staat niet aangeduid waarvoor elke pin dient, maar op de wiki van Pine64 vind je meer uitleg. Op VBUS staat 5 V en GND is de massa, terwijl je met VBAT de batterij kunt opladen. SCL en SDA zijn de klok- en datalijnen van I²C, en de telefoon heeft al de nodige pull-upweerstanden ingebouwd. INT tot slot is een interruptlijn, ook met een pull-upweerstand al ingebouwd.

Pine64 heeft al een backcover aangekondigd met een extra batterij die de voedingspinnen gebruikt, en een uitschuifbaar toetsenbord dat via de I²C-bus met de PinePhone verbonden wordt. Je kunt via de pogopinnen ook zelf hardwareuitbreidingen voor de telefoon maken. Iemand heeft al een break-outbordje gemaakt om gemakkelijker toegang tot de pogopinnen te verkrijgen via normale jumperwires.

En Martijn Braam van postmarketOS heeft als test een thermische camera op de pogopinnen aangesloten. Hij heeft daarvoor zes gaten door de backcover van de PinePhone gesmoten en er kleine nagels door gestoken. Daardoor kon hij met behoud van de originele backcover het break-outbordje van de thermische camera aansluiten.

Met de killswitches schakel je specifieke onderdelen van de PinePhone hardwarematig uit en met de pogopinnen sluit je hardwareuitbreidingen aan.
Met dit break-outbordje krijg je eenvoudig toegang tot de pogopinnen van je PinePhone.

Seriële console

Als je zelf low-level wilt hacken aan de PinePhone, komt een seriële console altijd van pas. Verrassend genoeg heeft de PinePhone al een seriële poort ingebouwd, en wel in de hoofdtelefoonaansluiting. Als je de audiojack met de zesde dipschakelaar uitschakelt, functioneert die aansluiting als seriële poort (UART).

Pine64 verkoopt een seriële debugkabel die in de audiojack past, maar je kunt er ook zelf een maken. Een eenvoudige USB-TTL-kabel op 3,3 V waarvan je dan de TX aansluit op de tip van een audioplug en de RX op de eerste ring van de plug werkt ook. Als je dan de plug van je seriële kabel in de audiojack van de PinePhone steekt en de USB-kant in je pc, kun je met bijvoorbeeld screen of cu op je pc een seriële console openen. De UART van de PinePhone werkt op 115200 baud, zonder pariteitsbit en met 8 databits. Met screen open je als volgt een sessie:

screen /dev/ttyUSB0 115200

Distrohopping

Afhankelijk van de editie die je hebt gekocht, komt de PinePhone zoals gezegd al met een besturingssysteem, maar zelfs dan probeer je het best eens wat andere distributies uit. Dat kan heel eenvoudig met het PinePhone multi-distro demo image van Ondřej Jirman.

Tijdens de redactiesluiting bood dit image van 5 GB maar liefst 13 Linux-distributies voor de PinePhone aan, op te starten via een handige bootloader, p-boot. Je schrijft het image eenvoudigweg naar een micro-sd-kaart, breidt de partitie uit tot het de volledige opslagcapaciteit gebruikt en steekt het kaartje dan in het micro-sd-kaartslot van de PinePhone. Op die manier kun je veilig allerlei distributies uitproberen zonder aan de interne eMMC-opslag te raken.

Distrohoppen op je telefoon? Met het PinePhone multi-distro demo image is dat heel eenvoudig.

Besturingssystemen met een tweede leven

De PinePhone is duidelijk een platform waarop enkele ‘oude’ mobiele besturingssystemen een tweede leven krijgen. Herinner je je Maemo nog? Dit op Debian gebaseerde besturingssysteem was meer dan tien jaar geleden populair in opensourcekringen en het draaide op de legendarische Nokia N900. In 2018 heeft de community dit doorontwikkeld tot Maemo Leste, dat ondertussen ook op de PinePhone draait. In feite is het een ARM64-port van Devuan (Debian zonder systemd). In mijn test bleek het nog niet erg bruikbaar.

Dan heb je ook nog Sailfish OS, dat een geschiedenis met Maemo deelt: Maemo en Moblin fuseerden tot MeeGo, waaruit de communityversie Mer ontstond. De groep ontwikkelaars die bij Nokia aan MeeGo werkten, zijn dan naar de start-up Jolla overgestart en hebben het Mer-project verder ontwikkeld en aangevuld met een propriëtaire interface. Het resultaat is Sailfish OS, dat op de telefoons van Jolla draait, maar ook naar de PinePhone geport is. Sailfish OS ziet er heel leuk uit en het heeft de meest gebruiksvriendelijke wizard voor het eerste gebruik van alle besturingssystemen die ik op de PinePhone uitgeprobeerd heb.

Een ander alternatief mobiel besturingssysteem is WebOS, oorspronkelijk ontwikkeld voor Palm en na de overname door HP opensource gemaakt. Later werd het verkocht aan LG, dat het besturingssysteem in zijn smart-tv’s gebruikt. Op smartphones is het nooit doorgebroken, maar de community heeft een afgeleid besturingssysteem ontwikkeld, LuneOS. Dat draait nu ook op de PinePhone. Het is een heel aparte en stijlvolle interface, maar nog vrij beperkt in functionaliteit.

Ubuntu Touch

Waarschijnlijk het bekendste besturingssysteem dat op de PinePhone draait, alleen al omwille van zijn naam, is Ubuntu Touch. Het is een mobiele versie van het alom bekende Ubuntu. Aanvankelijk werd Ubuntu Touch door Canonical ontwikkeld, het bedrijf achter de desktopversie van Ubuntu. Maar in 2017 zette Canonical er een punt achter door gebrek aan interesse in de markt. De ontwikkeling werd daarna opgepikt door het UBports-project.

Als je Ubuntu Touch op de PinePhone opstart, valt de wizard voor eerste gebruikers positief op. Ondanks die goede eerste indruk blijkt het besturingssysteem toch nog niet zo bruikbaar te zijn. De gps, camera en audio werken nog niet. Ubuntu Touch vraagt ook duidelijk veel van de al niet zo sterke PinePhone-hardware: vergeleken met de andere geteste besturingssystemen verloopt alles wat traag.

Goed om te weten is dat Ubuntu Touch wat afwijkt van normale Linux-distributies. Het systeem gebruikt het model van Android en iOS waarbij apps van elkaar en van het besturingssysteem gescheiden zijn en specifieke permissies moeten aanvragen. In de dagelijkse werking lijkt Ubuntu Touch dan ook nog het meest op die twee populaire mobiele besturingssystemen. Apps download je van OpenStore. Maar je kunt ook gewoon willekeurige Linux-software in Ubuntu Touch draaien, dat gebeurt dan in een container.

Van Plasma Mobile tot Sxmo

Gebruik je op je pc KDE Plasma, dan zul je je waarschijnlijk onmiddellijk vertrouwd voelen bij een distributie die Plasma Mobile draait. Zo heb je KDE Neon, gebaseerd op KDE Neon voor de desktop, maar dan met Plasma Mobile als interface. Een andere optie is postmarketOS met Plasma Mobile. Die laatste bleek tijdens mijn test nog niet erg bruikbaar te zijn.

PostmarketOS, gebaseerd op Alpine Linux, is interessant omdat het meer grafische omgevingen dan andere besturingssystemen aanbiedt. Naast Plasma Mobile en Phosh (dat komt dadelijk aan bod) vind je ook postmarketOS-images met specialere grafische omgevingen, zoals bijvoorbeeld Sxmo (Simple X Mobile). De interface van Sxmo bestuur je grotendeels met de volumeknoppen aan de zijkant van de Pinephone. In feite is Sxmo een collectie van eenvoudige X-programma’s zoals de window manager dwm, het menu dmenu en de webbrowser surf. Als je deze website bekijkt, lijkt het allemaal wat met haken en ogen aan elkaar te hangen, maar het werkt in de praktijk verrassend goed.

Phosh

Phosh staat voor ‘phone shell’ en het is een populaire grafische omgeving op de PinePhone. Het is een Wayland-shell voor de GNOME-stack die is geoptimaliseerd voor mobiele apparaten, met de bijbehorende Wayland-compositor Phoc. Beide programma’s worden ontwikkeld door Purism voor hun Linux-smartphone, de Librem 5. Als je gewoon bent om met GNOME te werken op je pc, zal Phosh zeker vertrouwd aanvoelen.

Heel wat van de besturingssystemen voor de PinePhone kun je downloaden in een versie met Phosh. Voor postmarketOS en Mobian is de Phosh-versie momenteel de voorkeursversie. Van PureOS, het Debian-gebaseerde besturingssysteem van Purism voor de Librem 5, is er ook een onofficiële port voor de PinePhone. En ook Manjaro, openSUSE, Fedora en NixOS kun je op je PinePhone installeren met Phosh.

Phosh (hier op Mobian) is een gebruiksvriendelijke mobiele interface gebaseerd op de GNOME-stack.

Mobian

Ik heb een tijdje alle distributies van het multi-distro demo image voor de PinePhone uitgeprobeerd, en uiteindelijk maakte Mobian het meeste indruk. Op deze site kun je een image van Mobian voor de PinePhone downloaden. Schrijf het gewoon naar een micro SD-kaartje en start je PinePhone daarvan op.

Verwacht niet dat je de PinePhone met Mobian al als je dagelijkse telefoon kunt gebruiken. Daarvoor zijn er nog te veel bugs en sommige zaken zijn nog niet helemaal af. Zo werkten sms-berichten bij mij wel en mobiel internet ook na een nmcli-opdracht in de terminal, maar bij zowel inkomende als uitgaande telefoongesprekken hoorde zowel mijn gesprekspartner als ik geen geluid. Op deze wiki vind je overigens heel wat tips, ook voor troubleshooting.

Mobian is in essentie Debian voor ARM64 met als gebruikersinterface Phosh en aangepaste instellingen om vlot op de PinePhone te werken. Dat werkt verrassend goed: je hebt duidelijk het gevoel dat je met een mobiel besturingssysteem werkt, maar tegelijk voelt het ook als een echte Linux-distributie aan, en geen walled garden zoals Android of iOS.

Die Linux-basis wordt helemaal niet verborgen, en daardoor ben je snel aan de slag met Mobian. Als je weet waar je een specifieke optie in de instellingen van GNOME vindt, dan pas je blindelings die optie aan in de instellingen van Phosh. Loop je tegen een probleem aan, dan open je een terminal en voer je vertrouwde opdrachten als dmesg, systemctl list-units –state=failed enzovoort uit. Wel even opletten: de terminal-app heeft de nietszeggende naam King’s Cross en het icoontje ziet eruit als dat van een app voor openbaar vervoer. Het duurde even voor ik dat doorhad: ik heb een week lang gedacht dat Mobian standaard geen terminal-app installeerde, omdat ik dat vreemde icoontje links liet liggen.

De instellingen van GNOME in Mobian.

Draag zelf bij

De drempel om bij te dragen aan Mobian is vrij laag. Als je ergens een verbeteringspuntje ziet, lees dan op de ontwikkelaarswiki van het project eens hoe je kunt bijdragen. Zelf had ik bijvoorbeeld graag dat de OpenSSH-server al vlak na de eerste boot van het image zou opstarten, maar dan alleen inloggen met een publieke sleutel toestond. Na me even in te lezen in debos, het buildsysteem dat Mobian gebruikt, had ik een merge request klaar dat na enkele opmerkingen en mijn daarop volgende aanpassingen werd opgenomen in de code.