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.
2I 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.
1