Bluetooth mouse

From ArchWiki
Jump to: navigation, search

This article describes how to set up a Bluetooth mouse manually with no desktop assistance for Bluetooth. For example, a minimalist XFCE installation.

Prerequisites and tested hardware

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.

For the first two steps the utility called dbus-send is used (it is provided by dbus-core 1.2.24, a bluez dependency). For the last step we'll use the hidd tool (from bluez).

At least in the above reported bluez, dbus and X.Org versions it is not necessary to edit any system configuration file (in fact, the hidd service can perfectly be disabled in the bluetooth configuration).

Required software

You need the bluez package from the extra repository.

Configuration

The pertinent options in /etc/conf.d/bluetooth are

HIDD_ENABLE=true

after that, start bluetooth services with

# systemctl enable bluetooth.service
# systemctl start bluetooth.service

If you don't use systemd use following command instead

/etc/rc.d/bluetooth start

Finding out your mouse's bdaddr

It is of the form 12:34:56:78:9A:BC. Either find it in the documentation of your mouse, on the mouse itself or with the hcitool scan command.

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 weren't loaded automatically.

(See below for some tips if you're stuck at this point)

Connecting the mouse

hidd --search
hcitool inq

are good for device scanning (I needed to use sudo for 'hidd --search' to automatically connect mouse, searching worked even without sudo).

hidd --connect <bdaddr>

to actually connect.

hidd --show

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

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

Connecting the mouse at startup

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.

Troubleshooting tips

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.