5

Similar to many others I've been troubled with bluetooth headset (SONY WH-H900N) issues. I can connect perfectly fine using A2DP and even LDAC is working due to pulseaudio-modules-bt. However the moment that I go back in quality to use my headset as sink and source, I start hearing some noise (which I think is expected at this low quality codec) but no sound comes through.

My problems set's itself apart, from some of the other headset issues because of two reasons:

  1. It used to be working (last tested around 6 months ago).
  2. The microphone is working, it's just the sound output that is not.

System information:

bram@bram-Zbook:~$ inxi -Fxz
System:    Kernel: 5.8.0-48-generic x86_64 bits: 64 compiler: N/A Desktop: Gnome 3.36.7 
           Distro: Ubuntu 20.04.2 LTS (Focal Fossa) 
Machine:   Type: Laptop System: HP product: HP ZBook Studio G3 v: N/A serial: <filter> 
           Mobo: HP model: 80D4 v: KBC Version 11.75 serial: <filter> UEFI: HP v: N82 Ver. 01.52 date: 10/28/2020 
Battery:   ID-1: BAT0 charge: 47.8 Wh condition: 49.1/64.0 Wh (77%) model: Hewlett-Packard Primary status: Unknown 
CPU:       Topology: Quad Core model: Intel Core i7-6700HQ bits: 64 type: MT MCP arch: Skylake-S rev: 3 L2 cache: 6144 KiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 41599 
           Speed: 3262 MHz min/max: 800/3500 MHz Core speeds (MHz): 1: 3188 2: 3251 3: 3291 4: 3447 5: 3277 6: 3151 7: 3251 
           8: 3242 
Graphics:  Device-1: Intel HD Graphics 530 vendor: Hewlett-Packard driver: i915 v: kernel bus ID: 00:02.0 
           Device-2: NVIDIA GM107GLM [Quadro M1000M] vendor: Hewlett-Packard driver: nvidia v: 450.102.04 bus ID: 01:00.0 
           Display: x11 server: X.Org 1.20.9 driver: modesetting,nvidia unloaded: fbdev,nouveau,vesa 
           resolution: 1920x1080~60Hz, 2560x1440~60Hz 
           OpenGL: renderer: Mesa Intel HD Graphics 530 (SKL GT2) v: 4.6 Mesa 20.2.6 direct render: Yes 
Audio:     Device-1: Intel 100 Series/C230 Series Family HD Audio vendor: Hewlett-Packard driver: snd_hda_intel v: kernel 
           bus ID: 00:1f.3 
           Device-2: NVIDIA GM107 High Definition Audio [GeForce 940MX] vendor: Hewlett-Packard driver: snd_hda_intel 
           v: kernel bus ID: 01:00.1 
           Device-3: Conexant Systems (Rockwell) HP Dock Audio type: USB driver: hid-generic,snd-usb-audio,usbhid 
           bus ID: 3-2:3 
           Sound Server: ALSA v: k5.8.0-48-generic 
Network:   Device-1: Intel Ethernet I219-LM vendor: Hewlett-Packard driver: e1000e v: 3.2.6-k port: efa0 bus ID: 00:1f.6 
           IF: enp0s31f6 state: down mac: <filter> 
           Device-2: Intel Wireless 8260 driver: iwlwifi v: kernel port: 4000 bus ID: 03:00.0 
           IF: wlp3s0 state: up mac: <filter> 
           Device-3: Broadcom and subsidiaries NetXtreme BCM57762 Gigabit Ethernet PCIe driver: tg3 v: kernel port: 4000 
           bus ID: 3f:00.0 
           IF: enp63s0 state: up speed: 1000 Mbps duplex: full mac: <filter> 
Drives:    Local Storage: total: 2.29 TiB used: 284.32 GiB (12.2%) 
           ID-1: /dev/nvme0n1 vendor: Samsung model: MZVPV256HDGL-00000 size: 238.47 GiB 
           ID-2: /dev/sda vendor: SanDisk model: SD7TN3Q-256G-1006 size: 238.47 GiB 
           ID-3: /dev/sdb type: USB vendor: Western Digital model: WD My Passport 2626 size: 1.82 TiB 
Partition: ID-1: / size: 226.34 GiB used: 85.37 GiB (37.7%) fs: ext4 dev: /dev/nvme0n1p3 
           ID-2: /home size: 233.73 GiB used: 197.74 GiB (84.6%) fs: ext4 dev: /dev/sda1 
           ID-3: swap-1 size: 7.45 GiB used: 6.2 MiB (0.1%) fs: swap dev: /dev/nvme0n1p2 
Sensors:   System Temperatures: cpu: 60.0 C mobo: 52.0 C 
           Fan Speeds (RPM): N/A 
Info:      Processes: 365 Uptime: 19m Memory: 7.56 GiB used: 3.51 GiB (46.4%) Init: systemd runlevel: 5 Compilers: gcc: 9.3.0 

The bluetooth adaptor is the Network Device 2: Intel Wireless 8260, for with drivers caled iwlwifi. While running inxi -Fxz and pacmd list-sinks the headset was connected thorugh A2DP.

bram@bram-Zbook:~$ pacmd list-cards
4 card(s) available.

     ------ Removed Devices 0 till 2 ------ 
    
    index: 3
    name: <bluez_card.04_5D_4B_66_7E_42>
    driver: <module-bluez5-device.c>
    owner module: 29
    properties:
        device.description = "LE_WH-H900N"
        device.string = "04:5D:4B:66:7E:42"
        device.api = "bluez"
        device.class = "sound"
        device.bus = "bluetooth"
        device.form_factor = "headset"
        bluez.path = "/org/bluez/hci0/dev_04_5D_4B_66_7E_42"
        bluez.class = "0x240404"
        bluez.alias = "LE_WH-H900N"
        device.icon_name = "audio-headset-bluetooth"
        device.intended_roles = "phone"
    profiles:
        headset_head_unit: Headset Head Unit (HSP/HFP) (priority 30, available: unknown)
        a2dp_sink_sbc: High Fidelity Playback (A2DP Sink: SBC) (priority 40, available: unknown)
        a2dp_sink_aac: High Fidelity Playback (A2DP Sink: AAC) (priority 40, available: unknown)
        a2dp_sink_aptx: High Fidelity Playback (A2DP Sink: aptX) (priority 40, available: unknown)
        a2dp_sink_aptx_hd: High Fidelity Playback (A2DP Sink: aptX HD) (priority 40, available: unknown)
        a2dp_sink_ldac: High Fidelity Playback (A2DP Sink: LDAC) (priority 40, available: yes)
        off: Off (priority 0, available: yes)
    active profile: <a2dp_sink_ldac>
    sinks:
        bluez_sink.04_5D_4B_66_7E_42.a2dp_sink/#11: LE_WH-H900N
    sources:
        bluez_sink.04_5D_4B_66_7E_42.a2dp_sink.monitor/#16: Monitor of LE_WH-H900N
    ports:
        headset-output: Headset (priority 0, latency offset 0 usec, available: yes)
            properties:
                
        headset-input: Headset (priority 0, latency offset 0 usec, available: unknown)
            properties:

bram@bram-Zbook:~$ pacmd list-sinks

   ------ Removed Index 1 to 4 (then it jumps to 17)  ------ 

 * index: 17
    name: <bluez_sink.04_5D_4B_66_7E_42.a2dp_sink>
    driver: <module-bluez5-device.c>
    flags: HARDWARE DECIBEL_VOLUME LATENCY 
    state: RUNNING
    suspend cause: (none)
    priority: 9050
    volume: front-left: 35863 /  55% / -15,71 dB,   front-right: 35863 /  55% / -15,71 dB
            balance 0,00
    base volume: 65536 / 100% / 0,00 dB
    volume steps: 65537
    muted: no
    current latency: 33,13 ms
    max request: 2 KiB
    max rewind: 0 KiB
    monitor source: 25
    sample spec: float32le 2ch 44100Hz
    channel map: front-left,front-right
                 Stereo
    used by: 1
    linked by: 1
    fixed latency: 30,80 ms
    card: 4 <bluez_card.04_5D_4B_66_7E_42>
    module: 31
    properties:
        bluetooth.protocol = "a2dp_sink"
        bluetooth.a2dp_codec = "LDAC"
        device.description = "LE_WH-H900N"
        device.string = "04:5D:4B:66:7E:42"
        device.api = "bluez"
        device.class = "sound"
        device.bus = "bluetooth"
        device.form_factor = "headset"
        bluez.path = "/org/bluez/hci0/dev_04_5D_4B_66_7E_42"
        bluez.class = "0x240404"
        bluez.alias = "LE_WH-H900N"
        device.icon_name = "audio-headset-bluetooth"
        device.intended_roles = "phone"
    ports:
        headset-output: Headset (priority 0, latency offset 0 usec, available: yes)
            properties:
                
    active port: <headset-output>

Now after switching to HSP/HFP:

(base) bram@bram-Zbook:~$ pacmd list-cards
4 card(s) available.

     ------ Removed Devices 0, 1 and 2 ------ 

    index: 3
    name: <bluez_card.04_5D_4B_66_7E_42>
    driver: <module-bluez5-device.c>
    owner module: 29
    properties:
        device.description = "LE_WH-H900N"
        device.string = "04:5D:4B:66:7E:42"
        device.api = "bluez"
        device.class = "sound"
        device.bus = "bluetooth"
        device.form_factor = "headset"
        bluez.path = "/org/bluez/hci0/dev_04_5D_4B_66_7E_42"
        bluez.class = "0x240404"
        bluez.alias = "LE_WH-H900N"
        device.icon_name = "audio-headset-bluetooth"
        device.intended_roles = "phone"
    profiles:
        headset_head_unit: Headset Head Unit (HSP/HFP) (priority 30, available: yes)
        a2dp_sink_sbc: High Fidelity Playback (A2DP Sink: SBC) (priority 40, available: unknown)
        a2dp_sink_aac: High Fidelity Playback (A2DP Sink: AAC) (priority 40, available: unknown)
        a2dp_sink_aptx: High Fidelity Playback (A2DP Sink: aptX) (priority 40, available: unknown)
        a2dp_sink_aptx_hd: High Fidelity Playback (A2DP Sink: aptX HD) (priority 40, available: unknown)
        a2dp_sink_ldac: High Fidelity Playback (A2DP Sink: LDAC) (priority 40, available: unknown)
        off: Off (priority 0, available: yes)
    active profile: <headset_head_unit>
    sinks:
        bluez_sink.04_5D_4B_66_7E_42.headset_head_unit/#14: LE_WH-H900N
    sources:
        bluez_sink.04_5D_4B_66_7E_42.headset_head_unit.monitor/#21: Monitor of LE_WH-H900N
        bluez_source.04_5D_4B_66_7E_42.headset_head_unit/#22: LE_WH-H900N
    ports:
        headset-output: Headset (priority 0, latency offset 0 usec, available: yes)
            properties:
                
        headset-input: Headset (priority 0, latency offset 0 usec, available: yes)
            properties:

bram@bram-Zbook:~$ pacmd list-sinks

   ------ Removed Index 1 to 4 (then it jumps to 14)  ------ 

  * index: 14
    name: <bluez_sink.04_5D_4B_66_7E_42.headset_head_unit>
    driver: <module-bluez5-device.c>
    flags: HARDWARE HW_VOLUME_CTRL LATENCY 
    state: RUNNING
    suspend cause: (none)
    priority: 9050
    volume: mono: 65136 /  99%
            balance 0,00
    base volume: 65536 / 100%
    volume steps: 16
    muted: no
    current latency: 36,49 ms
    max request: 0 KiB
    max rewind: 0 KiB
    monitor source: 21
    sample spec: s16le 1ch 8000Hz
    channel map: mono
                 Mono
    used by: 1
    linked by: 1
    fixed latency: 31,00 ms
    card: 3 <bluez_card.04_5D_4B_66_7E_42>
    module: 29
    properties:
        bluetooth.protocol = "headset_head_unit"
        device.intended_roles = "phone"
        device.description = "LE_WH-H900N"
        device.string = "04:5D:4B:66:7E:42"
        device.api = "bluez"
        device.class = "sound"
        device.bus = "bluetooth"
        device.form_factor = "headset"
        bluez.path = "/org/bluez/hci0/dev_04_5D_4B_66_7E_42"
        bluez.class = "0x240404"
        bluez.alias = "LE_WH-H900N"
        device.icon_name = "audio-headset-bluetooth"
    ports:
        headset-output: Headset (priority 0, latency offset 0 usec, available: yes)
            properties:
                
    active port: <headset-output>

After I saw that the mic was picking up some sound in the Gnome control pannel I did call a friend who could confirm that the mic was properly working. In this Sound Control Panel it was to my surprise that the color of the output device strength became Blue and stopped moving.

Gnome Sound Control Panel

Untill now I've tried playing around with blueman and pavucontrol with no avail.

Edit 1: Journalctl

I've monitored the action of swiching between profiles in the journalctl. Here are the results:

bram@bram-Zbook:~$ journalctl -f
-- Logs begin at Mon 2021-03-08 02:01:23 +03. --
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]: (--) NVIDIA(GPU-0): DFP-1: 165.0 MHz maximum pixel clock
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]: (--) NVIDIA(GPU-0):
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]: (--) NVIDIA(GPU-0): DFP-2: disconnected
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]: (--) NVIDIA(GPU-0): DFP-2: Internal DisplayPort
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]: (--) NVIDIA(GPU-0): DFP-2: 960.0 MHz maximum pixel clock
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]: (--) NVIDIA(GPU-0):
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]: (--) NVIDIA(GPU-0): DFP-3: disconnected
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]: (--) NVIDIA(GPU-0): DFP-3: Internal DisplayPort
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]: (--) NVIDIA(GPU-0): DFP-3: 960.0 MHz maximum pixel clock
mrt 31 22:23:02 bram-Zbook /usr/lib/gdm3/gdm-x-session[1985]: (--) NVIDIA(GPU-0):
mrt 31 22:23:13 bram-Zbook rtkit-daemon[1192]: Supervising 7 threads of 3 processes of 2 users.
mrt 31 22:23:13 bram-Zbook rtkit-daemon[1192]: Successfully made thread 13653 of process 1900 owned by '1000' RT at priority 5.
mrt 31 22:23:13 bram-Zbook rtkit-daemon[1192]: Supervising 8 threads of 3 processes of 2 users.
mrt 31 22:23:13 bram-Zbook gsd-media-keys[2356]: Unable to get default sink
mrt 31 22:23:13 bram-Zbook gsd-media-keys[2356]: Unable to get default source
mrt 31 22:23:13 bram-Zbook kernel: Bluetooth: hci0: SCO packet for unknown connection handle 0
mrt 31 22:23:13 bram-Zbook kernel: Bluetooth: hci0: SCO packet for unknown connection handle 0
mrt 31 22:23:13 bram-Zbook kernel: Bluetooth: hci0: SCO packet for unknown connection handle 0
mrt 31 22:23:13 bram-Zbook kernel: Bluetooth: hci0: SCO packet for unknown connection handle 0
mrt 31 22:23:20 bram-Zbook rtkit-daemon[1192]: Supervising 7 threads of 3 processes of 2 users.
mrt 31 22:23:20 bram-Zbook kernel: Bluetooth: hci0: SCO packet for unknown connection handle 257
mrt 31 22:23:20 bram-Zbook rtkit-daemon[1192]: Successfully made thread 13656 of process 1900 owned by '1000' RT at priority 5.
mrt 31 22:23:20 bram-Zbook rtkit-daemon[1192]: Supervising 8 threads of 3 processes of 2 users.
mrt 31 22:23:20 bram-Zbook gsd-media-keys[2356]: Unable to get default sink
mrt 31 22:23:20 bram-Zbook gsd-media-keys[2356]: Unable to get default source
  • mrt 31 22:23:13 -> Changing from A2DP to HSP/HFP (no sound but audio is oke)
  • mrt 31 22:23:20 -> Changing back from HSP/HFP to A2DP (everything works again)

Clearly there is an error: Bluetooth: hci0: SCO packet for unknown connection handle 0 Which seems to be discussed here. But I'm not sure what it means. Beside a similar error happens when moving back to A2DP, which is working, Bluetooth: hci0: SCO packet for unknown connection handle 257. But this appears only once.

Edit 2: Sound test

Inspired by this issue, I performed the following test, which automatically swiched the headset to HSP/HFP mode, and again there is no sound. The user there found out that he had a bluetooth driver issue, sadly he does not explain how he figures that out. Neither does he actually show the output of the arecord test.

bram@bram-Zbook:~$ arecord --channels=1 --format=S16_LE --rate=8000 --duration=6 --verbose --dump-hw-params --device=default voice.wav
Opname WAVE 'voice.wav' : Signed 16 bit Little Endian, Frequentie 8000 Hz, Mono
HW Params of device "default":
:--------------------
ACCESS:  RW_INTERLEAVED
FORMAT:  U8 S16_LE S16_BE S24_LE S24_BE S32_LE S32_BE FLOAT_LE FLOAT_BE MU_LAW A_LAW S24_3LE S24_3BE
SUBFORMAT:  STD
SAMPLE_BITS: [8 32]
FRAME_BITS: [8 1024]
CHANNELS: [1 32]
RATE: [1 384000]
PERIOD_TIME: (2 4294967295)
PERIOD_SIZE: [1 1398102)
PERIOD_BYTES: [128 1398102)
PERIODS: [3 1024]
BUFFER_TIME: (7 4294967295]
BUFFER_SIZE: [3 4194304]
BUFFER_BYTES: [384 4194304]
TICK_TIME: ALL
:--------------------
ALSA <-> PulseAudio PCM I/O Plugin
Its setup is:
  stream       : CAPTURE
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 1
  rate         : 8000
  exact rate   : 8000 (8000/1)
  msbits       : 16
  buffer_size  : 4000
  period_size  : 1000
  period_time  : 125000
  tstamp_mode  : NONE
  tstamp_type  : GETTIMEOFDAY
  period_step  : 1
  avail_min    : 1000
  period_event : 0
  start_threshold  : 1
  stop_threshold   : 4000
  silence_threshold: 0
  silence_size : 0
  boundary     : 9007199254740992000
8
  • Does this answer your question? Ubuntu 20.04 bluetooth headphones play through internal speakers
    – Raffa
    Mar 31, 2021 at 9:35
  • Thanks for this link, I'ven't gone through all the steps, but you might be on to something. If I run: >>>pacmd \n >>> list-sinks \n >>> exit by headset is being reconnected as well. I do not think that this is normal behaviour.
    – aijLag
    Mar 31, 2021 at 14:26
  • Sadly it does not help :-( , my problem is not the same, I do not hear anything coming through a different speaker. Nevertheless, I tried the solution, but rebuilding up the pulseaudio configuration didn't help.
    – aijLag
    Mar 31, 2021 at 17:27
  • I've also tried to follow the manual help.ubuntu.com/community/SoundTroubleshootingProcedure, but this did not help either. If you want I can add the information I obtained from it though. Interesting however was that the options in >>> alsamixer didn't effect the headset at all.
    – aijLag
    Mar 31, 2021 at 18:06
  • Try asking the Pulseaudio developers. You can reach them through their listserve at lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss. They are generally quite helpful.
    – Joe
    Apr 1, 2021 at 3:26

1 Answer 1

1

Yeah I fixed it. I went and cleaned up all my audio and Bluetooth packages. I probably forgot one of these packages last time I tried this. I ran the following commands.

sudo apt-get update
sudo apt-get purge bluez libldac pulseaudio-modules-bt  # Remove packages
sudo apt-get autoremove  # Cleanup
sudo apt-get reinstall -y libfdk-aac-dev libavcodec-dev libpulse-dev libdbus-1-dev libsbc-dev libltdl-dev libbluetooth-dev  # Renistall as some of these cannot be purged
sudo apt-get install bluez libldac pulseaudio-modules-bt
sudo reboot  # Might not be nessecary

I expected this to reset my audio configuration files, which it did not. In my pulse configuration file I still found edits that I made in the past. These I removed by hand:

sudo gedit /etc/pulse/default.pa
pulseaudio -k

Here I followed the configuration steps of pulseaudio-modules-bt available here.

Afterwards everything worked to my surprise. My goal was to reset all my settings to default. And the previous commands did not achieve that, although my issue is now fixed.

To remove your personal settings of pulseaudio, based upon answers to a question here, one can run:

sudo apt-cache pkgnames pulse |xargs -n 1 sudo apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall

But I'm unsure and have not tested this as I didn't want to alter my now working configuration. Can someone confirm whether that would be the correct way to reset the configuration of pulse? And what command would do this for all packages related to the Bluetooth/audio setup?

You must log in to answer this question.

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