Subject: HEADS UP: Bluetooth
To: None <>
From: Iain Hibbert <>
List: current-users
Date: 07/26/2006 19:47:31
   Just commited has been an update to Bluetooth that has broken
the API of bluetooth devices in the system. The bluetooth 'hub' is
removed as it was going to be too limiting in the future and I
thought it better to break it now before the 4.0 release gets
under way.

Bluetooth SCO Audio (btsco(4)) and Human Interface Devices (bthidev(4))
now attach singly to a btdev(4) using Jasons new property lists for
configuration passed through a /dev/btdevN ioctl. This means that
the ABI will not need to change again.

You will need to update and rebuild at least usr.sbin/btcontrol to
use the new API. I also have added a rc.d/btcontrol script to attach
devices at boot time, so if you had entries in rc.local to do that
you can remove them.

At the same time I have removed the bluetooth.conf(5) file and
the parse routines from libbluetooth(3) since proplib has XML internalize
& externalize routines that we use instead. The bluetooth.conf file is
no longer needed, btcontrol(8) keeps device data in a private
/var/db/btdev.xml file that it manages. You will need to create new
device configurations, see btcontrol(8).

Related to this is an update to bthcid(8), we now use the property
list and parser for storage of link keys, and link keys are matched
against local and remote device address. bthcid cannot read the old
format so you will need to pair to your bluetooth devices again.

One other change is that bthset(4) device is now renamed to btsco(4)
since it is more properly SCO Audio rather than just for Headsets. Some
incidental changes here mean that it should be possible to support
incoming audio connections, eg for Hands Free Profile - bthset(1)
remains and will need to be rebuilt.

The HOWTO document stored at

has been updated to reflect the new regime, as have the man pages.

Heads Down,