Skip to content

Bluetooth Drivers and Troubleshooting on Ubuntu

This guide covers installing BlueZ, ensuring firmware and kernel modules are loaded, and using bluetoothctl to pair devices.

Terminal window
sudo apt update
sudo apt install -y bluez bluez-tools bluetooth
sudo systemctl enable --now bluetooth
Terminal window
lsusb
lspci -nnk | grep -i bluetooth -A3
lsmod | grep btusb

If btusb is not loaded, try: sudo modprobe btusb.

Terminal window
bluetoothctl
# inside interactive prompt
power on
agent on
default-agent
scan on
# wait for device to appear
pair <MAC>
trust <MAC>
connect <MAC>
  1. Check rfkill: rfkill list all — unblock if soft/ hard blocked.
  2. Check journalctl -u bluetooth -n 200 for daemon errors.
  3. For missing firmware, dmesg | grep -i bluetooth often shows filename; install linux-firmware package or vendor firmware.
  4. If pairing fails, try removing device (remove <MAC>) and re-pair.

This topic is an important part of building a reliable Linux development workflow. Understanding it clearly will make later tasks easier, because it reduces guesswork and helps you recognize when a step is missing or misapplied.

  • Try the commands or configuration shown here in a safe test environment.
  • Compare how the concepts apply across different distributions or tools.
  • Keep a short note of what worked and what failed so you can diagnose future problems faster.
  • Revisit the related article in the series to deepen the connections between topics.
  • Skipping verification steps and assuming the system is configured correctly.
  • Copying commands without adapting paths, package names, or tool versions for your environment.
  • Treating this topic as an isolated tip rather than part of a larger workflow.