Bluetooth Networking Support



This specification describes goals for Bluetooth support in the Breezy Badger release of Ubuntu.


Bluetooth is finally emerging as a robust and widely supported local area communications technology, for short-distance wireless data transfer. Bluetooth is being used for communications with cellphones, cameras, headsets and microphones, PDA's and storage devices. Many of these are associated with mobile computer usage, and Ubuntu aims to be the best OS for the mobile professional, making slick Bluetooth support essential.

Scope and Use Cases

We would like to cover the following use cases:

  • Joe has bought a new GSM cellphone, which includes Bluetooth networking and a GPRS account. Using only GUI tools, with a minimum of clicks, he connects to the Internet from his Ubuntu laptop via his cellphone and Bluetooth. Ubuntu handles the detection of the laptop, assignment of IP addresses to create point to point connection between phone and laptop, and the initialization of network routes to the net via the phone.
  • Sarah has a new Bluetooth headset. With minimal effort she configures her laptop to use that Bluetooth headset for VoIP calls using Shtoom. She uses only GUI tools to setup the headset and activate it or disable it.
  • Pete has bought a new Palm PDA, with Bluetooth support. With minimal effort and using only GUI tools he backs up all the data from his old USB Palm onto his laptop. He then restores that data onto the new Palm, using Bluetooth wireless networking.
  • Andy has purchased a new Bluetooth wireless mouse. With only two clicks he enables the use of the mouse in Ubuntu.

Implementation Plan

  • Integrate GPE bluetooth tools into Ubuntu
  • By default, enable bluetooth usage in a sane and secure fashion (using bluez-pin as hci pin_helper seems to be enough)
  • integrate the bluetooth-sco drivers into the kernel (Done)
  • investigate potential bounties for OpenSYNC to drive bluetooth integration with Evolution and Thunderbird

  • Extend Network Admin tool to use bluetooth devices correctly
  • Fix nautilus "Send via Bluetooth" option

The GPE environment provides a set of mature bluetooth graphical configuration and usage tools which are gtk based and operate on the standard Linux bluetooth stack. There issin't much of the tools, there are still a lot off missing bits. Bluetooth Manager should be able to do the configuration.

Integrating these tools into the Ubuntu distribution will enable us to leverage this development track whilst making easy customisations to satisfy our own requirements. This enables us to build the underlying graphical tools such as browsing of devices and pairing with those devices.

Installing bluetooth by default in the distribution will allow us to usefully integrate bluetooth support at the lower levels with the minimum of user interaction whilst still providing a secure-by-default installation, since enabling the tools will happen at the graphical level.

The bluetooth-sco drivers provide support for two way audio on bluetooth headsets, and once these devices are paired correctly ALSA should be easily configured to use them. Some headsets fail to work with sco, they need a lot off hacking before they work.

OpenSync currently is very immature. It needs work on both the various plugins for integration with PIMs and also the underlying codebase for stability and feature additions.

Network Admin should be extended so that /dev/rfcomm devices show up in NetworkAdmin ready to be configured as PPP devices.

Current status

  • None of the above use cases (which involve higher level protocols) can be achieved with existing tools. They are good bounty targets, though.
  • gnome-phone-manager: cellphone-specific communication protocols for sending and receiving SMS; supports BT

  • gnome-Bluetooth includes an applet for receiving files from OBEX transfers
  • gnome-Bluetooth-manager: displays a list of discovered Bluetooth devices, but the user cannot actually do something with them

  • gnome-modem-applet can be configured to setup a PPP link over a Bluetooth cellphone

  • GTK-based GPE (GPE) has some Bluetooth support in a gnome-bluetooth-manager style application. It allows some amount of configuration of Bluetooth devices.

  • OpenSync looks promising and has a nice client/server architecture, but will not be ready in the Breezy timeframe.

Data Preservation and Migration

Packages Affected

  • hcid provides basic authentication and link/pair management; basically works (bluez package).

  • There is beginning BT support in hal, but it is far from complete.
  • GPE or gnome-Bluetooth-manager should be extended to support dbus.

User Interface Requirements

  • Bluetooth manager needs to be extended to: 1) Use HAL to enumerate devices 2) Based on the type of services the device can provide, launch something that can do something with it. In a lot of cases, the command line tools to do this exist already - low hanging option may be to use gksudo, zenity and shell scripting to work with these. This should deal with use cases 1, 2 and 4.
  • Synchronization requires opensync to reach a useful state. Not there yet.(last checked: 2005-06-19) Use case 3 is not practical within the Breezy timeframe unless opensync stabilizes rapidly.
  • gnome-phone-manager displays cellphones and sets up terminal device, but does not connect to the cellphone
  • network-admin does not display cellphone terminal devices; it should display rfcomm devices
  • gnome-vfs should be extended to support gnome-obex-send to display files of cellphones and allow to "Send To..." files to the phone

Outstanding Issues

UDU BOF Agenda

  • multisync (added by DanielHolbach) - superseded by Opensync, works badly, PAIN AND SUFFERING

  • bluez default PIN from upstream is set to BlueZ; it should be replaced to something phones find easier to enter (like 12345 maybe, or 0000 which is used in all types of devices) (added by ColinCharles)

  • Excellent overview of how various BT/IrDA components fit together (Developer Works) -PaulSladen

  • Add a program GPRS Easy Connect for connecting to the internet with a mobile phones/modems PCMCIA with irda/USB/COM/Bluetooth and GPRS/EDGE/UMTS

CategoryUdu CategorySpec

UbuntuDownUnder/BOFs/BluetoothSupport (last edited 2008-08-06 16:21:14 by localhost)