If your Bluetooth headset plays music in Ubuntu 24.04 but its microphone is missing or silent, start with Settings > Sound > Input, select the headset, and confirm that its input level moves when you speak. If it does not appear there, check the headset’s call profile (HSP/HFP) and the PipeWire Bluetooth components before changing drivers. These checks help distinguish a wrong input selection from a Bluetooth or audio-session problem.
For example, imagine a user whose headset plays music in Firefox but is not available in a meeting app. This is an illustrative scenario, not a test result. The steps below use it to show which fixes are useful for each symptom.
Why music can work while the microphone does not
Ubuntu Desktop uses PipeWire as its audio server. Bluetooth headsets can expose different audio profiles: A2DP is designed for higher-quality playback, while HSP/HFP provides the two-way audio needed for calls, including the headset microphone. Switching to headset mode can reduce playback quality. That trade-off is expected; it does not necessarily mean the headset or Ubuntu is broken. The Ubuntu Audio documentation describes PipeWire as the default sound server on Ubuntu Desktop from 22.10 onward, and WirePlumber documents the Bluetooth profiles and the quality difference between headset mode and A2DP.
Some headsets and applications switch profiles automatically when recording begins. Others may require selecting a headset profile or input device. A headset can also be paired for Bluetooth control while its audio source remains unavailable, so check both Bluetooth connection status and Sound input.
Choose the fix that matches your priority
| What you need | Recommended choice | Trade-off |
| Headset mic for calls | Select the headset microphone and a Headset or Hands-Free HSP/HFP profile. | Music playback may sound narrower or lower quality during the call. |
| Best music quality while speaking | Keep A2DP for the headset and choose the laptop, webcam, or USB microphone as input. | You use two audio devices, and the microphone may sound different from the headset mic. |
| Fastest recovery after a one-time glitch | Reconnect the headset, then restart the user audio services if needed. | Restarting interrupts current playback and recording. |
| Device missing after an update or fresh install | Check Ubuntu package availability and install the Bluetooth SPA plugin if it is absent. | Package changes require administrator privileges and should use Ubuntu repositories. |
1. Confirm the headset is connected and microphone-capable
Charge the headset, turn it on, and disconnect it from a phone or another computer that may have claimed its active connection. Open Settings > Bluetooth and confirm that the headset is connected. If it is not paired, put it into pairing mode using the manufacturer’s instructions, then add it from Ubuntu’s Bluetooth panel. Ubuntu’s Bluetooth guide covers connecting devices from the desktop settings.
Check the headset’s documentation or controls to confirm that it includes a microphone and is not muted by a hardware switch. If the microphone works on a phone but does not show up on Ubuntu, continue to the audio profile checks. This test separates a headset or connection problem from a Linux audio-routing problem.
2. Select the headset under Sound input
Open Settings > Sound, scroll to Input, and select the Bluetooth headset microphone if it is listed. Speak normally and watch the input-level indicator. Also check that the input is not muted and that its level is raised. Ubuntu’s microphone help page documents this input selection and meter check.
If the meter responds here but the meeting app remains silent, the operating system can capture audio; skip to Step 3. If the headset is listed but the meter stays still, check its profile and the physical mute control. If it is absent entirely, continue with the profile and service checks.
3. Check the app’s input device and microphone access
Many meeting, recording, and browser applications have their own microphone selector. Choose the Bluetooth headset explicitly in the application instead of relying on “Default.” In a browser, verify microphone permission for the relevant site and make sure the correct browser tab or app is using the headset. Close and reopen the call or recording after changing the input, since some applications enumerate devices only when a session starts.
Use the Ubuntu Sound input meter as the comparison point: if that meter moves but the app’s test meter does not, the likely issue is app selection or permission rather than Bluetooth pairing. For music playback with a separate mic, set output to the headset and input to the laptop or USB microphone.
4. Choose a headset profile when the microphone is missing
Install and open PulseAudio Volume Control if you need a more detailed profile selector:
sudo apt update
sudo apt install pavucontrol
pavucontrol
In Configuration, find the Bluetooth headset and select a profile labeled Headset Head Unit, Hands-Free, or similar, if available. Names vary by device and software version. Then return to Input Devices and choose its microphone. Do not select an A2DP-only profile when you need the Bluetooth headset microphone: A2DP is a playback profile and does not provide the call microphone path.
If you prefer clear music while talking, leave the headset on A2DP and use another microphone. If no HSP/HFP option is present, do not force unrelated profiles or copy configuration snippets for a different WirePlumber version; first check that the Bluetooth audio component is installed and the headset supports a call profile.
5. Refresh PipeWire and WirePlumber
A user audio service can get stuck after a headset reconnects or an application changes profiles. Close audio applications, then restart the services for the logged-in desktop user:
systemctl --user restart pipewire pipewire-pulse wireplumber
This briefly interrupts all user-session audio. Reconnect the headset, reopen Sound settings, and check Input again. To see whether the services are active, run:
systemctl --user --no-pager --full status pipewire pipewire-pulse wireplumber
Ubuntu 24.04 uses the PipeWire audio stack on the desktop, but installations can be customized. If one service is not found, do not install a random service from an online command; inspect which audio server is actually in use before making package changes.
6. Check the Bluetooth audio package and updates
PipeWire relies on Bluetooth support components to expose headset audio. Check whether the Bluetooth SPA plugin is installed and available from the enabled Ubuntu repositories:
apt policy libspa-0.2-bluetooth
If the package is available but not installed, install it from the configured Ubuntu archive:
sudo apt install libspa-0.2-bluetooth
Then restart the audio services from Step 5 or reboot, reconnect the headset, and inspect the input list. If APT reports that the package is unavailable, review enabled software sources and the Ubuntu release before proceeding. Avoid adding an unofficial PPA as a first fix, because replacing core audio packages can create version conflicts and make troubleshooting harder.
Install normal updates through Software Updater or your organization’s approved update process. A newer kernel or audio package can fix a device-specific regression, but a broad driver replacement is not a reliable first step. Record the current kernel and package versions before changing them if the issue began immediately after an update.
7. Remove and pair the headset again
If Bluetooth shows the device connected but its audio profile never appears, remove it from Settings > Bluetooth, put the headset back into pairing mode, and pair it again. Ensure it is not connected to another host at the same time. Re-pairing clears the desktop’s saved connection for that device, so it can help with stale pairing data; it will not add a microphone feature that the headset does not support.
8. Gather diagnostics if the mic is still missing
Check whether PipeWire can see the headset and audio nodes:
wpctl status
pactl info
Look for the headset under devices, sources, or audio nodes. In pactl info, a PulseAudio-compatible server backed by PipeWire may identify itself as “PulseAudio (on PipeWire).” The exact output varies, so use these commands as clues rather than as a pass/fail test. For service errors, inspect the user journal:
journalctl --user -b -u pipewire -u pipewire-pulse -u wireplumber --no-pager
Share only relevant error lines when asking for support; redact usernames, device identifiers, and other private details. If the headset microphone works in another operating system but no HSP/HFP profile or input node appears after package and service checks, include the headset model, Bluetooth adapter model, Ubuntu point-release, and the command output in a support request.
Verify the result and select a lasting setup
Speak into the headset and confirm the Ubuntu Sound input meter reacts. Then make a short recording or use the target app’s microphone test. Confirm the app is using the same input device. If the call works but music quality drops, that points to the HSP/HFP profile trade-off. For meetings where audio fidelity matters, keeping A2DP output and using a separate USB or built-in microphone may be the better fit.
Use the desktop profile selector first, restart user audio services only when a session appears stuck, and install packages only when repository checks show a missing component. The exact profile names and automatic-switch behavior can vary with the headset, Ubuntu updates, and WirePlumber version. Ubuntu’s desktop sound controls and the upstream PipeWire/WirePlumber documentation are the best references for the version actually installed.
Sources