22

I'm using Ubuntu 18.04 on a Thinkpad X1C6 to connect to my new Bose Soundlink Revolve speaker. The connection establishes without problems but the sound volume is super low. If I connect with my android phone the volume is way higher so I assume the problem is on the Thinkpad/Ubuntu side and probably more Ubuntu/Software related.

Does anybody have an idea what I can try to fix this issue?

5
  • I have the same problem only with the Bose Soundlink Micro on a Desktop using MSI A88XM Pew, pew and Ubuntu 18.04. Tried alsamixer and maxed out all settings and still nothing. Works fine on my tablet and iPod Nano.
    – MDamion
    Commented Mar 27, 2019 at 21:22
  • Same problem using Anker Soundbuds Slim Commented Jun 18, 2019 at 14:25
  • Same problem with Thinkpad T420 and Bose Soundlink Revolve+. Commented Sep 5, 2019 at 6:51
  • 2
    Same problem with Sony WF-1000XM3 Commented Nov 26, 2019 at 22:15
  • I've had the exact same problem. I have tried multiple solutions and have almost given up.But eventually I found this one and it worked for me bobjohnson.com/blog/… youtube.com/watch?v=TjmHVgCSpQQ All credit to the youtuber. I am using ubuntu 20.04. My bluetooth speaker is Bose Soundlink Micro. Hope it helps.
    – Akhil Ennu
    Commented Aug 12, 2021 at 7:20

11 Answers 11

16

Bumping @Jeff Ward's comment to an answer for those who found this question because they had low volume on Sony WF-1000XM3/Sony WH-1000XM2/Bose NC 700 bluetooth headphones:

Same here on the Bose NC 700 -- a firmware update set the volume super low. The solution was turning the volume up on the headphones themselves (via touch - swipe up on the right-front ear cup.)

In my case, adjusting the volume on the headphones themselves was the only solution - no computer setting was able to increase the volume.

2
  • 1
    Yikes, here I was boosting volume with pactl.. I'd thought the headset would synchronise volume like it does on my Android, but I'm guessing that's not a feature of Ubuntu
    – SupaHam
    Commented Sep 16, 2021 at 7:51
  • Note for WF-1000XM4 users in 2023: if you have multi-device connect enabled and connect to both your Ubuntu machine and your phone, you can use the Sony Headphones app to adjust the volume of the headset (under "Status") and it will affect the audio coming from the Ubuntu machine.
    – Thomas
    Commented Aug 16, 2023 at 22:55
10

Installing pavucontrol solved the problem for me on my Thinkpad T420, Ubuntu 18.04, and a Bose Soundlink Revolve+.

Run:

sudo apt install pavucontrol
pavucontrol

Connect your Bluetooth device to your laptop and start feeding it. Then you should be able to adjust the maximum sound level inside pavucontrol. The volume keys on the laptop work as before, except the maximum is now higher. The settings appear to survive application restarts.

2
  • 1
    Solutions like this seem to be similar to using gnome tweak tools' "allow over amplification" ability, in that this causes extreme audio distortion at levels above 100% or 0 db.
    – Caleb Jay
    Commented Jan 25, 2021 at 2:11
  • This makes the audio crackly. I know the speakers are capable of going louder without having to go ~150% decibels and distorting the sound. Commented Oct 24, 2022 at 1:31
7

I have the same problem with Sony WF-1000XM3. They are quite silent on Ubuntu 20.04. Latest Sony firmware update added ability to control volume directly on earphones and it helps. Unfortunately you lose possibility to use other functions on one of earphones.

4
  • I am facing the same issue. Not able to figure out yet. Can you help me?
    – Mohit Jain
    Commented Jul 3, 2020 at 8:40
  • 1
    Check this sony.com/electronics/support/…
    – ipeacocks
    Commented Jul 3, 2020 at 12:54
  • I had to swap up in the headphone like ten times until I got volume.
    – Torrien
    Commented Feb 2, 2021 at 20:54
  • 6
    Same here on the Bose NC 700 -- a firmware update set the volume super low. The solution was turning the volume up on the headphones themselves (via touch - swipe up on the right-front ear cup.)
    – Jeff Ward
    Commented May 20, 2021 at 18:06
4

Not sure that this is applicable (don't have the same hardware) but sounds similar to what has already been suggested by jathin-badam and this fixed a similar problem for me with AirPods:

In /lib/systemd/system/bluetooth.service (requires sudo to save changes)

Change this line:

ExecStart=/usr/lib/bluetooth/bluetoothd

To this:

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

Restart the daemon and the Bluetooth service:

sudo systemctl daemon-reload  
sudo systemctl restart bluetooth  

Source

3
  • Wow! This made a huge difference for me! Make sure to turn the volume down before resuming any audio XD Commented Sep 21, 2021 at 21:01
  • For me, this soluiton worked however, I also had to remove the headphones and re-pair them again. Then the volume was back to normal. Commented Apr 1, 2022 at 15:16
  • it's working for me. Thank you
    – huykon225
    Commented Apr 27, 2023 at 3:01
2

The volume can be increased at the speaker to bypass over-amplification and avoid the associated loss of audio quality. Install the bluez package (sudo apt-get install bluez) and start mpris-proxy (/usr/lib/bluetooth/mpris-proxy) to activate the volume buttons of the Bluetooth speaker. Afterwards, the volume can be increased directly via the Bose Soundlink Revolve speaker.

1
  • It worked for me in the sense that I could hear it louder and increasing the volume from the speaker was also possible and the quality at max volume increased, but, still a lot lower quality than if I had just used my cellphone. Up-voted because it increased the quality and volume, even though the quality cannot match the one from my phone. Commented Feb 3, 2022 at 19:05
2

What just worked for me was Carolus solution under "Control it via dbus" and i am running Ubuntu LTS 20.04 with a minor tweak:

on step 3 i believe the commands have typos where they should be

dbus-send --print-reply --system --dest=org.bluez /org/bluez/hci0/<device id> --type=method_call org.bluez.MediaControl1.VolumeUp

and

dbus-send --print-reply --system --dest=org.bluez /org/bluez/hci0/<device id> --type=method_call org.bluez.MediaControl1.VolumeDown

respectively. Where is dev_C8_B2_58_35_64_6F in Carolus example.

Thank you @Carolus

PS. I can't comment nor add a vote as i am a new stackoverflow user

1
  • Amen Dude, thanks this is the only thing that worked for me. Incorporated it as a script/command in my /usr/bin/
    – Fanchi
    Commented Nov 15, 2022 at 14:46
1
  1. Install pavucontrol by running:

    sudo apt install pavucontrol
    
  2. Run:

    pavucontrol
    
  3. Go to Configuration and search for your Bluetooth device and change the profile to High Fidelity Playback(A2DP Sink).

1

I have a Sony-WH1000XM3. I fixed this problem by using the gesture of the headset itself to increase the volume.

This is different from the situation in Windows. Adjusting volume by headset won't affect the volume settings in Ubuntu, so maybe all you need to do is adjust the volume from your Bluetooth device side.

0
1

For many users, the issue is simply that Bluetooth audio devices have a software and hardware volume. Turning up the software volume makes the sound quality worse. Linux doesn't support changing Bluetooth hardware volume*.

Workarounds

As @BassGod and others also mentioned there are two workarounds to this:

  • Have a physical method for adjusting the hardware volume on your Bluetooth audio device.
  • Adjust the hardware volume while the device is connected to Android/iOS/Windows/macOS. Then connect the device to your Linux.

Solutions

Just update

The best option is probably to update your OS (or more specifically pulseaudio), since according to some people this issue got resolved in pulseaudio version 15.

Control it via dbus

(Modified from @LiamDennehy and @Sean Normandy)

  1. Find the DBus object that allows control of the headset's internal volume:
$ dbus-send --system --print-reply --dest=org.bluez / org.freedesktop.DBus.ObjectManager.GetManagedObjects | less
  1. While it is piped to less, search for the interface org.bluez.MediaTransport1 (press slash /, type MediaControl1, press Enter) and record the value of the object path of the parent of the search result:
dict entry(
   object path "/org/bluez/hci0/dev_C8_B2_58_35_64_6F"
   array [
      dict entry(
         string "org.freedesktop.DBus.Introspectable"
         array [
         ]
      )
  1. Send volume up or volume down requests to it with these commands:
dbus-send --print-reply --system --dest=org.bluez /org/bluez/hci0/dev_C8_B2_58_35_64_6F org.bluez.Control.VolumeUp
dbus-send --print-reply --system --dest=org.bluez /org/bluez/hci0/dev_C8_B2_58_35_64_6F org.bluez.Control.VolumeDown
  1. Now you can map these commands to hotkeys via your desktop environment or make them accessible some other way.

Use some script

(Modified from @Sam Mason)

It works for any connected Bluetooth audio device - you don't need to manually find the mac address like in the previous example.

#!/usr/bin/python3

from pulsectl import Pulse
import subprocess
import sys

# Prerequisite tasks on ubuntu machine:
# sudo apt install python3-pip
# pip install pulsectl

method = 'org.bluez.MediaControl1.Volume{}'.format(
  'Down' if sys.argv[1] == 'down' else 'Up')

with Pulse() as pulse:
  for sink in pulse.sink_list():
    bluez_path = sink.proplist.get('bluez.path')
    if bluez_path:
        args = [
            'dbus-send', '--system', '--print-reply',
            '--dest=org.bluez', bluez_path, method,
        ]
        subprocess.run(args, check=True)

Then I made the file executable and mapped some hotkeys to run this script:

/home/me/scripts/bt_volume.py up
/home/me/scripts/bt_volume.py down
0

For my Sennheiser CX 400BT True Wireless earbuds, the solution was to increase the volume on the earbuds (by default this is touch holding the right earbud). This is adjustable with the Sennheiser Smart Control phone app.

0

The solution for my Smart Bluetooth Glasses (which didn't had inbuilt audio controls) were to connect it to another device (in my case it was a Mac M1) that allowed you to set speaker and mic volume of the bluetooth device.

Then disconnect it by turning of bluetooth in the other device (in my case mac), then connect it to the linux machine.

This fixed the problem for me, I'm using pipewire on Raspberry Pi OS (32 Bit) on a raspberry pi zero 2W

You must log in to answer this question.

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