7

Anyone else experienced this? I never had this issue before on Ubuntu 18.04 and would like to know if there is a fix available. FYI everything in Sound setting is maxed.

3 Answers 3

7

Andrei Dyomin's answer is subtly wrong; it will technically work, but it will disable all other plugins than a2dp, meaning bluetooth keyboards/mice/gamepads/etc will stop working, when the only plugin causing issues seems to be one called avrcp.

Edit

sudo nano /lib/systemd/system/bluetooth.service

and change

ExecStart=/usr/lib/bluetooth/bluetoothd

to

ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=avrcp

and run

sudo systemctl daemon-reload
sudo systemctl restart bluetooth

Maybe, it is necessary to unpair and re-pair the device.

3
  • 3
    works for me in Ubuntu 20.10. Thanks!
    – sscarduzio
    Oct 29, 2020 at 11:39
  • For me, this makes it so that it's always low volume. I suppose at least it's consistent now. Pop!_OS 21.10. AirPods 2nd gen.
    – Emre
    Apr 3, 2022 at 20:37
  • not working for me on Ubuntu 22.04.3 LTS
    – huykon225
    Dec 26, 2023 at 6:33
1

I know next to nothing about Bluetooth stack, so I cannot explain why, but following these steps helped:

Edit the file at /lib/systemd/system/bluetooth.service:

sudo nano /lib/systemd/system/bluetooth.service

Change this line:

ExecStart=/usr/lib/bluetooth/bluetoothd  

To this:

ExecStart=/usr/lib/bluetooth/bluetoothd --plugin=a2dp

Save (CTRL + O) and Exit (CTRL + X)

Restart the daemon and the Bluetooth service:

sudo systemctl daemon-reload  
sudo systemctl restart bluetooth  

This answer is adapted from this source.

I have tested this answer with AirPods 1st gen on Ubuntu 18.04.

1

My AirPods became very quiet recently. I tried --noplugin=avrcp and --plugin=a2dp but neither worked.

This is quite a hack, but it's possible to set the volume level on AirPods in Linux if you patch bluez.

sudo apt install ccache
sudo apt install build-essential devscripts lintian diffutils patch patchutils
apt-get source bluez
apt-get build-dep bluez

cd bluez-5.50

Edit profiles/audio/transport.c:

630 static gboolean volume_exists(const GDBusPropertyTable *property, void *data)
631 {
632         struct media_transport *transport = data;
633         struct a2dp_transport *a2dp = transport->data;
634
635         // return a2dp->volume <= 127;
636         return TRUE; // force true so we can change AirPod volume
637 }

Build and install:

dpkg-buildpackage -rfakeroot -uc -b
sudo dpkg -i ../bluez_5.50-1.2~deb10u1_amd64.deb

Reboot.

I found these scripts on the manjaro forums:

list_airpods.sh

#!/bin/bash
dbus-send --print-reply --system --dest=org.bluez / org.freedesktop.DBus.ObjectManager.GetManagedObjects | grep -E '/org/bluez/hci./dev_.._.._.._.._.._../fd[0-9]+' -o

airvol.sh

#!/bin/bash
echo Setting volume to $1
for dev in $(./list_airpods.sh); do dbus-send --print-reply --system --dest=org.bluez "$dev" org.freedesktop.DBus.Properties.Set string:org.bluez.MediaTransport1 string:Volume variant:uint16:$1; done

Now we can adjust the AirPods volume!

$ ./airvol.sh 90
Setting volume to 90
method return time=1621509655.344706 sender=:1.7 -> destination=:1.82 serial=220 reply_serial=2

I have to do this every time I connect my AirPods. I find a volume of 90 or 95 works well. Then in VLC I can have a reasonable level like 65-70 with no distortion.

1
  • 2
    When linking to your own site or content (or content that you are affiliated with), you must disclose your affiliation in the answer in order for it not to be considered spam. Having the same text in your username as the URL or mentioning it in your profile is not considered sufficient disclosure under Stack Exchange policy.
    – cigien
    May 22, 2021 at 2:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .