Garage 44

Open Source Playground

Pinephone Pro - getting started


Thanks to all the hard and smart work of people involved with developing the Pinephone, I've been able to use the Pinephone (rev 1.2) for almost 10 months now as my 'daily driver'. Mainly with Manjaro Phosh (since beta 5), but now and then with Plasma Mobile.

I still prefer Phosh because of its call stability (eg25-manager vs. ofono) and UI simplicity. Stress-levels rise quickly when I find myself unable to unmute the phone after having waited 20 minutes in a queue with mediocre call-waiting music. Also, I need to be sure that people are able to reach me (most of the times) on the phone through SMS and calls.

Currently my Pinephone runs on Manjaro Phosh beta 22. A lot of hardware support has been improved in a year. Calls and deep-sleep work pretty good. The life of a battery charge is extended to 2 or 3 days and the phone is reliably reachable.

I still reflash the phone once in a while due to breaking updates. So, to be able to get up-and-running again quickly, I try to keep manual data entry on the phone to a minimum. I've setup a Nextcloud instance where I keep my contacts. Phosh contacts makes it a breeze to sync contacts and calendars from Nextcloud. This saves a lot of time when having to reflash the phone software.

The browsing experience with Firefox is quite good. Also, I like Spotify with ncspot compiled from aur and noson-app to control some Sonos speakers for music. Listening to Podcasts works good with gnome-podcasts. Compared to Kasts, I only miss the ability to add podcasts directly from podcastindex, but copying the feed url is easy enough. Overall, I'm very happy with the device, its ecosystem and where it's heading!

Pinephone Pro

Besides using the Pinephone in its role as phone, I was also hoping to use it as well as a personal laptop, but found its performance too weak for that. Pine64 addressed this with the new Pinephone Pro (PPP). Recently, I received the PPP developer edition, and later also a Pinephone keyboard. As it involves some work for developers to adapt the software to the new hardware, I decided to keep my original Pinephone as my main calling device, and see if the PPP can act as laptop. I'll switch the SIM-card when call stability and battery life are somewhat up to par with the original Pinephone.

Getting started

The boot priority on the PPP changed; it will try to boot from EMMC first, unless there is no valid bootloader available. After having removed Android with ADB, the phone can boot from a SD-card. Since Manjaro Phosh Beta 19, there is initial support for the Pinephone Pro. Recent Manjaro versions include a uboot that tries to boot from SD-card first. This makes it harder to brick the device. Also, there seems to be a hardware switch to disable the internal storage, in case of an emergency. With that being said, let's install Beta 22 on an SD card first, and then on internal storage:

xz -d Manjaro-ARM-phosh-pinephonepro-beta22.img.xz
lsblk  # The SD-card is probably mmcblk0, but always double-check
sudo dd if=Manjaro-ARM-phosh-pinephonepro-beta22.img of=/dev/mmcblk0 bs=4M

After dd finishes, remove the phone cover and battery, insert the SD-card in the phone and hit the power button. The first boot takes a white to complete. Just be patient and wait until you see the unlock screen. Login with the default password: 123456 and step through the Phosh first-start wizard.

Checkout the Basic setup section on how to enable ssh access, in order to flash the image to the phone's internal storage.

Tools like Jumpdrive don't work yet, so flashing its internal storage is done from within Phosh that's running from the SD-card. Just download the same Manjaro image on the phone and flash it to mmcblk2. Shutdown the phone afterwards and remove the SD-card. The phone should now boot from its own storage.

Basic setup

After connecting to Wifi, I use my Nextcloud instance to sync contacts directly to the phone. Next, I open Firefox to apply some performance tweaks in about:config:

webgl.force-enabled > true
gfx.webrender.all > true
gfx.webrender.compositor > true
gfx.webrender.compositor.force-enabled > true
layers.acceleration.force-enabled > true

Go to about:support and verify:

WebGL 1 Driver Renderer: Panfrost
WebGL 2 Driver Renderer: Panfrost
HW_COMPOSITING: force_enabled by user
OPENGL_COMPOSITING: force_enabled by user

Webrender hardware compositing still doesn't work on RK3399 due to this issue. Firefox on the Pinephone Pro is way faster than on the original Pinephone. Scrolling is fast and pages load quick. Next, setup remote access to install some software remotely from your desktop:

ssh manjaro@
passwd # change password; use a number
sudo pacman -Syu
pacman -S base-devel rust go nodejs fakeroot yay vim git grim
yay -S ncspot
yay -S noson-app

At this point, I use the PPP to browse the web and listen to music and Podcasts. I've not tested audio calls yet, because the PPP still has power management issues (software), that would prevent it from being used as a daily driver.

Pinephone Keyboard

The Pinephone keyboard transforms the PPP into a small mini-laptop, by adding a hardware keyboard to it and an extra 6000mAh battery. What can I say; this combination reminds me of my old Nokia N900, but then with much more keyboard space and greatly improved software and hardware.