Bluetooth mouse

From ArchWiki
Revision as of 14:44, 8 January 2014 by Chazza (talk | contribs) (Bluez5 instructions)
Jump to navigation Jump to search

This article describes how to set up a Bluetooth mouse through the command line without relying upon a graphical application.


Install the bluez package which contains the current Linux bluetooth stack (Bluez5). You may also want to install bluez-utils which provides the bluetoothctl utility. See Bluetooth for more information.

If you would prefer to configure bluetooth through the older Bluez4 stack then install the bluez4AUR package from the AUR. Please consult the Bluez4 article for more information.

Warning: Bluez4 has been deprecated. It is strongly recommended that you use Bluez5 instead.

Bluez5 instructions

Tip: Ensure that the bluetooth daemon is started before continuing.

Bluez5 provides the bluetoothctl utility which provides a simple interface for configuring bluetooth devices.

The text below is an example of how you can connect a bluetooth mouse using bluetoothctl:

 # bluetoothctl
 [bluetooth]# list
 Controller <cmac> BlueZ 5.5 [default]
 [bluetooth]# select <cmac>
 [bluetooth]# power on
 [bluetooth]# scan on
 /// enable scanning mode on your mouse
 [bluetooth]# devices
 Device <mmac> Name: Bluetooth Mouse
 [bluetooth]# trust <mmac>
 [bluetooth]# pairable on
 [bluetooth]# pair <mmac>
 [bluetooth]# connect <mmac>

In order for the device to start on boot you may have to create a udev rule. Please see Bluetooth#Bluetoothctl for more information.

Bluez4 instructions

The instructions discussed beyond this point concern Bluez4.

kernel modules

No additional actions are necessary if the bluetooth service is started using systemd. If it does not work try following.

The command

# modprobe -v btusb bluetooth hidp l2cap

loads the kernel modules you need, if they were not loaded automatically.


The following command should show your bluetooth adapter:

# hciconfig
hci0:  Type: BR/EDR  Bus: USB
       BD Address: 00:22:43:E1:82:E0  ACL MTU: 1021:8  SCO MTU: 64:1
       RX bytes:1062273 acl:62061 sco:0 events:778 errors:0
       TX bytes:1825 acl:11 sco:0 commands:39 errors:0

Configure Bluetooth Mouse

The method described here is based in three steps, in this order:

  1. Make the PC learn about the bluetooth mouse.
  2. Grant the mouse permissions to connect.
  3. Make the mouse learn about the PC.

Search your mouse

First make your mouse discoverable. For example some mouse need to press a button. Then issue the following command as root:

# hcitool scan
Scanning ...
        00:07:61:F5:5C:3D       Logitech Bluetooth Mouse M555b

Your mouse bluetooth address will be similar to 12:34:56:78:9A:BC. You may also find it in the documentation or on the mouse itself.

Connecting the mouse

hidd --search
hcitool inq

to scan the device (you may need to use su -c or sudo)

hidd --connect <bdaddr>

to connect the device.

hidd --show

will show your currently connected devices. The mouse should show up in this list. If it does not, press the reset button to make it discoverable.

Note: If you have the ipw3945 module loaded (wifi on HP computer) bluetooth wont work.

Connecting the mouse at startup

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: This section of the article discusses instructions for the sysvinit init system. Sysvinit has been replaced by Systemd. (Discuss in Talk:Bluetooth mouse#)

Edit /etc/conf.d/bluetooth:

# Arguments to hidd
HIDD_OPTIONS="--connect <enter here your bluetooth mouse address>"

and test the new settings:

/etc/rc.d/bluetooth stop
hidd --killall (drop mouse connection)
/etc/rc.d/bluetooth start

Note: The above instructions to start the mouse at startup do not work with the now outdated 3.11 bluetooth packages. New versions such as the current (3.32) packages are not affected. If you are using an older version, then to start the mouse at startup, add:

hidd --connect <enter here your bluetooth mouse address (No capitals!!!)>

to your /etc/rc.local file.

Note #2: You can connect any bluetooth mouse and/or keyboard without any further configuration and without knowing the device address. You can do it by adding the --master and/or --server option in HIDD_OPTIONS depending on your device.


Mouse lag

If you experience mouse lag you can try to increase the polling rate. There is a wiki article describing the procedure: Mouse Polling Rate.

Problems with the USB dongle

If you have trouble with your USB dongle, you may also want to try

# modprobe -v rfcomm

At this point, you should get an hci0 device with

# hcitool dev

Sometimes the device is not active right away - try starting the interface with

# hciconfig hci0 up

and searching for devices as shown above.