Ubuntu – Successfully connected to a bluetooth speaker, but how do i direct sound there

alsabluetoothkubuntupulseaudiosound

I'm running Kubuntu 13.10 on a Lenovo Thinkpad T430 laptop.

I've got a Bluetooth speaker.

After a lot of troubleshooting i managed to connect to the speaker. bt-device reports:

$ bt-device -l
Added devices:
[Samsung] W_Audio (5C:F6:DC:88:05:62)

$ bt-device -i 5C:F6:DC:88:05:62
[5C:F6:DC:88:05:62]
  Name: [Samsung] W_Audio
  Alias: [Samsung] W_Audio [rw]
  Address: 5C:F6:DC:88:05:62
  Icon: audio-card
  Class: 0x240404
  Paired: 1
  Trusted: 1 [rw]
  Blocked: 0 [rw]
  Connected: 1
  UUIDs: [AudioSink, AVRemoteControlTarget, AVRemoteControl]

When i connect to the speaker, it plays a welcoming sound. When i click "Audio Sink" in the bluetooth manager (it's BlueMon i think), the speaker plays another sound, and a "Success" message appears in the bluetooth manager.

But the bluetooth audio does not appear anywhere in settings. There is no option to direct sound to the speaker. All the sound comes from laptop speakers and the bluetooth speaker is silent.

I installed pulseaudio and pavucontrol (with a bunch of other pulseaudio- and bluetooth-related packages). Pavucontrol on the Output Devices tab shows only the main audio device, but according to guides over the web, bluetooth audio should appear there.

So… Once i have the bluetooth speaker connected, how do i direct sound there?

Some dumps that might be relevant:

$ pacmd list-sinks
Welcome to PulseAudio! Use "help" for usage information.
>>> 1 sink(s) available.
  * index: 0
        name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
        driver: <module-alsa-card.c>
        flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
        state: RUNNING
        suspend cause: 
        priority: 9959
        volume: 0:  86% 1:  86%
                0: -3,93 dB 1: -3,93 dB
                balance 0,00
        base volume: 100%
                     0,00 dB
        volume steps: 65537
        muted: no
        current latency: 5,62 ms
        max request: 1 KiB
        max rewind: 64 KiB
        monitor source: 0
        sample spec: s16le 2ch 44100Hz
        channel map: front-left,front-right
                     Stereo
        used by: 1
        linked by: 3
        configured latency: 5,80 ms; range is 0,50 .. 371,52 ms
        card: 0 <alsa_card.pci-0000_00_1b.0>
        module: 5
        properties:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "ALC3202 Analog"
                alsa.id = "ALC3202 Analog"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "0"
                alsa.card_name = "HDA Intel PCH"
                alsa.long_card_name = "HDA Intel PCH at 0xf2530000 irq 48"
                alsa.driver_name = "snd_hda_intel"
                device.bus_path = "pci-0000:00:1b.0"
                sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
                device.bus = "pci"
                device.vendor.id = "8086"
                device.vendor.name = "Intel Corporation"
                device.product.id = "1e20"
                device.product.name = "7 Series/C210 Series Chipset Family High Definition Audio Controller"
                device.form_factor = "internal"
                device.string = "front:0"
                device.buffering.buffer_size = "65536"
                device.buffering.fragment_size = "32768"
                device.access_mode = "mmap+timer"
                device.profile.name = "analog-stereo"
                device.profile.description = "Analog Stereo"
                device.description = "Built-in Audio Analog Stereo"
                alsa.mixer_name = "Intel PantherPoint HDMI"
                alsa.components = "HDA:10ec0269,17aa21f3,00100203 HDA:80862806,80860101,00100000"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-pci"
        ports:
                analog-output-speaker: Speakers (priority 10000, latency offset 0 usec, available: unknown)
                        properties:
                                device.icon_name = "audio-speakers"
                analog-output-headphones: Headphones (priority 9000, latency offset 0 usec, available: no)
                        properties:
                                device.icon_name = "audio-headphones"
        active port: <analog-output-speaker>
$ pacmd list-sources
Welcome to PulseAudio! Use "help" for usage information.
>>> 2 source(s) available.
    index: 0
        name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
        driver: <module-alsa-card.c>
        flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
        state: RUNNING
        suspend cause: 
        priority: 1950
        volume: 0: 100% 1: 100%
                0: 0,00 dB 1: 0,00 dB
                balance 0,00
        base volume: 100%
                     0,00 dB
        volume steps: 65537
        muted: no
        current latency: 0,00 ms
        max rewind: 64 KiB
        sample spec: s16le 2ch 44100Hz
        channel map: front-left,front-right
                     Stereo
        used by: 2
        linked by: 2
        configured latency: 20,00 ms; range is 0,50 .. 371,52 ms
        monitor_of: 0
        card: 0 <alsa_card.pci-0000_00_1b.0>
        module: 5
        properties:
                device.description = "Monitor of Built-in Audio Analog Stereo"
                device.class = "monitor"
                alsa.card = "0"
                alsa.card_name = "HDA Intel PCH"
                alsa.long_card_name = "HDA Intel PCH at 0xf2530000 irq 48"
                alsa.driver_name = "snd_hda_intel"
                device.bus_path = "pci-0000:00:1b.0"
                sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
                device.bus = "pci"
                device.vendor.id = "8086"
                device.vendor.name = "Intel Corporation"
                device.product.id = "1e20"
                device.product.name = "7 Series/C210 Series Chipset Family High Definition Audio Controller"
                device.form_factor = "internal"
                device.string = "0"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-pci"
  * index: 1
        name: <alsa_input.pci-0000_00_1b.0.analog-stereo>
        driver: <module-alsa-card.c>
        flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
        state: RUNNING
        suspend cause: 
        priority: 9959
        volume: 0:   0% 1:   0%
                0: -inf dB 1: -inf dB
                balance 0,00
        base volume:  10%
                     -60,00 dB
        volume steps: 65537
        muted: no
        current latency: 0,00 ms
        max rewind: 0 KiB
        sample spec: s16le 2ch 48000Hz
        channel map: front-left,front-right
                     Stereo
        used by: 1
        linked by: 1
        configured latency: 20,00 ms; range is 0,50 .. 341,33 ms
        card: 0 <alsa_card.pci-0000_00_1b.0>
        module: 5
        properties:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "ALC3202 Analog"
                alsa.id = "ALC3202 Analog"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "0"
                alsa.card_name = "HDA Intel PCH"
                alsa.long_card_name = "HDA Intel PCH at 0xf2530000 irq 48"
                alsa.driver_name = "snd_hda_intel"
                device.bus_path = "pci-0000:00:1b.0"
                sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
                device.bus = "pci"
                device.vendor.id = "8086"
                device.vendor.name = "Intel Corporation"
                device.product.id = "1e20"
                device.product.name = "7 Series/C210 Series Chipset Family High Definition Audio Controller"
                device.form_factor = "internal"
                device.string = "front:0"
                device.buffering.buffer_size = "65536"
                device.buffering.fragment_size = "32768"
                device.access_mode = "mmap+timer"
                device.profile.name = "analog-stereo"
                device.profile.description = "Analog Stereo"
                device.description = "Built-in Audio Analog Stereo"
                alsa.mixer_name = "Intel PantherPoint HDMI"
                alsa.components = "HDA:10ec0269,17aa21f3,00100203 HDA:80862806,80860101,00100000"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-pci"
        ports:
                analog-input-microphone-internal: Internal Microphone (priority 8900, latency offset 0 usec, available: unknown)
                        properties:
                                device.icon_name = "audio-input-microphone"
                analog-input-microphone-dock: Dock Microphone (priority 7800, latency offset 0 usec, available: no)
                        properties:
                                device.icon_name = "audio-input-microphone"
                analog-input-microphone: Microphone (priority 8700, latency offset 0 usec, available: no)
                        properties:
                                device.icon_name = "audio-input-microphone"
        active port: <analog-input-microphone-internal>

Best Answer

To enable Bluetooth audio device discovery in Pulse Audio we need to make sure we had loaded the bluetooth packages for pulseaudio (pulseaudio-module-bluetooth Install pulseaudio-module-bluetooth should be installed by default).

The module-bluetooth-discover then is responsible to add a bluetooth audio device as sink (or source in HSP/Telephony mode) to the known audio devices.

To load this module we can issue

pactl load-module module-bluetooth-discover

To always load this module on startup of the pulseaudio sound server we add the following lines to our /etc/pulse/default.pa (or to our custom user-based ~/.pulse/default.pa, or ~/.config/pulse/default.pa resp., if this file exists):

### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif
Related Question