Как и многие другие, меня беспокоили проблемы с bluetooth-гарнитурой (SONY WH-H900N). Я прекрасно могу подключиться, используя A2DP, и даже LDAC работает благодаря pulseaudio-modules-bt . Однако в тот момент, когда я возвращаюсь к качеству, чтобы использовать свою гарнитуру в качестве приемника и источника, я начинаю слышать некоторый шум (который, я думаю, ожидается при этом кодеке низкого качества), но звука не слышно.
Мои проблемы отличались от некоторых других проблем с гарнитурой по двум причинам:
Информация о системе:
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
Адаптер Bluetooth - это сетевое устройство 2: Intel Wireless 8260, для драйверов с именем iwlwifi.При работе inxi -Fxz
и pacmd list -ocks
гарнитура была подключена через 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>
Теперь после переключения на 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>
После того, как я увидел, что микрофон улавливает какой-то звук в панели управления Gnome, я позвонил другу, который мог подтвердить, что микрофон работает правильно. В этой панели управления звуком, к моему удивлению, цвет мощности устройства вывода стал синим и перестал двигаться.
До сих пор я безуспешно пытался поиграть с blueman
и pavucontrol
.
Я отслеживал действие переключения между профилями в journalctl. Вот результаты:
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
Ясно, что есть ошибка: Bluetooth: hci0: SCO-пакет для неизвестного дескриптора соединения 0
Что, похоже, обсуждается здесь . Но я не совсем понимаю, что это значит. Кроме того, аналогичная ошибка возникает при возврате к работающему A2DP, Bluetooth: hci0: пакет SCO для неизвестного дескриптора соединения 257
. Но это появляется только один раз.
Вдохновленный этой проблемой , я выполнил следующий тест, который автоматически переключил гарнитуру в режим HSP / HFP, и снова нет звука. Пользователь там обнаружил, что у него проблема с драйвером bluetooth, к сожалению, он не объясняет, как он это выяснил. На самом деле он также не показывает результат теста arecord.
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
Да, я исправил. Я пошел и очистил все свои аудио и Bluetooth пакеты. Я, наверное, забыл один из этих пакетов в последний раз, когда пробовал это. Я выполнил следующие команды.
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
Я ожидал, что это сбросит мои файлы конфигурации аудио, но этого не произошло. В моем файле конфигурации пульса я все же нашел правки, которые я сделал в прошлом. Я удалил их вручную:
sudo gedit /etc/pulse/default.pa
pulseaudio -k
Здесь я выполнил шаги настройки pulseaudio-modules-bt
, доступные здесь .
Потом, к моему удивлению, все заработало. Моей целью было сбросить все мои настройки до значений по умолчанию. И предыдущие команды не достигли этого, хотя моя проблема теперь исправлена.
Чтобы удалить ваши личные настройки pulseaudio
, основываясь на ответах на вопрос здесь , можно запустить:
sudo apt-cache pkgnames pulse |xargs -n 1 sudo apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall
Но я не уверен и не тестировал это, так как я не хотел изменять свою теперь рабочую конфигурацию.Может ли кто-нибудь подтвердить, будет ли это правильным способом сбросить конфигурацию импульса? И какая команда сделает это для всех пакетов, связанных с настройкой Bluetooth / аудио?