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:
- It used to be working (last tested around 6 months ago).
- 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.
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
>>>pacmd \n >>> list-sinks \n >>> exit
by headset is being reconnected as well. I do not think that this is normal behaviour.>>> alsamixer
didn't effect the headset at all.