Clarify A2DP profile troubleshooting steps and codec configuration checks

This commit is contained in:
hanku 2025-05-28 00:20:02 +09:00
parent 56141ab1d3
commit 526274f063

View file

@ -1,7 +1,7 @@
= How to troubleshoot sound problems = How to troubleshoot sound problems
Hank Lee ; The Music and Audio SIG Hank Lee ; The Music and Audio SIG
:revnumber: F40 :revnumber: F40
:revdate: 2025-05-27 :revdate: 2025-05-28
:category: Administration :category: Administration
:tags: Troubleshooting, Sound, Multimedia :tags: Troubleshooting, Sound, Multimedia
@ -165,7 +165,7 @@ Make sure the necessary PipeWire components are installed and working correctly.
[source, bash] [source, bash]
---- ----
sudo dnf reinstall pipewire pipewire-pulseaudio pipewire-alsa wireplumber $ sudo dnf reinstall pipewire pipewire-pulseaudio pipewire-alsa wireplumber
---- ----
Then reboot your system. Then reboot your system.
@ -176,16 +176,16 @@ Ensure that the PipeWire and WirePlumber services are active.
[source, bash] [source, bash]
---- ----
systemctl --user status pipewire $ systemctl --user status pipewire
systemctl --user status wireplumber $ systemctl --user status wireplumber
---- ----
If they are not running, enable them: If they are not running, enable them:
[source, bash] [source, bash]
---- ----
systemctl --user enable --now pipewire $ systemctl --user enable --now pipewire
systemctl --user enable --now wireplumber $ systemctl --user enable --now wireplumber
---- ----
=== Step 3: Verify User Permissions === Step 3: Verify User Permissions
@ -201,7 +201,7 @@ If `audio` is missing, add it:
[source, bash] [source, bash]
---- ----
sudo usermod -aG audio $USER $ sudo usermod -aG audio $USER
---- ----
=== Step 4: Reset configuration files === Step 4: Reset configuration files
@ -210,8 +210,8 @@ If the audio configuration is corrupted, you can reset it by moving the old conf
[source, bash] [source, bash]
---- ----
mv ~/.config/pulse ~/.config/pulse_backup $ mv ~/.config/pulse ~/.config/pulse_backup
mv ~/.config/pipewire ~/.config/pipewire_backup $ mv ~/.config/pipewire ~/.config/pipewire_backup
---- ----
Then reboot your system. Then reboot your system.
@ -324,7 +324,7 @@ NOTE: If the device never appears in scans (no MAC shown), this is often **not s
[source, bash] [source, bash]
---- ----
bluetoothctl $ bluetoothctl
power on power on
agent on agent on
default-agent default-agent
@ -340,14 +340,14 @@ connect <MAC>
[source, bash] [source, bash]
---- ----
bluetoothctl remove <MAC> $ bluetoothctl remove <MAC>
---- ----
* Restart Bluetooth service. * Restart Bluetooth service.
[source, bash] [source, bash]
---- ----
sudo systemctl restart bluetooth $ sudo systemctl restart bluetooth
---- ----
For some devices, make sure to hold the pairing button until rapid blinking starts. For some devices, make sure to hold the pairing button until rapid blinking starts.
@ -366,7 +366,7 @@ For some devices, make sure to hold the pairing button until rapid blinking star
[source, bash] [source, bash]
---- ----
pactl info | grep Server $ pactl info | grep Server
---- ----
* To confirm whether the A2DP profile is missing and only HSP/HFP is available, use the following command. * To confirm whether the A2DP profile is missing and only HSP/HFP is available, use the following command.
@ -380,7 +380,7 @@ Then, look for the Profiles section under your Bluetooth device. You can filter
[source, bash] [source, bash]
---- ----
pactl list cards | grep -i 'profile\|name:' $ pactl list cards | grep -i 'profile\|name:'
---- ----
If the output shows only headset_head_unit or similar HSP/HFP entries and no a2dp_sink, it means A2DP is not available. This typically indicates: If the output shows only headset_head_unit or similar HSP/HFP entries and no a2dp_sink, it means A2DP is not available. This typically indicates:
@ -412,13 +412,53 @@ Expected Output (A2DP Present):
If A2DP is missing, you may need to review the bluetooth.lua.d configuration in your WirePlumber setup or check codec support. If A2DP is missing, you may need to review the bluetooth.lua.d configuration in your WirePlumber setup or check codec support.
Look for the configuration file.
[source, bash]
----
$ ls ~/.config/wireplumber/bluetooth/51-bluez-config.lua
----
Back up your config file before editing, so you can easily restore the original if something goes wrong.
[source, bash]
----
$ cp ~/.config/wireplumber/bluetooth/51-bluez-config.lua ~/.config/wireplumber/bluetooth/51-bluez-config.lua.bak
----
Open the configuration file in a text editor.
[source, bash]
----
$ nano ~/.config/wireplumber/bluetooth/51-bluez-config.lua
----
Create your own config file (minimal AAC-enabled example)
[source, lua]
----
bluez_monitor.properties = {
["bluez5.enable-sbc-xq"] = true,
["bluez5.enable-msbc"] = true,
["bluez5.enable-hw-volume"] = true,
["bluez5.codecs"] = {"sbc", "aac"}
}
----
Save the file. Restart WirePlumber (if running as user service).
[source, bash]
----
$ systemctl --user restart wireplumber
----
*Fix* *Fix*
* Manually switch to A2DP profile. * Manually switch to A2DP profile.
[source, bash] [source, bash]
---- ----
pactl set-card-profile <card> a2dp-sink $ pactl set-card-profile <card> a2dp-sink
---- ----
* Ensure required packages are installed. * Ensure required packages are installed.