Unfortunately, it does not work as out of box. After applying following workarounds, finally, it works.
- Fedora 32 x86_64
- Linux kernel 5.7.10 vanilla
- PulseAudio 13.99 + pulseaudio-module-bluetooth-freeworld (for proprietary codecs aptX)
- BlueZ 5.54
😱🙀😱🙀😱
pulseaudio
xxx xx xx:xx:xx xxx pulseaudio[14636]: E: [pulseaudio] bluez5-util.c: Transport Acquire() failed for transport /org/bluez/hci1/dev_xx_xx_xx_xx_xx_xx/sep4/fd11 (Input/output error)
bluetoothd
xxx xx xx:xx:52 sushi bluetoothd[54384]: Unable to get io data for Headset Voice gateway: getpeername: Transport endpoint is not connected (107)
xxx xx xx:xx:52 sushi bluetoothd[54384]: No reply to Start request
xxx xx xx:xx:45 sushi bluetoothd[54384]: xx:xx:xx:xx:xx:xx: error updating services: Input/output error (5)
xxx xx xx:xx:45 sushi bluetoothd[54384]: No reply to Start request
# vim /var/lib/gdm/.pulse/client.conf
autospawn = no
daemon-binary = /bin/true
# systemctl edit --full bluetooth.service
ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=avrcp
# systemctl restart bluetooth.service
$ bluetooth
[NEW] Device XX:XX:XX:XX:XX:XX MOMENTUM TW 2
pair XX:XX:XX:XX:XX:XX
connect XX:XX:XX:XX:XX:XX
trust XX:XX:XX:XX:XX:XX
info XX:XX:XX:XX:XX:XX
Device XX:XX:XX:XX:XX:XX (public)
Name: MOMENTUM TW 2
Alias: MOMENTUM TW 2
Class: 0x00240404
Icon: audio-card
Paired: yes
Trusted: yes
Blocked: no
Connected: yes
LegacyPairing: no
UUID: Serial Port (00001101-0000-1000-8000-00805f9b34fb)
UUID: Headset (00001108-0000-1000-8000-00805f9b34fb)
UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: Handsfree (0000111e-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: Vendor specific (0000eb03-d102-11e1-9b23-00025b00a5a5)
Modalias: usb:v1377p7001d0480
$ pactl list
Card #1
Name: bluez_card.xx_xx_xx_xx_xx_xx
Driver: module-bluez5-device.c
Owner Module: 23
Properties:
device.description = "MOMENTUM TW 2"
device.string = "xx:xx:xx:xx:xx:xx"
device.api = "bluez"
device.class = "sound"
device.bus = "bluetooth"
device.form_factor = "headset"
bluez.path = "/org/bluez/hci1/dev_xx_xx_xx_xx_xx_xx"
bluez.class = "0x240404"
bluez.alias = "MOMENTUM TW 2"
device.icon_name = "audio-headset-bluetooth"
device.intended_roles = "phone"
Profiles:
headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 30, available: yes)
a2dp_source_sbc: High Fidelity Capture (A2DP Source: SBC) (sinks: 0, sources: 1, priority: 20, available: yes)
a2dp_source_aac: High Fidelity Capture (A2DP Source: AAC) (sinks: 0, sources: 1, priority: 20, available: no)
a2dp_source_aptx: High Fidelity Capture (A2DP Source: APTX) (sinks: 0, sources: 1, priority: 20, available: no)
a2dp_source_aptx_hd: High Fidelity Capture (A2DP Source: aptX HD) (sinks: 0, sources: 1, priority: 20, available: no)
a2dp_sink_sbc: High Fidelity Playback (A2DP Sink: SBC) (sinks: 1, sources: 0, priority: 40, available: yes)
a2dp_sink_aac: High Fidelity Playback (A2DP Sink: AAC) (sinks: 1, sources: 0, priority: 40, available: yes)
a2dp_sink_aptx: High Fidelity Playback (A2DP Sink: aptX) (sinks: 1, sources: 0, priority: 40, available: yes)
a2dp_sink_aptx_hd: High Fidelity Playback (A2DP Sink: aptX HD) (sinks: 1, sources: 0, priority: 40, available: no)
a2dp_sink_ldac: High Fidelity Playback (A2DP Sink: LDAC) (sinks: 1, sources: 0, priority: 40, available: no)
off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Active Profile: a2dp_sink_aptx
Ports:
headset-output: Headset (priority: 0, latency offset: 0 usec, available)
Part of profile(s): headset_head_unit, a2dp_sink_sbc, a2dp_sink_aac, a2dp_sink_aptx, a2dp_sink_aptx_hd, a2dp_sink_ldac
headset-input: Headset (priority: 0, latency offset: 0 usec)
Part of profile(s): headset_head_unit, a2dp_source_sbc, a2dp_source_aac, a2dp_source_aptx, a2dp_source_aptx_hd
$ pacmd set-card-profile 1 a2dp_sink_aptx
Unfortunately, this solution doesn't work for Momentum 4 on Fedora 38, but thanks for sharing this, it was a good learning experience.