How to improve weak Bluetooth signal on a Linux laptop?

Solution 1:

2022-03-11 update

Today I remembered about this question. I don't know what changed, but after some testing I don't appear to have any signal strength issues anymore, both with open and closed laptop lid. Since May 2021, the laptop got an upgrade (unrelated to Bluetooth), during which its insides were cleaned – only minor dusting, nothing that should interfere with the signal. If it was a software issue, my current combination of Linux kernel and bluez package doesn't have it:

$ uname -svrpi
Linux 5.13.0-28-generic #31~20.04.1-Ubuntu SMP Wed Jan 19 14:08:10 UTC 2022 x86_64 x86_64
$ apt show bluez 2>/dev/null | head -2 
Package: bluez
Version: 5.53-0ubuntu3.5

Old answer

The solution to my problem is: open the laptop lid. I'm using external monitor, keyboard, and mouse. The laptop lid is almost always closed. However, when the lid is opened, there are no Bluetooth issues which were described in the question.

I guess that when I got Bluetooth to work:

  • Software Issue: I know that this is a software issue, because recently after some combination of different invocations of bluetoothctl, rfkill, and sudo systemctl restart bluetooth.service the issue went away. Unfortunately, the issue came back when I rebooted the OS, and I haven't been able to reproduce this workaround since.

the laptop was opened just by accident.