Linux Commands

Linux Bluetooth Not Working Troubleshooting

Issues with Bluetooth connectivity in Linux go way back in time. Many users have experienced issues sharing their documents. Others have had issues connecting their PCs to their handhelds or headphones to enjoy their desired playlists or bingeing on videos. This issue still pertains to the recently released Ubuntu LTS versions. The Linux forums are full of user complaints regarding this matter. So, in this article, we provide the solution to this issue and resolve it once and for all.

Determine If Bluetooth Is Working

First and foremost, check if our Bluetooth service is up and running. Despite being a flexible and powerful operating system, Ubuntu has its contretemps with Bluetooth connectivity. One of the common ones is the need to reconnect our Bluetooth when our computer wakes up from sleep. This can disturb the flow of data transfer on whatever task we were performing.

So, we check if the Bluetooth service at the backend is running properly. For that, we type in the following command:

$ sudo systemctl status bluetooth.service

As the status of connectivity suggests, our Bluetooth tethering is inactive. Hence, we should enable it so that it automatically starts when we boot up using the command:

$ sudo systemctl enable bluetooth.service

After that, start the session again by using systemctl command as shown below:

$ sudo systemctl start bluetooth.service

And to ensure that it starts automatically upon boot, we type:

$ sudo systemctl enable bluetooth

If you still have a problem connecting, it is always a good idea to check if your device is in the “trusted devices” list on your system. Also, re-pairing the Bluetooth device resolves the issue sometimes, so be sure to try these options to be on the safe side.

If the procedure demonstrated above did not work, that means our Bluetooth connection is probably being interrupted, and it needs to restart. Then, we continue in the sequential method demonstrated below.

First, we restart Bluetooth using the following command:

$ sudo service bluetooth restart

Having done that, we load the modules from the kernel using the command:

$ sudo rmmod btusb

If the module is not loaded, you can use this link to find the command that enables it. Now, we enable Bluetooth by using the same command:

$ sudo systemctl enable bluetooth

This should enable your Bluetooth device.

Using Bluez

The standard procedure to enable Bluetooth on your device is to install “Bluez”. Bluez is the official Bluetooth protocol software for Ubuntu and the other Linux distributions, such as Kali and Debian. If you happen to have Bluetooth connectivity issues on those distros, using Bluez will resolve your issue for those systems.

If your Bluetooth is not working, it is likely that Bluez is not properly responding or is simply outdated. In any case, we can uninstall Bluez by using the command:

$ sudo apt-get remove bluez

And once it is uninstalled, we reinstall the package by using the command:

$ sudo apt install bluez

The primary purpose of this approach was so we can troubleshoot the prevalent problem in our Bluetooth software protocol. It may have some missing or corrupted packages which could be the root of the issue. In any case, once we have reinstalled the Bluez package, we have the verified files and an updated version on our system.

As we can see, the latest version of Bluez is installed in our system.

Finally, we use the enable command to activate the Bluetooth tethering feature:

$ sudo systemctl enable bluetooth

Now, start Bluetooth on your system:

$ sudo systemctl start bluetooth

And finally, check the activity status using:

$ sudo systemctl status bluetooth.service

Using Update

We can enable our Bluetooth feature using the same old update option traditional to Linux users. Try this method in case the Bluez reinstallation method did not work, though it’s most likely it will work.

First, type in the following command to update your system:

$ sudo apt-get update

Having done that, run the upgrade command to install the required packages and repositories:

Next, start the Bluetooth by typing in the following command:

$ sudo systemctl start bluetooth

Finally, we check the status of our Bluetooth connectivity by typing in the following instruction:

$ sudo systemctl status bluetooth

Now, we can see that our Bluetooth service is up and running.

Finally, to keep our Bluetooth connectivity smooth, we use the “rfkill” command which will unblock the feature of Bluetooth:

$ rfkill unblock bluetooth

Other Reasons for Connectivity Issues

There can be several reasons why you cannot connect a Bluetooth device to your system such as:

“Unrecognized hardware”

The Dongle or device may not be recognized by the system. This issue usually arises because the drivers for the respective adapter are not installed. Some adapters are also not recognized by Linux. In that case, you should find a compatible adapter.

“The computer does not have a Bluetooth adapter”

Some computers do not come with a Bluetooth adapter. In that case, you can purchase an adapter and use it for Bluetooth.

“Untrusted or blocked connection”

There are some Bluetooth devices that block the connections by default. Or they may require you to change certain settings for connections to be made available. So ensure your system is set to allow conditions. This is a frequent case in Linux. You can check up those settings manually or using the terminal.

Conclusion

Whether enjoying your favorite playlist, bingeing on Netflix shows and movies, or straight up transferring documents and media, an issue in Bluetooth connectivity can impede our data transfer or bar us from that refreshing break we were looking forward to. Therefore, it is desirable to troubleshoot all connectivity issues so you can have a peaceful and trouble-free interaction with your system. An option is the use of the Bluez software to enable your Bluetooth connectivity. We hope your issue was resolved, and there are no further connectivity issues.

About the author

Zeeman Memon

Hi there! I'm a Software Engineer who loves to write about tech. You can reach out to me on LinkedIn.