Pinetab: does not boot with kernel version 6.1

The Pinetab cannot boot the kernel version 6.1 reliable. Most times you get kernel traces an the boot process dies with the message: “sun4i-drm display-engine: [drm] Cannot find any crtc or sizes”

https://paste.debian.net/1267307/

workaround: install kernel version 5.15 I took this one: https://gitlab.com/mobian1/devices/sunxi64-linux/-/jobs/3051942978/artifacts/download?file_type=archive edit “/boot/extlinux/extlinux.conf” and change “default l0” to the label the kernel 5.15 has.

Pinetab: no suspend (deep sleep) with kernel >v5.9

If you are using the Pinetab with a kernel newer as v5.9 and it cannot suspend and your journal shows

 kernel: musb_bus_suspend 2527: trying to suspend as a_wait_bcon while active''

then blacklisting a module can help.

Do as root:

 echo "# disable some usb stuff because of suspend error" >> /etc/modprobe.d/musb-bus-suspend-blacklist.conf
 echo "blacklist usb_f_ecm" >> /etc/modprobe.d/musb-bus-suspend-blacklist.conf

and reboot.

Random crashes

If you have random crashes/freezes this might be related to your RAM. Please look at this pine64 forum thread.

If using a slower DRAM frequency solves your problem, please leave a vote in the thread.

Taps not registering on the lock screen (Double-Tap Problem)

If you go to the lock screen and the taps don't seem to be registering. Subsequent taps show previous taps in other locations. The problem appears to be that end of tap event is not being seen by the windowing system. Tapping twice in the same location each time can sometimes get you enough control to reboot the device.

Debugging this problem might be achieved by installing “evtest” and posting the output from “evtest /dev/input/event3” when tapping so that the nature of the events can be captured and analyzed to figure out the failure.

create a /etc/systemd/system/phosh.service.d/debug.conf file with following content:

[Service]
Environment=PHOC_DEBUG=touch-points

and then execute

sudo systemctl daemon-reload
sudo systemctl restart phosh

and now you'll have phoc displaying all the touch points for you to see what's happening

Note, with kernel 5.10, it seems that this problem is not occuring any longer…

GNSS(GPS) and cell signal problems

In PinePhone, if you are unable to get GPS fix or have problems in connecting to your mobile provider, you may check if the connections of the RF cable are loose. The RF cable is a cable, which connects the mainboard with the smaller board. It becomes accessible after removing the back cover and the middle part, which is fastened with screws.

The antennas, including the wifi antenna, may also be not working, if the middle part is not fastened correctly and there is a gap between the middle part and the front part. On GNSS/GPS see also Location. Note that the modem and consequently also the GPS cannot be enabled without a SIM card.

General troubleshooting

If the phone doesn't start completely, and you boot from sdcard, you can try to fix things from a shell on a computer, using chroot:

install qemu-user-static if it is not there yet

apt-get install qemu-user-static

mount the sdcard

mount /dev/mmcblk?p2 /mnt/ -o noatime
mount /dev/mmcblk?p1 /mnt/boot -o noatime

copy the qemu emulator inside the chroot

cp -u /usr/bin/qemu-aarch64-static /mnt/usr/bin

enter the chroot

chroot /mnt qemu-aarch64-static /bin/bash

now, mount some basic filesystems in the chroot

mount none -t devtmpfs /dev
mount none -t devpts /dev/pts
mount none -t proc /proc
mount none -t tmpfs /tmp

here try to fix things! perhaps start from the logs?

journalctl -r

when you are done, unmount the filesystems before exiting:

umount /dev/pts /dev /proc /tmp
exit

finally unmount the root fs

umount /mnt/boot /mnt

apt upgrade hangs

If your apt upgrade is hanging it could be an issue with time-sync. You can confirm this by listing the systemd jobs and checking for the time-sync.target and systemd-time-wait-sync.service:

root@mobian:/home/mobian# systemctl list-jobs
JOB UNIT                           TYPE  STATE  
65  timers.target                  start waiting
70  apt-daily-upgrade.timer        start waiting
68  apt-daily.timer                start waiting
72  e2scrub_all.timer              start waiting
67  man-db.timer                   start waiting
69  fwupd-refresh.timer            start waiting
71  fstrim.timer                   start waiting
25  time-sync.target               start waiting
24  systemd-time-wait-sync.service start running

If you see this, check to see that your time is synchronized with `timedatectl status`. If so, restarting the sync service should allow the upgrade to continue:

systemctl restart systemd-time-wait-sync

Comment by spaetz: This could be an instance of this debian bug. It suggests that 'systemd-time-wait-sync' should not be running at all when “chrony” is used for time synchronization (which it is on mobian). So people experiencing this hang could try to systemctl disable systemd-time-wait-sync and see if this fixes things.

Manually install updates (a la gnome-software)

The updates GUI application is called gnome-software, and it offers to perform updates for the user. At times the application may get stuck, always showing that there are OS Updates to be installed, offer to download them, and restart and install them. When stuck, these actions will appear to be unsuccessful as after a reboot, the interface still reports there are updates to be installed (the same ones as before). Since gnome-software uses PackageKit as its backend, to work around this issue, the updates can be installed manually via command line using PackageKit directly.

  1. Install the PackageKit tools package (includes the pkcon command used in the next step):
    • sudo apt-get install packagekit-tools
  2. Verify the updates to be installed (these should also show in the UI when selecting OS Updates):
    • $ pkcon get-updates
      Getting updates               [=========================]
      Loading cache                 [=========================]
      Finished                      [=========================]
      Normal      	eg25-manager-0.1.1-1.arm64 (mobian-unstable-main)           	Manager daemon for the Quectel EG25 mobile broadband modem
      Normal      	gir1.2-gdkpixbuf-2.0-2.42.2+dfsg-1.arm64 (debian-testing-main)	GDK Pixbuf library - GObject-Introspection
      Normal      	gnome-contacts-3.38.1-1mobian2.arm64 (mobian-unstable-main) 	Contacts manager for GNOME
      Installed   	libdeflate0-1.6-1.arm64 (debian-testing-main)               	fast, whole-buffer DEFLATE-based compression and decompression
      Normal      	libgdk-pixbuf-2.0-0-2.42.2+dfsg-1.arm64 (debian-testing-main)	GDK Pixbuf library
      Normal      	libgdk-pixbuf2.0-common-2.42.2+dfsg-1.all (debian-testing-main)	GDK Pixbuf library - data files
      Normal      	libtiff5-4.1.0+git201212-1.arm64 (debian-testing-main)      	Tag Image File Format (TIFF) library
  3. The updates can be manually installed with the following command (enter the mobian account password when prompted):
    • $ pkcon update
      Getting updates               [=========================]
      Finished                      [=========================]
      Installing packages           [=========================]
      Testing changes               [=========================]
      Finished                      [                         ] (0%)
      The following packages have to be installed:
       libdeflate0-1.6-1.arm64	fast, whole-buffer DEFLATE-based compression and decompression
      The following packages have to be updated:
       eg25-manager-0.1.1-1.arm64	Manager daemon for the Quectel EG25 mobile broadband modem
       gir1.2-gdkpixbuf-2.0-2.42.2+dfsg-1.arm64	GDK Pixbuf library - GObject-Introspection
       gnome-contacts-3.38.1-1mobian2.arm64	Contacts manager for GNOME
       libgdk-pixbuf-2.0-0-2.42.2+dfsg-1.arm64	GDK Pixbuf library
       libgdk-pixbuf2.0-common-2.42.2+dfsg-1.all	GDK Pixbuf library - data files
       libtiff5-4.1.0+git201212-1.arm64	Tag Image File Format (TIFF) library
      Proceed with changes? [N/y] y
      Updating packages             [=========================]
      Loading cache                 [=========================]
      Running                       [=========================]
      Installing packages           [=========================]
      Finished                      [=========================]
  4. Once complete, reboot Mobian, and verify that no OS Updates show in the updates UI.

Gnome Software (gnome-software) unable to download updates

Sometimes gnome-software might report that it's unable to download updates, and cite an empty list of packages having unmet dependencies. The error isn't much help, and looks something like this:

This might be fixed via command line tools. Some tools will have to be installed first though.

sudo apt-get install packagekit-tools
sudo pkcon repair
sudo pkcon update

It's unknown what causes this to occur.

Unable to create GL Context

Sometimes, certain applications can take advantage of the OpenGL ES 2.0 present with the “Lima” driver for the Mali GPU on the pinephone, but their supported version of OpenGL (not ES) is not possible with the driver. In these cases, GTK (ie. GDK) will fail and not attempt to use the OpenGL ES often with the message “[u]nable to create GL Context.”

GDK can be forced to use the OpenGL ES API using the

GDK_GL=gles

environment variable before launching the program. Sometimes this works and the application runs normally.

Cellular connection stops working if enabled/disabled in settings

The Settings GUI seems to have issues with modem configuration on some carriers (Cricket, Fido, possibly others). Reconfiguring the modem using mmcli and nmcli can restore connectivity. If you experience no cellular connectivity after re-enabling the modem with the settings slider, you can remove the existing connections and re-add them from the command line. You will need the apn settings for your carrier.

Both nmcli and mmcli are used to control aspects of cellular connections. It is worth exploring their options, but a short summary follows.

nmcli c lists all network connections the device has. Green lines are working connections, yellow are connecting or waiting, and red are disconnected. In my case, the gsm connection remained yellow when I was having connection issues.

mmcli -m 0 displays information on the capabilities of modem 0. Note that the number 0 tends to change each time the modem is woken up from sleep mode. If you are unsure what number is currently being used, the command mmcli -L will list any modems found, with the number showing up at the end of /org/freedesktop/ModemManager1/Modem/. In most cases can specify -m any instead unless you have multiple modems attached (e.g. an additional usb modem).

To fix the connectivity issue, first remove the existing connections. List the network connections with nmcli c, noting the names of any connections for device cdc-wdm0 (number may vary). Remove any such connections with sudo nmcli c del NAME, replacing NAME with the name of the connection. Similarly, use mmcli -m 0 to display the modem information, and look near the end for an entry for Bearer, such as

  Bearer   |               dbus path: /org/freedesktop/ModemManager1/Bearer/0

Remove the bearer with sudo mmcli -m 0 --delete-bearer=/org/freedesktop/ModemManager1/Bearer/0, using the path from the previous command.

Now create the new connection using your carrier's settings:

  sudo mmcli -m 0 --create-bearer='apn=APN.NAME,user=USERNAME,password=PASSWORD,allowed-auth=chap,allow-roaming=no'

In my case (on Cricket) I did not need a username or password, and used sudo mmcli -m 0 --create-bearer='apn=ndo,allowed-auth=chap,allow-roaming=no'. Also create the connection in Network Manager:

  sudo nmcli c add type gsm ifname cdc-wdm0 con-name OPERATOR-NAME apn APN.NAME user USERNAME password PASSWORD

(In my case, sudo nmcli c add type gsm ifname cdc-wdm0 con-name cricket apn ndo)

If your connection is still not working, you may need to enable it, which can be done by selecting it with sudo nmtui.

Other users reported (Telefonica, Germany) that above fix does not work for them. Neither does restarting NetworkManager.service and ModemManager.service. There are only three options right now:

  • rebooting the phone
  • resetting your modem with sudo mmcli -m any --reset. This requires re-entering your simcard's PIN and might take several minutes until connection is re-established.
  • using the pinephone-modem-scripts provided by mobian. They are already located in /sbin/ on your mobian installation. Issuing following sequence may take several minutes until completion, however it works reliably as reported by some users: sudo bash -c “pinephone-modem-stop.sh && pinephone-modem-start.sh && pinephone-modem-setup.sh”.

Unable to record from the microphone

Using a program like arecord it is unable to record from the microphone. There is no sound recorded at all.

Try setting your audio settings using the alsa mixer tool in Audio Recording.

Audio/phone call bugs

Mic does not work for calls

Around July 2022, there was a bug that the microphone might not work if someone calls you and you listen(ed) to music. The workaround is to issue the following commands in the terminal:

$ pkill -9 pulseaudio
$ pkill -9 gnome-calls
$ systemctl --user start pulseaudio
$ gnome-calls

There's a repeated clicking noise coming through on phone calls

Sometimes when on telephone calls there's a clicking noise audible to others when you mute or are very quiet and goes away when you are talking. This is super annoying when on meetings. It seems to be some sort of internal feedback in the audio system.

One workaround is to use alsamixer and turn down the level of “Mic1 Boost” and “Mic2 Boost” to zero.

$ sudo apt install alsa-utils
$ alsamixer
  1. Press F6 and pick the PinePhone device
  2. When on the phone call make these changes
  3. Use the arrow keys to find “Mic1 Boost”
  4. Use the down arrow to set the level to 0
  5. Repeat for the “Mic2 Boost” level

Other audio bugs

For other audio bugs around August 2023, check out the apparently solved bugs

With Mobian/trixie of August 2023, you will probably use pipewire and pipewire-pulse instead of pulseaudio. To experiment with the alsa parameters files in /usr/share/alsa/ucm2/Allwinner/A64/PinePhone/ you will need to do something like

$ sudo alsaucm reload && systemctl --user restart pipewire.service && systemctl --user restart wireplumber

for the changed .conf files to be re-loaded.

Camera won't take pictures with Megapixels app

Symptoms: After pressing camera button in Megapixels, screen appears to freeze. An image may be saved eventually which contains only vertical colored bars. Behavior was observed on a Pinephone Mobian CE.

Workaround: Before taking a picture, switch to the front-facing camera then switch back to the rear-facing camera. Now you should be able to take pictures normally. Workaround appears to last until the device is rebooted.

Unable to receive SMS messages

If you are unable to receive messages, there are chances you have a mms message stuck in your modem. If you use jmms from https://git.sr.ht/~amindfv/jmms you can run <code>jmms –get</code>

mmcli -m any --messaging-list-sms 

If you wish to see more information about the stuck messages before deleting them, you can do this running:

mmcli -m any --sms n 

Where “n” is the number of the SMS you wish to view information on.

Let's say mmcli tells you have 5 messages in receiving state, you will be able to delete them running the following commands:

mmcli -m 0 --messaging-delete-sms=0
mmcli -m 0 --messaging-delete-sms=1
mmcli -m 0 --messaging-delete-sms=2
mmcli -m 0 --messaging-delete-sms=3
mmcli -m 0 --messaging-delete-sms=4

Unable to **send** SMS under 4G networks

If you can receive but not send SMS under 4G, you can test whether this is an incompatability between your carrier and the modem. By doing

mmcli -m any --command='AT+CGSMS=0'

you can set the way the modem sends SMS:

  CGSMS allows to use either GPRS (value 0) or Circuit Switch (value 1) for sending sms 
  These are the options you can get:
  Integer type. indicates the service or service preference to be used.
  0 GPRS
  1 Circuit switch
  2 GPRS preferred (use circuit switched if GPRS not available)
  3 Circuit switch preferred (use GPRS if circuit switched not available)
  
  
  The default seems to be 1, which means it's forced to circuit switch, or legacy mode
  (Even in VoLTE)

(Find the current mode by issueing

mmcli -m any --command='AT+CGSMS?'

). At least one user got SMS sending to work by setting this to “0”. It was deemed that this must be a compatability issue between the modem and the carrier. The setting is probably not persistent between reboots (TODO?) neither 2 nor 3 would work for him though.

Display is black, does not turn on when pressing the power button

Possible cause is that the backlight brightness was set too low. Display could still be barely visible under a very bright light, like the sun.

In fact, you may be able to shine a flashlight on the screen and see the UI controls enough to adjust the brightness.

If you still have SSH access, try setting the brightness manually:

Switch to root: (regular user does not have the proper permissions)

sudo su

Set the brightness:

echo 2000 > /sys/class/backlight/backlight/brightness

Switch back to your user:

exit

See also https://xnux.eu/log/#012 about setting the minimum brightness so it doesn't happen again.

Set-up VoLTE profiles

- VoLTE works out of the box. You should not need to do anything to make it work. Output of mmcli -m any --command='AT+QMBNCFG="list"'

response: '+QMBNCFG: "List",0,0,0,"ROW_Generic_3GPP",0x0501081F,201901141
+QMBNCFG: "List",1,0,0,"VoLTE-ATT",0x0501033C,201909271
+QMBNCFG: "List",2,0,0,"hVoLTE-Verizon",0x05010141,201911251
+QMBNCFG: "List",3,0,0,"Sprint-VoLTE",0x05010205,201908141
+QMBNCFG: "List",4,1,1,"Commercial-TMO_VoLTE",0x05010505,201811231
+QMBNCFG: "List",5,0,0,"Telus-Commercial_VoLTE",0x05800C43,201912031
+QMBNCFG: "List",6,0,0,"Commercial-SBM",0x05011C18,201904021
+QMBNCFG: "List",7,0,0,"Commercial-DT",0x05011F1C,201905311
+QMBNCFG: "List",8,0,0,"Reliance_OpnMkt",0x05011B38,201910161
+QMBNCFG: "List",9,0,0,"TF_Germany_VoLTE",0x05010C1B,201909201
+QMBNCFG: "List",10,0,0,"TF_Spain_VoLTE",0x05010CFA,201909261
+QMBNCFG: "List",11,0,0,"Volte_OpenMkt-Commercial-CMCC",0x05012071,201904281
+QMBNCFG: "List",12,0,0,"OpenMkt-Commercial-CT",0x05011322,201911081
+QMBNCFG: "List",13,0,0,"OpenMkt-Commercial-CU",0x05011505,201807052
+QMBNCFG: "List",14,0,0,"Telstra-Commercial_VoLTE",0x0580079E,202006101
+QMBNCFG: "List",15,0,0,"Commercial-KDDI",0x0501071D,202004041
+QMBNCFG: "List",16,0,0,"Commercial-DCM",0x05010D17,202006101
+QMBNCFG: "List",17,0,0,"Commercial-SKT_VoLTE",0x05012724,201907221
+QMBNCFG: "List",18,0,0,"Commercial-KT",0x05012C0D,202005071'

If the last 5 entries are not displayed at your PP, you need to update the EG25 modem firmware, following these instructions https://github.com/Biktorgj/quectel_eg25_recovery. VoLTE improves also audio phone quality in general over 3G.

In order to choose right profile, better is to deactivate AutoSel, (0 deactivate, 1 Activate)

$ mmcli -m any --command='AT+QMBNCFG="AutoSel",0'

Now choose your profile e.g.

$ mmcli -m any --command='AT+QMBNCFG="select","hVoLTE-Verizon"'

Enable calling over ip (VoLTE)

$ mmcli -m any --command='AT+QCFG="ims",1'

Reboot the modem to apply the settings

$ mmcli -m any --command='AT+CFUN=1,1'

now in order to see if profile is best fitting, go on settings and choose mobile network and put 4G only network. Make a call, if you have an outgoing call VoLTE is setted well, if no, you must try a different profile between them above

Gnome Maps cannot connect with location services

Behavior: Location services are switched on, Gnome Maps is up and running. When trying to get the current location an error message pops up with “turn on location services to find your location”.

This is caused by missing permissions for Phosh. To fix it, add these new lines to

/etc/geoclue/geoclue.conf
whitelist=<existing stuff>;sm.puri.Phosh

Above epiphany

[sm.puri.Phosh]
allowed=true
system=true
users=
sudo systemctl restart geoclue.service

https://gitlab.freedesktop.org/geoclue/geoclue/-/blob/master/data/geoclue.conf.in

Emmc/SD card not being expanded on the Pinephone

On specific Pinephone installer images the storage medium Mobian is installed to does not get expanded to the full disk size. This can cause storage issues but can be fixed on the Pinephone in the terminal.

Assuming a ext4 setup.

First install parted by running

sudo apt install parted

Next, use parted on the correct drive

sudo parted /dev/mmcblkX

put 2 if its on a emmc. 0 for sd card verify with lsblk

To further verify run

print

Resize the second partition

resizepart 2 100%

Verify it has changed with

print

If you have FDE(Full Disk Encryption) setup run this to resize the encrypted device. If not using disk encryption skip this command.

sudo cryptsetup resize calamares_crypt

Next, resize the ext4 filesystem: in FDE case, command will look like

sudo resize2fs /dev/mapper/calamares_crypt

for the non-FDE case, it will look like (remember to check the correct partition to be resized!)

sudo resize2fs /dev/mmcblkXpY

check the result with

df -h

This should fix the issue with file expansion on a fresh install.