Troubleshooting

Wifi

Touchpad

Raspberry Pi

Linux Phone

My Linux phone, a OnePlus6 running PostmarketOS has developed a few issues in the past months. So I'm going to try to troubleshoot them.

No Headphone Audio

First, headphones - wired or Bluetooth no longer played audio - even though they are shown as the default device and GNOME's sound test plays on them. I had many happy months of listening to music and podcasts with then phone - which one day just came to a stop. I don't think it was related to an update - so what gives?

Let's connect to the phone. On the phone:

sudo service sshd start

# Find the IP address
ip addr

On my laptop:

ssh <phone_user>@<phone_ip>

Now, we have some fun dealing with the Linux audio zoo. At the lowest level there is ALSA. We can use the aplay command to list devices and play sound. To list devices:

aplay -l

there I couldn't find my headphones. Under aplay -L the 'PulseAudio Sound Server' is showing the default - even though I think pipewire is running too.

We can use pactl for PulseAudio. First, we check the available cards:

pactl list cards

This lists the built-in ALSA card as 'Card 0' with Earpiece, Speaker, and Headphone ports under a single HIFI profile - with the latter having lowest priority.

'Card 1' is the bluez card and driver - i.e. the bluetooth headset. The Bluetooth headset is showing an 'ad2p sink' and 'handsfree head unit' as its profiles and headphone-output as relevant output port.

Listed clients include the pactl, Gnome settings, Gnome podcasts app.

Now, the interesting bit - the Podcast app under sink-inputs is playing on 'Sink 1' - which is the Built-In Speaker. Why is this? I set it to play on the Bluetooth sink using pactl move-sink and hey presto - now the full sink management logic is working again - apps are playing on the default sink, even after plugging things in and out or restarting the phone. Why? Sorry, I have no idea, it seems like some sort of messed up PulseAudio caching..