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
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
-
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.– EmreApr 3, 2022 at 20:37
-
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.
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.
-
2When 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.– cigienMay 22, 2021 at 2:47