The Pinephone Thread

I’ve been reading along in the Telegram channel, but I haven’t really figured it out yet: can you give an assessment of whether the PPP is now suitable as a daily driver for the brave ones among us?

What I would count as daily-driver suitability: a battery life that covers a day, accessibility and the possibility to make phone calls, mobile data at least in the browser and the possibility to take photos (ideally videos as well, of course).

1 Like

Driving a PPP daily myself, I would say: for the bave ones possibly yes. As usual depends on which functionnality you require daily (obviously). It kinda works (with some annoyances here and there) for me. But I am not the typical user and willing to put a lot more efforts and workarounds, just for the sake of running some Linux distro instead of Android on my phone (I never daily drove an Android in my life. Before SailfishOS, it was webOS).

TL;DR: In short: it can kind of work for the bravest, but you either might need to jump through some hoops (or have some Android/iOS smartphone in your backpack for fall-backs).


Here’s my personal experience (though part of this might vary, depending on how you tweak your device):

  • It can be crashy

    • Mesa EGL crashing the Lipstick interface and restarting to home screen, ?specially on “go to home screen” right edge inward swipes gestures?
    • more rarely the whole phone freezing and the watchdog rebooting it).
    • so if you absolutely need an uptime counted in weeks, you might reconsider.
  • Internet works (with Biktorgj’s 0.7.4 os running inside the modem) and has actually been a better roaming abroad experience than SailfishX on my Xperia 10iii.

  • Call work most of the time (on occasion audio is completely missing, but fixed with a quick reboot).

  • SMS are a mixed bag for me as SailfishOS Community uses ofono unlike most of the other distros’ NetworkManage + ModemManager - thus I’m hit by a few ofono-exclusive bugs, e.g., “Stuck message”

    • (this can be problematic if SMS are your only 2FA option)
    • (“Stuck message”: instead of SMS showing up normally, they show up in the “chat” with the modem)
    • (“Chat with the modem”: Biktorgj’s os on the modem support a chat/command line interface over +223344556677)
      edit: Biktor has an update in the pipeline: the upcoming version 0.7.5 should fixe this problem.
  • But still occasionnal “SIM Card is Missing” disconnection from the Modem. Usually restarting eg25-manager and ofono fixes it: internet is restored, but then subsequently SMS (and sometimes calls) are broken.

  • Internet sharing works (and Piggz has fixed the “mainboard goes to sleep while it should be staying awake and routing traffic”)

  • USB networking works too

    • (minus the broken udhcpd on SailfishOS, my workstation uses a static IP in the udev rule instead).
    • (though apparently not everyone is affected by this)
  • I use wired earphones so the absence of Bluetooth call audio routing isn’t problematic

    • (note: the mono channel of voice calls is only routed to one ear)
  • Battery life and heat disspation are good

    • (using Megi’s rk2aw+variant of U-Boot with Rockchip’s ddrbin with support for sleep and DRAM downclocking)
    • (using Biktorgj’s modem os with support for 100Mhz modem downclock).
  • I haven’t test Waydroid yet

    • (so problems getting in touch with friends who insist on only using WhatsApp)
    • (will also try a few apps: train, bank (that work without camera), etc.)
  • Can’t get GPS to work (so no “X” marking the spot on PureMaps).

    • apparently Bitkorgj will try to fix it is some future version of the modem’s os.
  • Camera is problematic

    • (sometimes Shutter can’t switch to the world camera and gets black ; I can’t get it to save pictures)
      Edit: piggz is working on an updat that successfully saves images, after some tweaks (of either resolution in his experience or pixel format in mine).
    • (also libcamera isn’t plugged into the SailfishOS standard API so other apps relying on camera don’t work - e.g. Barcode reader.)
    • (There is a fork of Waydroid that attempts to use a libcamera-based HAL driver so once that is fixed, this should allow, e.g., Android app that use QR-Code for logging in).
  • Wifi and/or Bluetooth disconnection upon sleep.

  • troubles sometimes reconnecting to my smartwatch (PineWatch running InifiniTime and Amazfish on SailfishOS).

  • on some reboots some services simply don’t restart. In my experience, SSHD and Plymooth are affected. Happens less when rebooting on charger (probably some dependencies not waiting for devices to settle?)

  • there is no community solution of OAuth2 on Microsoft Exchange / Office365, and Jolla isn’t selling its commercial software on community port (yet)

If you look closely, most of these are problem that can eventually be fixed by the relevant devs.
Community is very responsive. It’s possible to debug and log problems (you don’t depend on some large blob by some corporate vendor).
In fact it’s in a state where, imho, even Jolla could realistically think polishing it up into an official SailfishX target over the coming months (trying to “wink, wink, nudge, nudge” someone at Jolla into considering this?).


Note:

  • I have formatted my root partition as btrfs (this might affect the path settling?)
  • I have reformatted the encrypted home as btrfs and tweaked the encryption systemd unit accordingly (checksum and CoW means it survices crashes differently then ext4).
  • As mentionned above, I have replaced both the boot firmware on the mainboard, and run a community alternative os inside the modem, which (positively) affect power, heat and sleep.
  • My use is called “nemo”, not “defaultuser” :stuck_out_tongue:

Hope this helps. Ask me question if you want to know more details.

5 Likes

Wow, thank you very much for this extremely detailed report!
That is very helpful :slight_smile:

Unlike you I have used Android a lot, but I love my SFOS-device. Unfortunately it is starting to fail hardware-wise. Before I read the community newsletter and learnd about the progresses made with the PPP, I was thinking of getting a GX4 but

  • it seems it tends to brick during installation process (according to the GX4-thread)
  • Gigaset filed for bankruptcy and I don’t want to buy a phone if I already know I won’t be able to buy spare parts for or get it repaired
  • it is Android-based

The last point is something I am used to but I don’t like it. On my laptop (and before that: desktop PC) I only use Linux for 24 years now, therefore I feel it is time to switch to something like a pinephone. And I am prepared to work around glitches and annoyances.

Unfortunately, a working camera is a must for me, as I want to be able to take photos of my child. I don’t care about barcode readers or so… Waydroid would of course also be nice because of incorrigible friends and the possibility to make video calls with Signal… But according to a post above, waydroid should be working (if this isn’t meant for the PP, not the PPP).

So I think I have to either wait some time for a working camera, buy a GX4 or buy a PinePhone (without “Pro”), but I think that the performance of the non-pro is not really something to enjoy these days… Plus, the quality of the camera might be like something from early 21st century…

And before I forget: thanks @piggz for your amazing work!

1 Like

If you’re only interested into taking photos (i.e.: only using the single app Shutter, not needing the whole imaging stack to work) there would be much higher chance of this working soon, given that Piggz is also the dev of shutter - i.e. he can bother debug the OS side and the app side.

@piggz: if you have suggestions of what logs to send you to debug when the world cam doesn’t start or why is it refusing to save pictures…

1 Like

I am afraid I don’t really understand what you mean by this. You mean just making a photo and no fancy stuff like filters or the like?

I mean that the app Shutter doesn’t talk to whatever API Sailfish officially uses to control cameras, Shutter directly talks to the camera using “libcamera”.

Making “just take photos” work doesn’t require fixing the whole camera system in SailfishOS (as an example, see the work mentionned in today’s community in updating SailfishOS to the newer Camera2 API as exposed by the Android drivers that libhybris uses on smartphones like Xperia 10iii), it “merely” requires fixing a couple of stuff inside Shutter.

2 Likes

I understand what you mean now and yes, for me a working Shutter would be sufficient :slight_smile:

Just notice that waydroid ‘video calling’ might not work either if there is only one app accessing camera instead of a stack that waydroid connects to. Or maybe I am wrong and it’s working in a codepath built for desktops

1 Like

Yes, I had the same thought last night when I went to sleep. But there I had no more desire to think about it :wink:
Thanks for the “warning”!

Half-half. It’s not exactly “one application”, it’s mostly one library framework. It just happens that on the Sailfish side, only one app exists that leverages libcamera (I am a bit over simplifying, there are also a bunch of command-line utilities that can also talk to libcamera)

Now for Waydroid: it turns out that there is already a driver that relies on libcamera on Android. And there is some work done on a fork by dev who try to modernize this hardware abstraction, to make it work with current version of the android image. When that work is successfully finished, it will be possible to use the camera in any Android application that relies on it.

(and there are also reports of users successfully using the v4l2-loopback drivers to feed an external source into Waydroid as a virtual camera. It’s thus possible to push screenshots of QR-code or even a real camera into such a virtual camera.)

3 Likes

And @piggz is working on a newer version of shutter that seems to manage to save photos (with a few tweaks).

2 Likes

All this is really exciting! It makes the PPP look like a real alternative if you are willing to endure some inconvenience and use some workarounds (and ideally help testing or providing logs.)

Ok, one more question :wink:

Is only call audio routing missing for BT or audio routing in general? Can one listen to music over BT headphones (in stereo)?

Yes. Sound emitted from the OS from pulseaudio (from the “sound card”) works normally as one would expect (and as it works with the PineBook Pro) - that’s how I play classical music on a UE Roll while waiting for the baby to fall asleep.

It’s when sound is directly routed from the modem’s audio out, to the rest of the phone that things get wonky (no bluetooth, and audio routed only a right ear to the headphones).

In general it’s something that the devs need to fix in the sound chips drivers and the specific settings used on the audio mixer.


Metaphorically, think about an old-school laptop, using a big complex audio card with tons of audio in and out connections (imagine an Audigy) connected to an external old-school serial modem. Playing audio on the laptop works, but there’s something weird happening with the audio cable between the modem’s out jack and the line-in jack of the laptop, and the audio mixer on the laptop’s sound card. Also whenever the laptop is suspended, power is cut to the soundcard and modem sound is temporary lost, until the laptop is woken up again and the sound card is powered again.

(Also in the same metaphor, bluetooth for calls works like those small bluetooth receiver/transceiver widget that have an audio jack. You’d want to plug a capable between the Line-out of the sound card, and the input of the bluetooth widget. But something is wrong in settings of the sound card mixer, and the modem’s audio (from the Line-In) isn’t re-emitted back on the Line-out and thus doesn’t reach bluetooth).

1 Like

I have this issue where my ppp never wakes back up from suspend.

The phone first wakes up due to “Some devices failed to suspend, or early wake event detected”.
Seemingly related to WiFi.
Then when the screen turns off next, it is just gone. Nothing in the journal, nothing in the serial console.

Before i started to mess with suspend i started by uplifting WiFi firmware, but i have upstreamed that, so if that is related i should have broken it for everyone that updated.

Supposedly the new fancy bootloader (rk2aw) helps with suspend, so i installed that, and when that didn’t help changed to the biktorgj modem firmware distro. It still dies immediately on suspend.

Does nobody of you have suspend enabled (mcetool -senabled), with terrible battery life to boot, or how is this not a plague?
I’m at a complete loss for ideas on what to try next.

That is what I have managed to photograph with the upcoming version of Shutter.

1 Like

No, never had a problem to wake the phone.
Did you remember to wipe the boot areas of both the eMMC and the SD card (if you use one)?

Current setup:

  • SailfishOS upgraded to 4.5.0.24 (with ssu)
  • latest package of everything upgraded with zypper
  • installed boot firmware: rk2aw + primary: U-boot + Rockhip’s proprietary ddrbin +secondary: U-boot with opensource initialisation, using the version mentionned in this Megi’s log entry
  • modem OS: a preview of version 0.7.5 that fixes “Stuck message” SMS (it’s in the matrix channel, not yet on github) (flashed with fastbook, as fwup lags behind — it’s still at 0.7.2)
  • wif, etc.: the firmwares that comes in package firmware-pine64-pinephonepro, I haven’t customized anything. (I get the same “failed to suspend related to wifi”).

The only suspend-related problem I have is after wake-up, the world camera not working anymore in Shutter

Just for completedness:

  • rk2aw is just the tiny “bootloader manager” that allows you to select between primary and recovery bootloader with button presses, and which changes the prioriy order where you load U-boot from(*)
  • the bootload that helps with sleep and power is the variant of U-Boot(*) that works with Rockchip’s proprietary ddrbin.

(*): Tip for new users - you might have some left-over U-Boot installation on your eMMC or SD card, and be unintentionally booting from that (e.g.: I had the old Manjaro’s U-Boot left over on the eMMC, and after installing rk2aw, the Pinephone Pro started booting from that if I didn’t use the button to select the primary boot, which led to tons of weird behaviour in SailfishOS, like ghost presses of the volume buttons).

One way to check is what is displayed on the screen. Megi’s U-boot distributed together with rk2aw displays a boot menu with big blue buttons letting you chose between booting SFOS from the eMMC partition, sharing eMCC as a USB drive, console and poweroff. Most U-Boots on ppp don’t use display output (e.g. the original TowBoot flashed on SPI at the factory). If you get the graphical menu only when using button presses, that means the rest of the time you are booting some left-over bootloader.

But do you have suspend enabled?

Yes, this is true; though it does ship one as you also say…

Good tip! So this would have been included in the image that i get from flash-it.sh installing to eMMC?
(No SD card here).
My google-fu fails me; how would i wipe the bootloader from there?

So you are saying you needed option 2 instead of 1 until that was sorted? Strangely option 2 gets me a very stock looking U-Boot, with submarine and brown buttons.

Edit: Wohoo! Boot option 3 gets me suspend. (Same stock-looking U-Boot menu though).

I threw 30MB worth of zeroes at the first partition of eMMC.
Now options 1 and 2 doesn’t boot anymore. And suspend is borked on option 3.
Reflashed all the parts that came with rk2aw for good measure - no change.

Hopefully the first 30mb of block device, and not the first partition? :slight_smile: