You are not logged in.
Hello,
I have an issue with Bluetooth. I updated my system with the command yay -Syyuu, and since then, Bluetooth has not been working with A2DP sink (high-quality audio) but is functioning with HFP (low quality). I tried to downgrade the packages with these commands:
sh
sudo pacman -U /var/cache/pacman/pkg/bluez-5.73-4-x86_64.pkg.tar.zst
sudo pacman -U /var/cache/pacman/pkg/bluez-libs-5.73-4-x86_64.pkg.tar.zst
sudo pacman -U /var/cache/pacman/pkg/bluez-utils-5.73-4-x86_64.pkg.tar.zst
but nothing changed. I have no idea how to troubleshoot this issue. Could you help me? Thanks in advance.
systemctl status bluetooth
Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: disabled)
Active: active (running) since Sun 2024-05-19 18:53:14 CEST; 34min ago
Docs: man:bluetoothd(8)
Main PID: 539 (bluetoothd)
Status: "Running"
Tasks: 1 (limit: 9327)
Memory: 3.0M (peak: 3.6M)
CPU: 2.039s
CGroup: /system.slice/bluetooth.service
└─539 /usr/lib/bluetooth/bluetoothd
May 19 18:53:35 freeArch bluetoothd[539]: Endpoint registered: sender=:1.34 path=/MediaEndpoint/A2DPSink/sbc_xq_453
May 19 18:53:35 freeArch bluetoothd[539]: Endpoint registered: sender=:1.34 path=/MediaEndpoint/A2DPSource/sbc_xq_453
May 19 18:53:35 freeArch bluetoothd[539]: Endpoint registered: sender=:1.34 path=/MediaEndpoint/A2DPSink/sbc_xq_512
May 19 18:53:35 freeArch bluetoothd[539]: Endpoint registered: sender=:1.34 path=/MediaEndpoint/A2DPSource/sbc_xq_512
May 19 18:53:35 freeArch bluetoothd[539]: Endpoint registered: sender=:1.34 path=/MediaEndpoint/A2DPSink/sbc_xq_552
May 19 18:53:35 freeArch bluetoothd[539]: Endpoint registered: sender=:1.34 path=/MediaEndpoint/A2DPSource/sbc_xq_552
May 19 18:53:35 freeArch bluetoothd[539]: Endpoint registered: sender=:1.34 path=/MediaEndpoint/A2DPSink/faststream
May 19 18:53:35 freeArch bluetoothd[539]: Endpoint registered: sender=:1.34 path=/MediaEndpoint/A2DPSource/faststream
May 19 18:53:53 freeArch bluetoothd[539]: src/service.c:btd_service_connect() a2dp-source profile connect failed for 78:2B:64:FB:A5:F6: Device or resource busy
May 19 18:53:56 freeArch bluetoothd[539]: /org/bluez/hci0/dev_78_2B_64_FB_A5_F6/sep1/fd0: fd(31) ready
pactl list modules | grep bluetooth
Name: module-bluetooth-policy
module.description = "Policy module to make using bluetooth devices out-of-the-box easier"
Name: module-bluetooth-discover
systemctl --user status pipewire{,-pulse} pulseaudio wireplumber
Unit pipewire-pulse.service could not be found.
Unit wireplumber.service could not be found.
● pipewire.service - PipeWire Multimedia Service
Loaded: loaded (/usr/lib/systemd/user/pipewire.service; disabled; preset: enabled)
Active: active (running) since Sun 2024-05-19 18:54:02 CEST; 40min ago
TriggeredBy: ● pipewire.socket
Main PID: 1640 (pipewire)
Tasks: 3 (limit: 9327)
Memory: 1.6M (peak: 2.2M)
CPU: 77ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
└─1640 /usr/bin/pipewire
May 19 18:54:02 freeArch systemd[877]: Started PipeWire Multimedia Service.
● pulseaudio.service - Sound Service
Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; preset: enabled)
Active: active (running) since Sun 2024-05-19 18:53:35 CEST; 41min ago
TriggeredBy: ● pulseaudio.socket
Main PID: 887 (pulseaudio)
Tasks: 9 (limit: 9327)
Memory: 27.7M (peak: 30.1M)
CPU: 6min 23.780s
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pulseaudio.service
├─887 /usr/bin/pulseaudio --daemonize=no --log-target=journal
└─972 /usr/lib/pulse/gsettings-helper
May 19 18:53:34 freeArch systemd[877]: Starting Sound Service...
May 19 18:53:35 freeArch systemd[877]: Started Sound Service.
May 19 18:53:53 freeArch pulseaudio[887]: Battery Level: 100%
May 19 18:53:53 freeArch pulseaudio[887]: Dock Status: undocked
May 19 19:30:48 freeArch pulseaudio[887]: Module "module-bluetooth-discover" should be loaded once at most. Refusing to load.
May 19 19:30:48 freeArch pulseaudio[887]: Module "module-bluetooth-policy" should be loaded once at most. Refusing to load.
May 19 19:30:51 freeArch pulseaudio[887]: Module "module-bluetooth-discover" should be loaded once at most. Refusing to load.
May 19 19:30:51 freeArch pulseaudio[887]: Module "module-bluetooth-policy" should be loaded once at most. Refusing to load.
[lli@freeArch ~]$ systemctl --user status pipewire{,-pulse} pulseaudio wireplumber
Unit pipewire-pulse.service could not be found.
Unit wireplumber.service could not be found.
● pipewire.service - PipeWire Multimedia Service
Loaded: loaded (/usr/lib/systemd/user/pipewire.service; disabled; preset: enabled)
Active: active (running) since Sun 2024-05-19 18:54:02 CEST; 40min ago
TriggeredBy: ● pipewire.socket
Main PID: 1640 (pipewire)
Tasks: 3 (limit: 9327)
Memory: 1.6M (peak: 2.2M)
CPU: 77ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
└─1640 /usr/bin/pipewire
May 19 18:54:02 freeArch systemd[877]: Started PipeWire Multimedia Service.
● pulseaudio.service - Sound Service
Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; preset: enabled)
Active: active (running) since Sun 2024-05-19 18:53:35 CEST; 41min ago
TriggeredBy: ● pulseaudio.socket
Main PID: 887 (pulseaudio)
Tasks: 9 (limit: 9327)
Memory: 27.7M (peak: 30.1M)
CPU: 6min 23.991s
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pulseaudio.service
├─887 /usr/bin/pulseaudio --daemonize=no --log-target=journal
└─972 /usr/lib/pulse/gsettings-helper
May 19 18:53:34 freeArch systemd[877]: Starting Sound Service...
May 19 18:53:35 freeArch systemd[877]: Started Sound Service.
May 19 18:53:53 freeArch pulseaudio[887]: Battery Level: 100%
May 19 18:53:53 freeArch pulseaudio[887]: Dock Status: undocked
May 19 19:30:48 freeArch pulseaudio[887]: Module "module-bluetooth-discover" should be loaded once at most. Refusing to load.
May 19 19:30:48 freeArch pulseaudio[887]: Module "module-bluetooth-policy" should be loaded once at most. Refusing to load.
May 19 19:30:51 freeArch pulseaudio[887]: Module "module-bluetooth-discover" should be loaded once at most. Refusing to load.
May 19 19:30:51 freeArch pulseaudio[887]: Module "module-bluetooth-policy" should be loaded once at most. Refusing to load.
pactl list cards
Card #0
Name: alsa_card.pci-0000_00_1f.3
Driver: module-alsa-card.c
Owner Module: 6
Properties:
alsa.card = "0"
alsa.card_name = "HDA Intel PCH"
alsa.long_card_name = "HDA Intel PCH at 0xe1240000 irq 131"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:00:1f.3"
sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
device.bus = "pci"
device.vendor.id = "8086"
device.vendor.name = "Intel Corporation"
device.product.id = "9d70"
device.product.name = "Sunrise Point-LP HD Audio"
device.form_factor = "internal"
device.string = "0"
device.description = "Built-in Audio"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
Profiles:
input:analog-stereo: Analog Stereo Input (sinks: 0, sources: 1, priority: 32833, available: yes)
output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority: 39268, available: yes)
output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (sinks: 1, sources: 1, priority: 39333, available: yes)
output:analog-surround-40: Analog Surround 4.0 Output (sinks: 1, sources: 0, priority: 33968, available: yes)
output:analog-surround-40+input:analog-stereo: Analog Surround 4.0 Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 34033, available: yes)
output:hdmi-stereo: Digital Stereo (HDMI) Output (sinks: 1, sources: 0, priority: 38668, available: yes)
output:hdmi-stereo+input:analog-stereo: Digital Stereo (HDMI) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 38733, available: yes)
output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) Output (sinks: 1, sources: 0, priority: 5700, available: no)
output:hdmi-stereo-extra1+input:analog-stereo: Digital Stereo (HDMI 2) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5765, available: yes)
output:hdmi-surround-extra1: Digital Surround 5.1 (HDMI 2) Output (sinks: 1, sources: 0, priority: 600, available: no)
output:hdmi-surround-extra1+input:analog-stereo: Digital Surround 5.1 (HDMI 2) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: yes)
output:hdmi-surround71-extra1: Digital Surround 7.1 (HDMI 2) Output (sinks: 1, sources: 0, priority: 600, available: no)
output:hdmi-surround71-extra1+input:analog-stereo: Digital Surround 7.1 (HDMI 2) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: yes)
output:hdmi-stereo-extra2: Digital Stereo (HDMI 3) Output (sinks: 1, sources: 0, priority: 5700, available: no)
output:hdmi-stereo-extra2+input:analog-stereo: Digital Stereo (HDMI 3) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5765, available: yes)
output:hdmi-surround-extra2: Digital Surround 5.1 (HDMI 3) Output (sinks: 1, sources: 0, priority: 600, available: no)
output:hdmi-surround-extra2+input:analog-stereo: Digital Surround 5.1 (HDMI 3) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: yes)
output:hdmi-surround71-extra2: Digital Surround 7.1 (HDMI 3) Output (sinks: 1, sources: 0, priority: 600, available: no)
output:hdmi-surround71-extra2+input:analog-stereo: Digital Surround 7.1 (HDMI 3) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: yes)
off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Active Profile: output:analog-stereo+input:analog-stereo
Ports:
analog-input-internal-mic: Internal Microphone (type: Mic, priority: 8900, latency offset: 0 usec, availability unknown)
Properties:
device.icon_name = "audio-input-microphone"
Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo
analog-input-dock-mic: Dock Microphone (type: Mic, priority: 7800, latency offset: 0 usec, not available)
Properties:
device.icon_name = "audio-input-microphone"
Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo
analog-input-mic: Microphone (type: Mic, priority: 8700, latency offset: 0 usec, not available)
Properties:
device.icon_name = "audio-input-microphone"
Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo
analog-output-speaker: Speakers (type: Speaker, priority: 10000, latency offset: 0 usec, availability unknown)
Properties:
device.icon_name = "audio-speakers"
Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-40, output:analog-surround-40+input:analog-stereo
analog-output-headphones: Headphones (type: Headphones, priority: 9900, latency offset: 0 usec, not available)
Properties:
device.icon_name = "audio-headphones"
Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
hdmi-output-0: HDMI / DisplayPort (type: HDMI, priority: 5900, latency offset: 0 usec, available)
Properties:
device.icon_name = "video-display"
device.product.name = "LG HDR 4K"
Part of profile(s): output:hdmi-stereo, output:hdmi-stereo+input:analog-stereo
hdmi-output-1: HDMI / DisplayPort 2 (type: HDMI, priority: 5800, latency offset: 0 usec, not available)
Properties:
device.icon_name = "video-display"
Part of profile(s): output:hdmi-stereo-extra1, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1, output:hdmi-surround71-extra1+input:analog-stereo
hdmi-output-2: HDMI / DisplayPort 3 (type: HDMI, priority: 5700, latency offset: 0 usec, not available)
Properties:
device.icon_name = "video-display"
Part of profile(s): output:hdmi-stereo-extra2, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2, output:hdmi-surround71-extra2+input:analog-stereo
Card #1
Name: bluez_card.78_2B_64_FB_A5_F6
Driver: module-bluez5-device.c
Owner Module: 24
Properties:
device.description = "Bose Flex SoundLink"
device.string = "78:2B:64:FB:A5:F6"
device.api = "bluez"
device.class = "sound"
device.bus = "bluetooth"
device.form_factor = "speaker"
bluez.path = "/org/bluez/hci0/dev_78_2B_64_FB_A5_F6"
bluez.class = "0x240414"
bluez.alias = "Bose Flex SoundLink"
bluetooth.battery = "100%"
device.icon_name = "audio-speakers-bluetooth"
bluetooth.codec = "mSBC"
Profiles:
a2dp_source: High Fidelity Capture (A2DP Source) (sinks: 0, sources: 1, priority: 20, available: no)
a2dp_sink: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 40, available: yes)
handsfree_head_unit: Handsfree Head Unit (HFP) (sinks: 1, sources: 1, priority: 30, available: yes)
off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Active Profile: handsfree_head_unit
Ports:
speaker-output: Speaker (type: Speaker, priority: 0, latency offset: 0 usec, available)
Part of profile(s): a2dp_sink, handsfree_head_unit
speaker-input: Bluetooth Input (type: Bluetooth, priority: 0, latency offset: 0 usec, available)
Part of profile(s): a2dp_source, handsfree_head_unit
pactl list sinks
Sink #0
State: SUSPENDED
Name: alsa_output.pci-0000_00_1f.3.analog-stereo
Description: Built-in Audio Analog Stereo
Driver: module-alsa-card.c
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
Owner Module: 6
Mute: no
Volume: front-left: 70207 / 107% / 1.79 dB, front-right: 70207 / 107% / 1.79 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor Source: alsa_output.pci-0000_00_1f.3.analog-stereo.monitor
Latency: 0 usec, configured 0 usec
Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
Properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "ALC293 Analog"
alsa.id = "ALC293 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 0xe1240000 irq 131"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:00:1f.3"
sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
device.bus = "pci"
device.vendor.id = "8086"
device.vendor.name = "Intel Corporation"
device.product.id = "9d70"
device.product.name = "Sunrise Point-LP HD Audio"
device.form_factor = "internal"
device.string = "front:0"
device.buffering.buffer_size = "352800"
device.buffering.fragment_size = "176400"
device.access_mode = "mmap+timer"
device.profile.name = "analog-stereo"
device.profile.description = "Analog Stereo"
device.description = "Built-in Audio Analog Stereo"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
Ports:
analog-output-speaker: Speakers (type: Speaker, priority: 10000, availability unknown)
analog-output-headphones: Headphones (type: Headphones, priority: 9900, not available)
Active Port: analog-output-speaker
Formats:
pcm
Sink #4
State: RUNNING
Name: bluez_sink.78_2B_64_FB_A5_F6.handsfree_head_unit
Description: Bose Flex SoundLink
Driver: module-bluez5-device.c
Sample Specification: s16le 1ch 16000Hz
Channel Map: mono
Owner Module: 24
Mute: no
Volume: mono: 78643 / 120%
balance 0.00
Base Volume: 65536 / 100%
Monitor Source: bluez_sink.78_2B_64_FB_A5_F6.handsfree_head_unit.monitor
Latency: 247638 usec, configured 32500 usec
Flags: HARDWARE HW_VOLUME_CTRL LATENCY
Properties:
bluetooth.protocol = "handsfree_head_unit"
bluetooth.codec = "mSBC"
device.intended_roles = "phone"
device.description = "Bose Flex SoundLink"
device.string = "78:2B:64:FB:A5:F6"
device.api = "bluez"
device.class = "sound"
device.bus = "bluetooth"
device.form_factor = "speaker"
bluez.path = "/org/bluez/hci0/dev_78_2B_64_FB_A5_F6"
bluez.class = "0x240414"
bluez.alias = "Bose Flex SoundLink"
bluetooth.battery = "100%"
device.icon_name = "audio-speakers-bluetooth"
Ports:
speaker-output: Speaker (type: Speaker, priority: 0, available)
Active Port: speaker-output
Formats:
pcm
Last edited by zoltix (2024-05-20 12:44:46)
Offline
* Which packages were updated (/var/log/pacman.log)?
* Can you pass /etc/bluetooth/main.conf?
* Is multipleProfile set to multiple?
/etc/bluetooth/main.conf
[General]
MultiProfile=multiple
* Good formatted problem description will cause good and quick solution
* Please don't forget to mark as [SOLVED].
Offline
I'm already check
/var/log/pacman.log
[2024-05-19T13:33:08+0200] [ALPM] warning: directory permissions differ on /etc/bluetooth/, filesystem: 755 package: 555
[2024-05-19T13:33:08+0200] [ALPM] warning: /etc/bluetooth/main.conf installed as /etc/bluetooth/main.conf.pacnew
[2024-05-19T13:33:08+0200] [ALPM] upgraded bluez (5.75-1 -> 5.76-1)
[2024-05-19T13:33:08+0200] [ALPM] upgraded bluez-libs (5.75-1 -> 5.76-1)
[2024-05-19T13:33:08+0200] [ALPM] upgraded bluez-utils (5.75-1 -> 5.76-1)
[2024-05-19T13:33:08+0200] [ALPM] upgraded gdk-pixbuf2 (2.42.11-2 -> 2.42.12-1)
/etc/bluetooth/main.conf
[General]
# Default adapter name
# Defaults to 'BlueZ X.YZ'
#Name = BlueZ
# Default device class. Only the major and minor device class bits are
# considered. Defaults to '0x000000'.
#Class = 0x000100
# How long to stay in discoverable mode before going back to non-discoverable
# The value is in seconds. Default is 180, i.e. 3 minutes.
# 0 = disable timer, i.e. stay discoverable forever
#DiscoverableTimeout = 0
# Always allow pairing even if there are no agent registered
# Possible values: true, false
# Default: false
#AlwaysPairable = false
# How long to stay in pairable mode before going back to non-discoverable
# The value is in seconds. Default is 0.
# 0 = disable timer, i.e. stay pairable forever
#PairableTimeout = 0
# Use vendor id source (assigner), vendor, product and version information for
# DID profile support. The values are separated by ":" and assigner, VID, PID
# and version.
# Possible vendor id source values: bluetooth, usb (default) or false (disabled)
#DeviceID = bluetooth:1234:5678:abcd
# Do reverse service discovery for previously unknown devices that connect to
# us. For BR/EDR this option is really only needed for qualification since the
# BITE tester doesn't like us doing reverse SDP for some test cases, for LE
# this disables the GATT client functionally so it can be used in system which
# can only operate as peripheral (see also GATT Client option).
# Defaults to 'true'.
#ReverseServiceDiscovery = true
# Enable name resolving after inquiry. Set it to 'false' if you don't need
# remote devices name and want shorter discovery cycle. Defaults to 'true'.
#NameResolving = true
# Enable runtime persistency of debug link keys. Default is false which
# makes debug link keys valid only for the duration of the connection
# that they were created for.
#DebugKeys = false
# Restricts all controllers to the specified transport. Default value
# is "dual", i.e. both BR/EDR and LE enabled (when supported by the HW).
# Possible values: "dual", "bredr", "le"
#ControllerMode = dual
# Maximum number of controllers allowed to be exposed to the system.
# Default=0 (unlimited)
#MaxControllers=0
# Enables Multi Profile Specification support. This allows to specify if
# system supports only Multiple Profiles Single Device (MPSD) configuration
# or both Multiple Profiles Single Device (MPSD) and Multiple Profiles Multiple
# Devices (MPMD) configurations.
# Possible values: "off", "single", "multiple"
MultiProfile = multiple
# Permanently enables the Fast Connectable setting for adapters that
# support it. When enabled other devices can connect faster to us,
# however the tradeoff is increased power consumptions. This feature
# will fully work only on kernel version 4.1 and newer. Defaults to
# 'false'.
#FastConnectable = false
# Default privacy setting.
# Enables use of private address.
# Possible values for LE mode: "off", "network/on", "device"
# Possible values for Dual mode: "off", "network/on", "device",
# "limited-network", "limited-device"
#
# - off: Local privacy disabled.
#
# - network/on: A device will only accept advertising packets from peer
# devices that contain private addresses. It may not be compatible with some
# legacy devices since it requires the use of RPA(s) all the time.
#
# - device: A device in device privacy mode is only concerned about the
# privacy of the device and will accept advertising packets from peer devices
# that contain their Identity Address as well as ones that contain a private
# address, even if the peer device has distributed its IRK in the past.
# - limited-network: Apply Limited Discoverable Mode to advertising, which
# follows the same policy as to BR/EDR that publishes the identity address when
# discoverable, and Network Privacy Mode for scanning.
#
# - limited-device: Apply Limited Discoverable Mode to advertising, which
# follows the same policy as to BR/EDR that publishes the identity address when
# discoverable, and Device Privacy Mode for scanning.
#
# Defaults to "off"
#Privacy = off
# Specify the policy to the JUST-WORKS repairing initiated by peer
# Possible values: "never", "confirm", "always"
# Defaults to "never"
#JustWorksRepairing = never
# How long to keep temporary devices around
# The value is in seconds. Default is 30.
# 0 = disable timer, i.e. never keep temporary devices
#TemporaryTimeout = 30
# Enables the device to issue an SDP request to update known services when
# profile is connected. Defaults to true.
#RefreshDiscovery = true
# Default Secure Connections setting.
# Enables the Secure Connections setting for adapters that support it. It
# provides better crypto algorithms for BT links and also enables CTKD (cross
# transport key derivation) during pairing on any link.
# Possible values: "off", "on", "only"
# - "off": Secure Connections are disabled
# - "on": Secure Connections are enabled when peer device supports them
# - "only": we allow only Secure Connections
# Defaults to "on"
#SecureConnections = on
# Enables D-Bus experimental interfaces
# Possible values: true or false
#Experimental = false
# Enables D-Bus testing interfaces
# Possible values: true or false
#Testing = false
# Enables kernel experimental features, alternatively a list of UUIDs
# can be given.
# Possible values: true,false,<UUID List>
# Possible UUIDS:
# d4992530-b9ec-469f-ab01-6c481c47da1c (BlueZ Experimental Debug)
# 671b10b5-42c0-4696-9227-eb28d1b049d6 (BlueZ Experimental Simultaneous Central and Peripheral)
# 15c0a148-c273-11ea-b3de-0242ac130004 (BlueZ Experimental LL privacy)
# 330859bc-7506-492d-9370-9a6f0614037f (BlueZ Experimental Bluetooth Quality Report)
# a6695ace-ee7f-4fb9-881a-5fac66c629af (BlueZ Experimental Offload Codecs)
# 6fbaf188-05e0-496a-9885-d6ddfdb4e03e (BlueZ Experimental ISO socket)
# 69518c4c-b69f-4679-8bc1-c021b47b5733 (BlueZ Experimental Poll Errqueue)
# Defaults to false.
#KernelExperimental = false
# The duration to avoid retrying to resolve a peer's name, if the previous
# try failed.
# The value is in seconds. Default is 300, i.e. 5 minutes.
#RemoteNameRequestRetryDelay = 300
[BR]
# The following values are used to load default adapter parameters for BR/EDR.
# BlueZ loads the values into the kernel before the adapter is powered if the
# kernel supports the MGMT_LOAD_DEFAULT_PARAMETERS command. If a value isn't
# provided, the kernel will be initialized to it's default value. The actual
# value will vary based on the kernel version and thus aren't provided here.
# The Bluetooth Core Specification should be consulted for the meaning and valid
# domain of each of these values.
# BR/EDR Page scan activity configuration
#PageScanType=
#PageScanInterval=
#PageScanWindow=
# BR/EDR Inquiry scan activity configuration
#InquiryScanType=
#InquiryScanInterval=
#InquiryScanWindow=
# BR/EDR Link supervision timeout
#LinkSupervisionTimeout=
# BR/EDR Page Timeout
#PageTimeout=
# BR/EDR Sniff Intervals
#MinSniffInterval=
#MaxSniffInterval=
[LE]
# The following values are used to load default adapter parameters for LE.
# BlueZ loads the values into the kernel before the adapter is powered if the
# kernel supports the MGMT_LOAD_DEFAULT_PARAMETERS command. If a value isn't
# provided, the kernel will be initialized to it's default value. The actual
# value will vary based on the kernel version and thus aren't provided here.
# The Bluetooth Core Specification should be consulted for the meaning and valid
# domain of each of these values.
# LE advertisement interval (used for legacy advertisement interface only)
#MinAdvertisementInterval=
#MaxAdvertisementInterval=
#MultiAdvertisementRotationInterval=
# LE scanning parameters used for passive scanning supporting auto connect
# scenarios
#ScanIntervalAutoConnect=
#ScanWindowAutoConnect=
# LE scanning parameters used for passive scanning supporting wake from suspend
# scenarios
#ScanIntervalSuspend=
#ScanWindowSuspend=
# LE scanning parameters used for active scanning supporting discovery
# proceedure
#ScanIntervalDiscovery=
#ScanWindowDiscovery=
# LE scanning parameters used for passive scanning supporting the advertisement
# monitor Apis
#ScanIntervalAdvMonitor=
#ScanWindowAdvMonitor=
# LE scanning parameters used for connection establishment.
#ScanIntervalConnect=
#ScanWindowConnect=
# LE default connection parameters. These values are superceeded by any
# specific values provided via the Load Connection Parameters interface
#MinConnectionInterval=
#MaxConnectionInterval=
#ConnectionLatency=
#ConnectionSupervisionTimeout=
#Autoconnecttimeout=
# Scan duration during interleaving scan. Only used when scanning for ADV
# monitors. The units are msec.
# Default: 300
#AdvMonAllowlistScanDuration=
# Default: 500
#AdvMonNoFilterScanDuration=
# Enable/Disable Advertisement Monitor interleave scan for power saving.
# 0: disable
# 1: enable
# Defaults to 1
#EnableAdvMonInterleaveScan=
[GATT]
# GATT attribute cache.
# Possible values:
# always: Always cache attributes even for devices not paired, this is
# recommended as it is best for interoperability, with more consistent
# reconnection times and enables proper tracking of notifications for all
# devices.
# yes: Only cache attributes of paired devices.
# no: Never cache attributes
# Default: always
#Cache = always
# Minimum required Encryption Key Size for accessing secured characteristics.
# Possible values: 0 and 7-16. 0 means don't care.
# Defaults to 0
#KeySize = 0
# Exchange MTU size.
# Possible values: 23-517
# Defaults to 517
#ExchangeMTU = 517
# Number of ATT channels
# Possible values: 1-5 (1 disables EATT)
# Default to 1
#Channels = 1
[CSIS]
# SIRK - Set Identification Resolution Key which is common for all the
# sets. They SIRK key is used to identify its sets. This can be any
# 128 bit value or a string value (e.g. product name) which is then hashed.
# Possible Values:
# 16 byte hexadecimal value: 861FAE703ED681F0C50B34155B6434FB
# String value: "My Product Name"
# Defaults to none
#SIRK =
# SIRK Encryption
# Possible values:
# true: Encrypt SIRK when read
# false: Do not encrypt SIRK when read. (plaintext)
# Defaults to true
#Encryption = true
# Total no of sets belongs to this Profile
# Defaults to 0
#Size = 0
# Rank for the device
# Defaults to 0
#Rank = 0
# This enables the GATT client functionally, so it can be disabled in system
# which can only operate as a peripheral.
# Defaults to 'true'.
#Client = true
[AVDTP]
# AVDTP L2CAP Signalling Channel Mode.
# Possible values:
# basic: Use L2CAP Basic Mode
# ertm: Use L2CAP Enhanced Retransmission Mode
#SessionMode = basic
# AVDTP L2CAP Transport Channel Mode.
# Possible values:
# basic: Use L2CAP Basic Mode
# streaming: Use L2CAP Streaming Mode
#StreamMode = basic
[Policy]
#
# The ReconnectUUIDs defines the set of remote services that should try
# to be reconnected to in case of a link loss (link supervision
# timeout). The policy plugin should contain a sane set of values by
# default, but this list can be overridden here. By setting the list to
# empty the reconnection feature gets disabled.
#ReconnectUUIDs=00001112-0000-1000-8000-00805f9b34fb,0000111f-0000-1000-8000-00805f9b34fb,0000110a-0000-1000-8000-00805f9b34fb,0000110b-0000-1000-8000-00805f9b34fb
# ReconnectAttempts define the number of attempts to reconnect after a link
# lost. Setting the value to 0 disables reconnecting feature.
#ReconnectAttempts=7
# ReconnectIntervals define the set of intervals in seconds to use in between
# attempts.
# If the number of attempts defined in ReconnectAttempts is bigger than the
# set of intervals the last interval is repeated until the last attempt.
#ReconnectIntervals=1,2,4,8,16,32,64
# AutoEnable defines option to enable all controllers when they are found.
# This includes adapters present on start as well as adapters that are plugged
# in later on. Defaults to 'true'.
#AutoEnable=true
# Audio devices that were disconnected due to suspend will be reconnected on
# resume. ResumeDelay determines the delay between when the controller
# resumes from suspend and a connection attempt is made. A longer delay is
# better for better co-existence with Wi-Fi.
# The value is in seconds.
# Default: 2
#ResumeDelay = 2
[AdvMon]
# Default RSSI Sampling Period. This is used when a client registers an
# advertisement monitor and leaves the RSSISamplingPeriod unset.
# Possible values:
# 0x00 Report all advertisements
# N = 0xXX Report advertisements every N x 100 msec (range: 0x01 to 0xFE)
# 0xFF Report only one advertisement per device during monitoring period
# Default: 0xFF
#RSSISamplingPeriod=0xFF
Offline
In my case sometimes the headset starts in HFP and only after power cycling it (unrelated to any package version AFAIK) it picks the correct profile (Sony WH-1000XM5).
*If the profile switching is set to auto and PA/PW discovers input (microphone), it will switch to the HFP. So check that the microphone does not have any "consumers" (e.g. Zoom, google meet...).
* Try disabling headset profile as in Arch doc.
* Can you try with Pipewire?
* Good formatted problem description will cause good and quick solution
* Please don't forget to mark as [SOLVED].
Offline
pipewire: I'm afraid of having other problems. Is it stable, and has it become the recommended version for Arch?
Offline
BT in Linux is no fun. I can only say that PW is constantly developed and works for me (in my exp both PA and PW has suffered from stability and functionality issues) and recently PW is stable enough in my setup but YMMV.
At least we have 2 projects so you have options if one doesn't work for you (may also narrow down the debugging)
Last edited by impossibleveins23 (2024-05-20 11:08:54)
* Good formatted problem description will cause good and quick solution
* Please don't forget to mark as [SOLVED].
Offline
You're right, with pipewire, it's working....
Offline
Great. So now we can assume that the problem is within the Sound Server.
you can try debugging pulseaudio and see if we can spot anything or if you are satisfied with PW as solution, please mark this post as [SOLVED].
* Good formatted problem description will cause good and quick solution
* Please don't forget to mark as [SOLVED].
Offline
I am satisfied with PW; everything seems to be working properly.
Offline