bluetooth mouse disconnects

I’m using Debian Jessie (testing). I have a bluetooth mouse (Microsoft Sculpt Comfort) and I can pair it and use it ok, but after some time of inactivity (around 10 minutes) it stops working, I have to manually touch the set discoverable button on the mouse and re-pair it on the command line.

The same mouse I tried on OS X and it works, so it’s not a hardware issue

Kernel 3.14.12-1 (2014-07-11)

I pair the mouse with this command:

sudo hidd --connect 30:59:B7:72:A5:A7

When paired correctly, this is the /var/log/syslog output
Jan  7 15:22:42 desktop hidd: New HID device 30:59:B7:72:A5:A7 (Microsoft Bluetooth Mouse        )
Jan  7 15:22:42 desktop kernel: [103877.102083] hid-generic 0005:045E:07A2.0009: unknown main item tag 0x0
Jan  7 15:22:42 desktop kernel: [103877.102481] input: Microsoft Bluetooth Mouse         as /devices/pci0000:00/0000:00:02.0/usb2/2-3/2-3:1.0/bluetooth/hci0/hci0:42/0005:045E:07A2.0009/input/input51
Jan  7 15:22:42 desktop kernel: [103877.102884] hid-generic 0005:045E:07A2.0009: input,hidraw3: BLUETOOTH HID v1.29 Mouse [Microsoft Bluetooth Mouse        ] on 00:15:83:c8:52:19

After some idle time, this is printed on the same log file:
Jan  7 15:34:34 desktop acpid: input device has been disconnected, fd 20

If I click a mouse button or move it, this gets printed:
Jan  7 15:49:55 desktop bluetoothd[650]: Refusing input device connect: No such file or directory (2)
Jan  7 15:49:56 desktop bluetoothd[650]: Refusing connection from 30:59:B7:72:A5:A7: unknown device

Which seems to indicate that the mouse is still working and trying to tell the OS to re-connect, but it cannot.

This is the udevadm info -p response:

P: /devices/pci0000:00/0000:00:02.0/usb2/2-3/2-3:1.0/bluetooth/hci0/hci0:42/0005:045E:07A2.0004/input/input22
E: ABS=100000000
E: DEVPATH=/devices/pci0000:00/0000:00:02.0/usb2/2-3/2-3:1.0/bluetooth/hci0/hci0:42/0005:045E:07A2.0004/input/input22
E: EV=10001f
E: ID_FOR_SEAT=input-pci-0000_00_02_0-usb-0_3_1_0
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_INPUT_MOUSE=1
E: ID_PATH=pci-0000:00:02.0-usb-0:3:1.0
E: ID_PATH_TAG=pci-0000_00_02_0-usb-0_3_1_0
E: KEY=4837fff072ff32d bf54444600000000 1f0001 30f908b17c007 ffe77bfad9415fff febeffdff3cfffff fffffffffffffffe
E: MODALIAS=input:b0005v045Ep07A2e0129-e0,1,2,3,4,14,    k71,72,73,74,75,77,79,7A,7B,7C,7D,7E,7F,80,81,82,83,84,85,86,87,88,89,8A,8B,8C,8E,90,96,98,9B,9C,9E,9F,A1,A3,A4,A5,A6,A7,A8,A9,AB,AC,AD,AE,B0,    B1,B2,B5,B6,B7,B8,B9,BA,BB,BC,BD,BE,BF,C0,C1,C2,CE,CF,D0,D1,D2,D4,D8,D9,DB,DF,E4,E7,E8,E9,EA,EB,F0,F1,100,110,111,112,113,114,161,162,166,16A,1    6E,172,174,176,178,179,17A,17B,17C,17D,17F,180,182,183,185,188,189,18C,18D,18E,18F,190,191,192,193,195,198,199,19A,1A0,1A1,1A2,1A3,1A4,1A5,1A6,    1A7,1A8,1A9,1AA,1AB,1AC,1AD,1AE,1B0,1B1,1B7,1BA,r0,1,6,7,8,9,a20,m4,lsfw
E: MSC=10
E: NAME="Microsoft Bluetooth Mouse        "
E: PHYS="00:15:83:c8:52:19"
E: PRODUCT=5/45e/7a2/129
E: PROP=0
E: REL=3c3
E: SUBSYSTEM=input
E: TAGS=:seat:
E: UNIQ="30:59:b7:72:a5:a7"
E: USEC_INITIALIZED=55796705

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

There are 3 solutions for this problem. Maybe even combining 2 of them could fix your issue.

Solution 1

Edit the file /etc/bluetooth/input.conf and set the parameter IdleTimeout=0 inside the [General] block.

<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2c5e4343586c425b48495f4758435c">[email protected]</a>:~# vim /etc/bluetooth/input.conf


# Configuration file for the input service

# This section contains options which are not specific to any
# particular interface
[General]

# Set idle timeout (in minutes) before the connection will
# be disconnect (defaults to 0 for no timeout)
IdleTimeout=0

Restart the bluetooth service:
<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="295b46465d69475e4d4c5a425d4659">[email protected]</a>:~# /etc/init.d/bluetooth restart
 * Stopping bluetooth                                                    [ OK ] 
 * Starting bluetooth                                                    [ OK ]

This will prevent disconnections due to timeout from your bluetooth mice and keyboards.

Solution 2

Create an udev rule that will avoid your mouse to autosuspend

<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f98b96968db9978e9d9c8a928d9689">[email protected]</a>:~# vi /etc/udev/rules.d/91-local.rules

ACTION=="add", SUBSYSTEM=="bluetooth", ATTR{product}=="Microsoft Bluetooth Mouse        ", ATTR{power/control}="on"

<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d8aab7b7ac98b6afbcbdabb3acb7a8">[email protected]</a>:~# # udevadm control --reload-rules

Solution 3

This one does not makes me proud, but… Create a script with your hidd connect command:

<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a7d2d4c2d5e7c9d0c3c2d4ccd3c8d7">[email protected]</a>:~# vi /home/user/recconect.sh

#!/bin/bash
sudo hidd --connect 30:59:B7:72:A5:A7

Now, add to your crontab:
<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="93e1fcfce7d3fde4f7f6e0f8e7fce3">[email protected]</a>:~# vi /etc/crontab

*/10   *    *   *   *   root /home/user/recconect.sh

Cheers.

Method 2

The only thing that I had to do to enable (connect) wireless headphones Sony MDR-ZX550BN are in /etc/bluetooth/input.conf

add/uncomment line:

#Enable HID protocol handling in userspace input profile

#Defaults to false (HIDP handled in HIDP kernel module)

UserspaceHID=true

and naturally restart service /etc/init.d/bluetooth restart

P.S. I’m using Debian 8 Jessie

Method 3

Looking at the logs I noticed that every disconnect threw a line with an UPower debug message. It appears that the xfce4-power-manager was using this daemon to poll the trackpad now and then for its battery level. What seems to have fixed the issue for me is to completely disable and uninstall UPower and xfce4-power-manager.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments