Bluetooth

This article describes the setup of bluetooth controllers.

Prerequisites
Bluez uses udev, so set it up first.

Kernel
You need USB and/or PC-Card support. Also you need to activate the following kernel options:

Software
Portage knows the global USE flag bluetooth for enabling support for Bluetooth in other packages. Enabling this USE flag will pull in automatically:

The USE flags of bluez are:

After setting this you want to update your system so the changes take effect:

Service
You can now start bluetooth:

To start bluetooth at boot time, add it your default runlevel:

Permissions
If you have the USE flag acl enabled globally and are using ConsoleKit (i.e you're using a desktop profile) permissions to bluetooth devices will be handled automatically.

A broader solution is to add the user you want to be able to access bluetooth devices to the plugdev group:

Adapter Information
Check that your bluetooth adapter is working.

Where hci0 is the first device ID and 60:D8:19:B6:C3:1F is the MAC address.

Device Attach/Pairing
Before a device can be used, it must be attached (paired in Bluetooth-lingo). This is done by entering a PIN (or other code) on both devices.

In order to pair, you must first have the interaction agent active. Most desktop environments have bluetooth integration so will automatically support the interaction agent. For example, KDE has.

Using the simple-agent
Configuration can either be performed using the BlueZ test programs (available if you enable the test-programs USE flag for bluez), or by using the D-Bus API. The first way is described here.

The first step to do is to retrieve the address of the mouse. Most of the devices need you to press a special button, possibly for several seconds, to render them discoverable.

Where 00:1F:20:1D:1B:4B is the MAC address for your device.

The second step to do is to pair the device:

Enter a PIN and press, then enter the same PIN at the device. If you don't know the PIN, then it is probably 0000. It could be 1234.

If you get the following output, it means that you already have an interaction agent running on your system:

The third step is to mark the device as trusted so it can connect automatically:

That should return you to a prompt with no output. To test if it's trusted issue "bluez-test-device trusted 00:1F:20:1D:1B:4B" without yes:

If you get 1 then it is trusted. 0 is the default value (not trusted) - you want that to change to 1 (trusted).

The fourth step is to connect the device (this only needs to be done once, it will be done automatically after that):

This should also return you to a prompt, and the device should now be paired and working.

You are now ready to proceed.

Desktop integration

 * for KDE
 * for GNOME, Xfce, GTK+