User:Xad6/Dogfooding:PinePhone

From postmarketOS

Notes on the preparation and consumption of dog food.

I’ve been using the PinePhone as my daily driver since early 2022, when the cellular networks in the US started to shut down their 3G networks, making my old Android phone unusable for calling. The PinePhone has generally been usable as a cell phone, but I still use the old Android phone for a few things, which I’m slowly migrating away from.

Software I use

Currently using pmOS stable 22.06 SP1 with sxmo (sway), and Biktor’s custom modem firmware. I’ve tried Plasma Mobile and Phosh a little, but I’ve found sxmo to have the lowest number of weird issues that impact usability for my use case.

Fixes for things that don’t work out of the box

Switching modem firmware to Biktor’s firmware

In my experience, this firmware is more reliable than the stock firmware. Instructions on how to switch (pretty easily, using fwupd) are here.

Note that you may want to change the volume settings, I've had issues with the call volume being too low (both coming from the microphone and playing through the earpiece). See the "PinePhone" section here.

Mobile data silently stops working after a while

Sometimes the mobile data connection will silently stop working with no indication (at least in sxmo) until you try to use it. This might be this issue.

To work around this, one can restart the connection via NetworkManager whenever this happens. Below is the setup for a cron job that does that daily.

Note This seems to (?) work, but often the phone will be left in a state where it can't suspend after this, requiring a manual restart

First step is to ensure cron is enabled and running:

sudo rc-service crond start
sudo rc-update add crond default

Then edit your crontab with crontab -e (sudo not required), and add something like the following to the crontab (replace “mobile-data” with the name of your connection, as shown by running nmcli connection)

0 7 * * * sxmo_rtcwake.sh nmcli connection up mobile-data

This should wake up the device at 7:00 every morning, and restart the mobile data connection (nmcli connection up restarts the connection if it’s already up).

Unresolved issues

  • Sometimes pressing the volume-up button causes something on the software level to receive a volume-down button press. Hopefully a hardware issue since replacement volume keys only cost $1 (thanks PINE64 for making replacement parts available!).
  • Sometimes upon unlocking the phone with sxmo, terminal windows will constantly spawn until you press the power button again. Documented in sxmo-tickets#517.
  • Upon termination of most (if not all) calls, including those I don’t pick up, sxmo gives me an error notification saying “We failed to reset call audio”, and sure enough, the main speaker has been switched to the earpiece and not switched back to the phone’s speaker, which I need to manually fix in sxmo’s audio menu. This is a new issue upon updating from pmOS 21.12 to 22.06.
  • Upon termination of most (if not all) calls, sxmo gives me a notification saying something along the lines of “Failed to hang up the call”. As far as I can tell, the call did actually hang up, and the person on the other end of the call can’t still hear me, but the notification is a bit annoying and an indication that something isn’t working properly. This is not a new issue, I’ve been experiencing this since pmOS 21.12.
  • When playing music or using a timer in sxmo, the phone auto-suspends while the music is playing or the timer is running, causing the music to stop playing or the timer to never finish until we manually un-suspend the phone. Kind of annoying, but my workaround has been to just turn off auto-suspend when playing music.
  • Upon boot, the phone’s date will often revert back to 1970, until a network connection is established and the phone can sync time via NTP. Therefore I assume the PinePhone doesn’t have a RTC unit? If not, the ideal behavior would probably be to save the current time to disk upon shutdown, and restore it on boot. That would prevent weird timestamps on things that may be modified after boot but before time synchronization.

No longer an issue

udev rule for Biktor’s modem firmware

Note This is no longer required as of pmOS 22.06 SP1, the udev rule has been added in /usr/lib/udev/rules.d/90-modem-eg25.rules

The ideal settings for modem power management differ for Biktor’s firmware vs. the stock Quectel firmware. See https://github.com/Biktorgj/pinephone_modem_sdk/blob/kirkstone/docs/SETTINGS.md for instructions on setting this up. This fixes the modem sometimes vanishing until you restart eg25-manager.