bluez for Debian
================

The /dev/rfcomm* serial devices entries are automatically created for using
RFCOMM with legacy applications -- see rfcomm(8).  Users must be in group
'dialout' to have privileges to use these devices.

You can edit /etc/bluetooth/rfcomm.conf to have some rfcomm devices bound
automatically at boot time.

If you wish to install PCMCIA card services support for your Bluetooth
devices you should install the bluez-pcmcia-support package.

Some USB dongles require firmware to make them work: bluez-firmware from the
"non-free" section provides the required firmware.


Mailing lists and documentation
-------------------------------
The old sourceforge lists have been discontinued, the new lists can be found at:

http://www.bluez.org/development/lists/

plus a wiki at: http://wiki.bluez.org/

PIN (or passkey) management
---------------------------
Interaction with the local user can be required while BT connection is
being established (pairing process) and the PIN is not yet known or
needs to be changed.

To retrieve the passkey (or PIN) from the user a service program (agent)
running in user's interactive session needs to be prepared and listen
for requests of the bluez daemon when pairing begins.

Examples of such programs are kblueplugd (kdebluetooth package) and
bluetooth-applet (bluez-gnome or gnome-bluetooth packages). A minimal
command-line agent is also provided by bluez-simple-agent.

For example, you can execute bluez-simple-agent as follows.

$ bluez-simple-agent hci0 XX:XX:XX:XX:XX:XX (Address of target device)
RequestPinCode (/org/bluez/27392/hci0/dev_XX_XX_XX_XX_XX_XX)
Enter PIN Code: 0000
Release

Headset support
---------------
There's support for bluetooth headset both via ALSA and GStreamer, respectively
via bluez-alsa and bluez-gstreamer packages.

ALSA
~~~~
You might setup your headset by discovering it with gnome-bluetooth, once setup
add the following configuration to ~/.asoundrc:

	pcm.bluetooth {
		   type bluetooth
		   device <BT address>
	}

then audio can be played with supported player, e.g. mplayer:

	mplayer -ao alsa:device=bluetooth

See also: http://wiki.bluez.org/wiki/HOWTO/AudioDevices

Legacy daemons
--------------
The bluez-compat package includes old legacy daemons such as dund, pand and hidd
for enabling dial-up, ethernet networking and input devices over bluetooth.

Bluetooth Networking Quickstart with legacy daemons
+++++++++++++++++++++++++++++++++++++++++++++++++++
1. Start dund and pand at boot time
 
2. PPP over RFCOMM

This is what most devices call "LAN Access" or "Serial Access".  It
uses normal PPP over a serial connection.  Most PDAs will be able to
connect using this method.

Use the 'dund' tool to accept incoming connections.  Configure pppd
as per the instructions in the ppp package.  Then run:

dund --listen --sdp --nodetach

Try and connect your device and you'll see something like:

dund[9801]: DUN daemon ver 1.1pre4
dund[9811]: New connection from 00:02:31:24:17:6A

The --sdp option causes the DUN access to be advertised to other
devices via the SDP protocol.  Most devices need this in order to be
able to connect.

Run dund --help to see the various other options available to you.

If you want to make an outgoing connection using PPP, for instance to
a mobile phone, use the 'rfcomm' program from bluez-utils to bind a
/dev/rfcommX serial port to the phone, and then then use pppd as you
would with a normal modem.

3. PAN

The 'pand' tool allows you to use ethernet style networking over
Bluetooth.  It creates a network interface on your machine that can be
configured in the same way normal network devices are.

For full details see the PAN HOWTO at
<http://bluez.sourceforge.net/contrib/HOWTO-PAN>

Keyboard and mouse support
++++++++++++++++++++++++++++++++++++
hidd daemon is included in a bluez-compat package. 
We use bluez-simple-agent and bluez-test-input in bluez now.

1. Discover you mouse or keyboard bluetooth address (bdaddr) by running
   "hcitool scan".

2. Start bluez-simple-agent

    $ sudo bluez-simple-agent hci0 <bdaddr>
    RequestPinCode (/org/bluez/22302/hci0/dev_00_XX_XX_XX_XX_XX)
    Enter PIN Code: 0000 <-- Please input PIN code
    Release
    New device (/org/bluez/22302/hci0/dev_00_XX_XX_XX_XX_XX)

    Bluetooth mouse set simple PIN code as "0000".
    PIN code are different depending on mouse. 
    Please check the PIN code of your mouse.

3. With bluez-test-device, set *trusted* to the device.

    $ sudo bluez-test-device trusted <bdaddr> yet

	When you did not execute this, you use bluez-test-input after suspend
	and resume (and reboot) have to connect a device again.

4. With bluez-test-input, connected to the device.

    $ sudo bluez-test-input connect <bdaddr>

NOTE: If you want to use hidd daemon, please install bluez-compat package.

   You must then connect to your keyboard or mouse using 
   "sudo hidd --connect <bdaddr>".  
   On first connection, pairing is likely and you should
   press "connect" button on mice/keyboard, if any.  Mice normally have a
   preset PIN which should be in the manufacturer's documentation, try 0000.
   For keyboards, type the PIN on the Bluetooth keyboard and hit enter, and
   then supply it to the passkey agent 
   (using a cable-attached keyboard. e.g. bluez-simple-agent).
   In future your keyboard or mouse should reconnect to your computer

Sound (alsa) support
-------------------------------
Note:
From Bluez 4.96, you also need to add to /etc/bluetooth/audio.conf:

[General]
    Disable=Media
    Enable=Socket
