Driver updates for 2.6.27

For Bluetooth USB devices, the current driver is called hci_usb. However the new btusb driver is suppose to take over. This update now makes sure that all quirks are also present in this new driver.


The missing piece in the btusb driver is the full SCO support. Oliver Neukum is working on this and I hope we will see an update soon.

Bluetooth 2.1 devices

The Bluetooth 2.1 specification has been released over a year ago and so far no Bluetooth 2.1 device made it to market. However in the past months a couple of devices with Bluetooth 2.1 capable chips showed up. The only problem is that even with these chips built in, the host stacks on these devices are still only implementing the Bluetooth 2.0 specification. Examples of such devices are:

  • Apple iPhone 3G
  • Apple MacBook, MacBook Pro and MacBook Air
  • Asus EeePC 901

So in theory all of these devices could support Simple Pairing and Extended Inquiry, but for some reason both companies decided to go the easy way. And I guess there are even more out there since I had a Symbian based Samsung phone in my hands with a Bluetooth 2.1 chips, but no 2.1 features enabled.

All big host stack vendors like Microsoft, Apple, Broadcom and Symbian are working on Simple Pairing support, but only BlueZ has put it out there for public consumption. Seems like everybody is waiting for the others to go first.

So I am most disappointed with Apple here since neither their iPhone 3G nor their new MacBooks make use of the possibilities that their hardware offers.

BD Address:  00:21:E9:xx:xx:xx
Device Name: Marcel’s iPhone 3G
LMP Version: 2.1 (0×4) LMP Subversion: 0x12e9
Manufacturer: Cambridge Silicon Radio (10)
Features: 0xff 0xff 0x8f 0xfe 0x9b 0xff 0×59 0×83

And it is not about which company provided the Bluetooth chip since Apple clearly buys chips from CSR and Broadcom. While on older MacBooks and other Apple machines clearly CSR dominated, they now also go with Broadcom like they have done for their keyboard and mouse products.

BD Address:  00:21:E9:xx:xx:xx
Device Name: Marcel’s MacBook Pro
LMP Version: 2.1 (0×4) LMP Subversion: 0×2187
Manufacturer: Broadcom Corporation (15)
Features: 0xff 0xff 0x8f 0xfe 0x9b 0xff 0×71 0×83

Both iPhones still have a CSR chip in it. The original comes with a 2.0 chip and the 3G version with the 2.1 version of it.

When the Bluetooth 1.2 specification was development, Apple was the first ones to add support for Adaptive Frequency Hopping (AFH) to their products and also provided firmware updates for the chips they used. I expected Apple to push forward with Simple Pairing support, but now I think it is unlikely to happen soon.

BD Address:  00:15:AF:xx:xx:xx
Device Name: Marcel’s EeePC 901
LMP Version: 2.1 (0×4) LMP Subversion: 0x420e
Manufacturer: Broadcom Corporation (15)
Features: 0xff 0xff 0x8f 0xfe 0x9b 0xff 0×79 0×83

The EeePC 901 comes with Windows XP per-installed at the moment. Installing Linux with a 2.6.27 kernel and BlueZ 4.0 on it would make it the first product with Simple Pairing and Extended Inquiry support. So happy hacking.

Release of bluez-4.0

And finally here it is. The first release of the new BlueZ 4.x series.


As mentioned before, the source for bluez-libs and bluez-utils has been merged together. So it is now up the package maintainers to create proper libbluetooth packages from this. It is important that this has been done right in the beginning so it gets simpler for later releases. If questions or issues come up, feel free to discuss them with the upstream developers.

With this new major version a lot of things have been changed:

  • The main daemon is now called bluetoothd (instead of hcid)
  • The main configuration file is /etc/bluetooth/main.conf and follows INI-style syntax
  • The GLib library (with GModule support) is no longer optional, because eglib support has been fully removed
  • The old D-Bus API from 3.x series has been fully removed

This release will break compatiblity with bluez-gnome at the moment. Please keep this in mind when starting testing. It is almost the same situation when 3.0 got released. It is the price for creating a cleaner and simpler API. The bluez-gnome will be moved to the new API soon.

Release of bluez-gnome-0.28

This will be the last release supporting the BlueZ 3.x series with the old D-Bus API. It contains some pending bug fixes and a translation update.


The current bluez-gnome CVS repository has been converted into GIT. The new location of the bluez-gnome.git repository is on and marks the start of the development for BlueZ 4.x series API.

BlueZ 4.0 repository created

It is now official that bluez-libs-3.36 and bluez-utils-3.36 were the last releases in the BlueZ 3.x series. Both repository are now in maintenance mode and only important security fixes will justify another release from the 3.x branch.

For the BlueZ 4.x series the repositories have been moved from over to and we are now using GIT for revision control. Also bluez-libs and bluez-utils have been merged back together into one common bluez.git repository.

The 4.x series brings two important changes. The first one is that the eglib support has been completely removed. This means that GLib now becomes a hard depedency. The second one is that we removed the old D-Bus and now fully concentrate on improving the new API and making the code simpler, cleaner and easy to read and understand.

We haven’t had time to move bluez-gnome over to the new D-Bus API. So if you wanna try bluez-4.x be warned that this will break.

Release of obexd-0.3

Another version of the new obexd with a lot of fixes. Please start testing.


Linux 2.6.27 merge window

The merge window for the Linux 2.6.27 kernel opened just after the official release of 2.6.26 and on the Bluetooth side we have a big update pending to be merged. Most changes are security enhancements and full support for Simple Pairing from the Bluetooth 2.1 specification.

After an absence of two kernel release, I started to produce my -mh kernel patches again. And since we are moving a lot of the infrastructure to these patches have their new home their, too. So have fun with it.


Release of bluez-libs-3.36 and bluez-utils-3.36

Due to some small fixes here and there and some pending patches, we have created another release of the 3.x series. It is nothing major, but all of them are nice to have things that slipped through the net for one reason or another.