I came across a very aggravating problem recently on my Dell XPS 13 L321X laptop. In the past I had used various Linux distributions on this laptop and they worked flawlessly with my Microsoft Arch Mouse. The Arch mouse is one of just a few very newer mice that use Bluetooth LE, and I suspect that had something to do with this issue.
After installing Ubuntu 16.04, as well as Ubuntu 16.10, everything would be fine, except for the fact that my Arch mouse would simply stop working after an intermittent amount of time. At times, it would work for a few minutes, sometimes as long as 15 minutes. But, eventually it would just stop responding. Powering the mouse off and on did not change the behavior, and after this happened, I would be unable to turn Bluetooth off and back on again. The Bluetooth manager would stop responding. It would not work again until a full reboot.
After trying various firmware versions for the Intel 7260 wireless combo card, and at least 4 different Linux Kernels (3.18, 4.08, 4.10, and 4.11) I found the problem appeared to be related to the TLP package. The TLP package provides advanced power management and battery savings for laptops running Linux.
Ultimately, for the time being, the fix is to disable the power management features TLP applies to to the Intel 7260 wireless card. Do do this, first obtain the device ID of the wireless bluetooth combo card using lsusb.
Here is what it looks like on my laptop:
mike@xps321x-mate1610:~$ lsusb Bus 002 Device 003: ID 8087:07dc Intel Corp. Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 1bcf:288f Sunplus Innovation Technology Inc. Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
In my case, it was pretty obvious the USB device ID for my Intel 7260 card was 8087:07dc.
Bus 002 Device 003: ID 8087:07dc Intel Corp.
If you are not using the same Intel card, but having this issue with another card, you can go here, to the gowdy USB-ID database lookup site, or if that site is not working, this linux-usb.org page lists almost all vendor ID’s, which will help you narrow down the results on your system.
After getting the USB-ID of the Intel 7260, edit the TLP configuration file, located at /etc/default/tlp, to include the following line to blacklist the USB device from being managed by TLP.
sudo nano /etc/default/tlp
Scroll down to until you see USB_BLACKLIST_WWAN=1, and add the following line below (They are mostly in alphabetical order. If you’re not using the Intel 7260 Wireless Combo card, change 8087:07dc to match your USB-ID):
Here is what mine looks like
# Exclude listed devices from USB autosuspend (separate with spaces). # Use lsusb to get the ids. # Note: input devices (usbhid) are excluded automatically (see below) #USB_BLACKLIST="1111:2222 3333:4444" # WWAN devices are excluded from USB autosuspend: # 0=do not exclude / 1=exclude USB_BLACKLIST_WWAN=1 USB_BLACKLIST=”8087:07dc”
Now, save and exit. Reboot for the new settings to take effect.
After these steps, my bluetooth no longer hangs and disconnects my Microsoft Arch mouse after a few minutes. If you have any questions, please feel free to ask in the comments below and I’ll do my best to help. Thanks!