Skip to content

Andrew1326/sony-wf1000xm5-linux-bluetooth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Sony WF-1000XM5 Bluetooth on Linux — Troubleshooting Guide

A guide for connecting Sony WF-1000XM5 wireless earbuds on Linux (Ubuntu/PipeWire/WirePlumber/BlueZ). Covers common issues including pairing failures, missing audio sink, wrong audio profile, and dual Bluetooth adapter conflicts.

Known Issues

1. Pairing fails with ConnectionAttemptFailed or AuthenticationTimeout

Symptoms:

  • bluetoothctl pair returns Failed to pair: org.bluez.Error.ConnectionAttemptFailed
  • GNOME Bluetooth settings shows "Setting up ... failed: Timeout was reached"
  • Device appears in scan but refuses to pair

Causes:

  • Stale pairing data on the headphones or the PC
  • MediaTek MT7925 Bluetooth adapter has a known driver bug on kernel < 6.17
  • BlueZ has a known pairing incompatibility with Sony XM5 headphones (bluez#1020)

Fix:

Reset the headphones' pairing list:

  1. Place both earbuds in the charging case, open the lid
  2. Touch and hold the sensor on both earbuds simultaneously for ~10 seconds
  3. Wait for the indicator lights to flash, then close the case
  4. Take them out — they will enter pairing mode automatically

Remove old pairing on the PC and re-pair:

bluetoothctl remove <MAC_ADDRESS>
bluetoothctl scan on
# Wait for "WF-1000XM5" to appear
bluetoothctl trust <MAC_ADDRESS>
bluetoothctl pair <MAC_ADDRESS>
bluetoothctl connect <MAC_ADDRESS>

2. Device connects but no audio (no PipeWire sink)

Symptoms:

  • bluetoothctl info shows Connected: yes but ServicesResolved: false
  • wpctl status shows no Bluetooth sink
  • No WF-1000XM5 entry under Audio Sinks

Cause: The low-level Bluetooth connection exists but audio profiles (A2DP, HFP) never initialized.

Fix:

Disconnect and reconnect:

bluetoothctl disconnect <MAC_ADDRESS>
sleep 3
bluetoothctl connect <MAC_ADDRESS>

If that doesn't work, restart WirePlumber after connecting:

systemctl --user restart wireplumber

Verify audio transport was created — you should see Endpoint and Transport lines in the connect output:

[NEW] Endpoint /org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX/sep1
[NEW] Transport /org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX/sep1/fd0

3. Connected but audio sounds terrible or silent (wrong profile)

Symptoms:

  • Audio sounds like a phone call (very low quality) or no sound at all
  • wpctl inspect <SINK_ID> shows api.bluez5.profile = "headset-head-unit" and api.bluez5.codec = "cvsd"

Cause: WirePlumber selected the HFP (Hands-Free Profile) instead of A2DP (high quality media playback).

Fix:

Find the device ID and switch to A2DP:

# Find the WF-1000XM5 device ID in WirePlumber
wpctl status
# Look for WF-1000XM5 under Devices, note the ID (e.g., 41)

# List available profiles
pw-cli enum-params <DEVICE_ID> EnumProfile
# Look for "a2dp-sink" and note its index (e.g., 5)

# Switch to A2DP
wpctl set-profile <DEVICE_ID> <A2DP_INDEX>

Make A2DP the default (so it persists across reconnects):

Edit ~/.local/state/wireplumber/default-profile and change:

bluez_card.<MAC_WITH_UNDERSCORES>=headset-head-unit-cvsd

to:

bluez_card.<MAC_WITH_UNDERSCORES>=a2dp-sink

Then restart WirePlumber:

systemctl --user restart wireplumber

4. Dual Bluetooth adapter conflict

Symptoms:

  • hciconfig shows two adapters (hci0 and hci1)
  • Pairing works on one adapter but GNOME Settings shows the other
  • Headphones keep disconnecting or failing to connect

Cause: Two Bluetooth adapters are active. GNOME Settings may be using a different adapter than bluetoothctl. The bluetoothctl select command can behave unexpectedly with multiple adapters.

Diagnosis:

hciconfig -a          # List all adapters
bluetoothctl list     # Show adapters and which is [default]

Fix — disable the unwanted adapter:

Option A: Soft-block with rfkill (temporary, until reboot):

# Identify which hci# to block
rfkill list
rfkill block <ID>

Option B: Unbind via udev rule (permanent):

Create /etc/udev/rules.d/99-disable-onboard-bt.rules:

# Disable onboard Bluetooth adapter (adjust idVendor/idProduct for your hardware)
SUBSYSTEM=="usb", DRIVER=="btusb", ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="0717", RUN+="/bin/sh -c 'echo %k > /sys/bus/usb/drivers/btusb/unbind'"

Then reload:

sudo udevadm control --reload-rules

Warning: If your Bluetooth and WiFi share the same USB device (common with combo chips like MediaTek MT7925), do NOT disable the entire USB device — only unbind btusb. The udev rule above does this correctly.

5. MediaTek MT7925 specific issues

The MT7925 (USB ID 0e8d:0717) has a known btusb driver bug on Linux kernels before 6.17.

Symptoms:

  • HW/SW Version: 0x00000000 in kernel logs
  • Failed to set mode: Failed (0x03) in bluetoothd logs
  • Device setup takes 18+ seconds
  • All pairing attempts fail

Status: Fix is merged upstream, expected in kernel 6.17.

Workaround for kernel 6.14:

sudo apt install git dkms
git clone https://github.com/jeremyb31/bluetooth-6.14.git
sudo dkms add ./bluetooth-6.14
sudo dkms install btusb/4.3
sudo reboot

To remove after upgrading to kernel 6.17+:

sudo dkms uninstall btusb/4.3
sudo dkms remove btusb/4.3 --all

Quick Reference

# Scan for devices
bluetoothctl scan on

# Pair, trust, and connect
bluetoothctl trust <MAC>
bluetoothctl pair <MAC>
bluetoothctl connect <MAC>

# Check connection details
bluetoothctl info <MAC>

# Check audio sinks
wpctl status

# Switch to A2DP profile
wpctl set-profile <DEVICE_ID> <A2DP_PROFILE_INDEX>

# Set volume
wpctl set-volume <SINK_ID> 0.7
wpctl set-mute <SINK_ID> 0

# Restart audio stack
systemctl --user restart wireplumber

Environment Tested

  • Ubuntu 24.04 (Noble)
  • Kernel 6.14
  • PipeWire 1.0.5
  • WirePlumber 0.4.17
  • BlueZ 5.x
  • Sony WF-1000XM5 (firmware current as of 2026)
  • External USB Bluetooth adapter: TP-Link (Realtek, BT 5.1)
  • Onboard: MediaTek MT7925 (BT 5.4) — has known driver issues

Related Links

License

MIT

About

Troubleshooting guide for Sony WF-1000XM5 Bluetooth on Linux (Ubuntu/PipeWire/BlueZ)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors