bluez 4.77

Asked by bushwalker on 2011-01-21


I am trying to read data from Health Device, (blood pressure monitor) using bluetooth dongle. Here my environment:

bluez 4.69 - 0ubuntu2
D-Bus 1.4.0

I need to upgrage bluez 4.69 to 4.77.

Can anyone please tell me how to replace the package or from where I can get it.


Question information

English Edit question
Ubuntu bluez Edit question
No assignee Edit question
Solved by:
Last query:
Last reply:

This question was reopened

Are you *sure* you need to upgrade bluez to a higher version?

If you are not entirely sure of that, please provide the details that you believe indicate that this needs to be done.

If you are sure that bluez needs to be upgraded, does it have to be *exactly* that version? Could it be a higher version?

If you need to install that exact version, you would probably have to manually compile it from source and install it, though you could search through all these PPA's to see if any provide that version:

Please note that PPA's (with the exception of the occasional official PPA from Canonical) are unofficial...potentially a PPA could even install malware onto your system. Use your best judgment.

If stability of your bluetooth system is a major concern, then you should not upgrade bluez--only the version you have has been well-tested in combination with your versions of your other packages. If stability is a a significant but not major concern, you could try installing a higher version. If stability is not a particularly significant concern, then the easiest solution (assuming you really need to upgrade bluez, and also assuming that any version higher than 4.77 would work) would probably be to use the version from Natty by manually installing the .deb file provided at (Expand 4.85-0ubuntu1 under "The Natty Narwhal (Active Development)" and select the version for your architecture.) Note that this may not work (or work well) since it's intended for Natty, and it may require that you manually install some additional packages to meet dependencies. Then you would have to manually maintain bluez and any other packages you manually installed--that is, they would not receive updates by themselves (not until you upgrade to Natty, anyway), so it would be up to you to monitor new versions and install them. Since it's from Natty which is in active development, new versions come out frequently, though you wouldn't necessarily have to upgrade immediately every time a new version comes out.

Please feel free to post again for more information. If you're sure you need/want to upgrade bluez and you want further assistance with one of the methods here (or some other method), I can try and help you with that too.

bushwalker (zahir-wp) said : #2

Thanks a lot for your mail.

My whole purpose is to read data from continua heal device through bluetooth. I have found a script here:

According to it bluez 4.77 (or heigher) is required. I was able to read profile from blood pressure but could now create proxy object in python script. I am assuming i need to upgrade to 4.77. i could not find anywhere.

Hope i could explain. I am stuck here.

That website says that a higher version than 4.77 will work too. Have you considered my suggestion about using version 4.85 from Ubuntu 11.04 Natty Narwhal?

bushwalker (zahir-wp) said : #4

Yes, I am going to try now ...

If you find that you need additional assistance installing version 4.85 from Natty, please feel free to post again.

Remember that, once you install this version, you'll have to manually keep it up to date (by manually downloading new .deb packages and installing them). If bluez from Natty requires that other Natty packages be downloaded and installed manually to fulfill dependencies, then you'll have to keep those up to date as well. While you don't have to upgrade every time a new version comes out, you should always look at what was changed in new versions that come out, since some may fix security vulnerabilities.

bushwalker (zahir-wp) said : #6

i386 packages will work on heigher intel processoors?

bushwalker (zahir-wp) said : #7

is there any sequence i should follow during installation of packages ....?

"i386 packages will work on heigher intel processoors?"

The short answer is "no." The longer, more involved answer (which still pretty much comes down to "no") follows.

Generally speaking, packages for the i386 architecture will not work on other architectures like amd64/EM63T/x86_64 or IA-64, even if those other architectures are capable of executing i386 native code. There are architecture-specific conventions governing how different components (e.g. programs, libraries, kernel modules) communicate with one another. For example, the size of the basic "int" data type (used to represent integers) is 4 bytes for i386 GNU/Linux systems, but 8 bytes for amd64 GNU/Linux systems. In limited situations, there are packages for "higher" architectures that provide components usable by programs and libraries that were compiled against "lower" compatible architectures (for example, the libc6-i386 and libc6-dev-i386 packages for Ubuntu amd64). This is the exception rather than the rule (though the existence of just those two packages makes it so that source code supporting only i386 and unpackaged binaries compiled for i386 often run on amd64 systems).

If you're manually installing BlueZ, you should install a package for your architecture. If your architecture is amd64, you should use that package version, and not the i386 version. However, when I say "your architecture", I mean the architecture that your operating system is compiled against. That could be your machine's actual architecture, or it could be some "lower" contained architecture. To find out what architecture this is, run:

uname -m

If the output is x86_64, then you are running Ubuntu amd64 and you should use the amd64 package. If the output is i686, then you are running Ubuntu i386 and you should use the i386 package. Other possible outputs that would indicate that you should use the i386 package are i386, i586, and IA-32 (I think that last one is a possible output of "uname -m"...I'm not actually sure about that).

If you want to use bluez-4.85-0ubuntu1 (the version in Ubuntu 11.04 Natty Narwhal that I discussed above, see, here's a direct link to download the i386 package:

And here's a direct link to download the amd64 package:

"is there any sequence i should follow during installation of packages ....?"

Maybe. If you specify the method you have chosen to use for upgrading BlueZ (did you find a PPA, or are you using the version from Natty, or what?), and what the different steps are (as far as you know) that have to be put in sequence, then I might be able to give advice with respect to the order in which things should be done.

If you do manually install one or more packages (for example, if you follow my suggestion and use the version from Natty), then you should remember what packages you installed, or write it down somewhere, since it will be up to you to maintain them (i.e. to decide whether or not to update them, and to manually install the next version when you do decide to update them). You can certainly discover which packages are manually installed by examining your system, but it's easier to just keep the information. It's not necessary for you to remember the specific versions, because it's trivial to determine what version of a package is installed.

bushwalker (zahir-wp) said : #10
goes to

which i installed earlier but

dpkg -l | grep bluez - was shoiwing me 4.69.

now after insstalling .deb packages i am getting as follows:

dpkg -l | grep bluez
ii bluez 4.85-0ubuntu1 Bluetooth tools and daemons
ii bluez-alsa 4.85-0ubuntu1 Bluetooth ALSA support
ii bluez-audio 4.85-0ubuntu1 Transitional package
ii bluez-compat 4.85-0ubuntu1 BlueZ 3.x compatibility binaries
ii bluez-cups 4.85-0ubuntu1 Bluetooth printer driver for CUPS
ii bluez-gstreamer 4.85-0ubuntu1 Bluetooth GStreamer support
ii bluez-pcmcia-support 4.85-0ubuntu1 PCMCIA support files for BlueZ 2.0 Bluetooth tools
ii bluez-utils 4.85-0ubuntu1 Transitional package

what are .tar files for? do i need to make them?

bushwalker (zahir-wp) said : #11

i have taken .deb packages from:

and i have installed packages as following sequence:

bluez_4.85.orig.tar.gz (./configure ->make -> make install)
bluez-alsa_4.85-0ubuntu1_i386.deb ..deb
..compat ..deb
..gsstream ...deb
..pcmcia ..deb

I don't know what you mean when you say that "goes to", but I can tell you that, on my computer, no likely interpretation of that statement is the case. I'm not saying you're wrong...but whatever behavior you're experiencing there is very strange.

Do you mean that when you open in your web browser, it redirects you to

I am able to download in Google Chromium and (from the command line) with wget, and both work fine, and neither one has anything to do with Downloading it with wget reveals that it does redirect to another site, but the other site is (which is actually where all Launchpad downloads come from):

ek@Apok:~$ wget
--2011-01-24 12:18:41--
Connecting to||:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: [following]
--2011-01-24 12:18:43--
Connecting to||:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 470374 (459K) [application/x-debian-package]
Saving to: `bluez_4.85-0ubuntu1_i386.deb'

100%[=====================================>] 470,374 134K/s in 3.4s

2011-01-24 12:18:51 (134 KB/s) - `bluez_4.85-0ubuntu1_i386.deb' saved [470374/470374]


What was it that you installed earlier? The .deb package, or something from You should not have them both installed at the same time. (Or, if you do, you should make sure you know which one is getting used...and that parts of one are not accidentally getting used along with other parts of the other.)

The output of "dpkg -l | grep bluez" indicates that you are now running bluez-4.85-0ubuntu1 as provided in Natty. (Actually, you might need to restart some programs, or potentially even your computer, to ensure that everything using bluetooth on your computer is using the newly installed version.)

A .tar file is a common archive format, sort of like .zip, except that it preserves information about Unix-style file permissions, which makes it more appropriate for many uses on Unix-like systems. Another (actually, the primary) way in which .tar differs from .zip is that the .tar format does not implement compression. Instead, the .tar file can itself be compressed in some other format, for example, a .tar file compressed in GZip (which is not the same as .zip) format commonly has an additional .gz extension. That's why the files at end in .tar.gz. You will not need to produce .tar or .tar.gz files yourself to get any version of BlueZ running. See and

Those .tar.gz files from are source code, so you'd need to compile and manually install them, which is not too hard, but is much more technical than just installing a .deb file. Whenever a new version came out, to upgrade to it, you'd have to compile it, possibly uninstall the current version, and install the version you'd just compiled. You would have to either set things up so that it got used instead of the version installed through Ubuntu's package manager, or you could uninstall the Ubuntu version and instruct Ubuntu's package manager to pretend as though it were already installed. There would be numerous other potential complexities as well. I recommend avoiding this method, unless you need a version that is not available through (1) a PPA, (2) a different version of Ubuntu (like the version from Natty, which you recently installed), or (3) some version of a mostly-compatible distribution (for example, and preferably, Debian).

I had not seen your latest post when I composed and sent my previous post. I will reply to that shortly. It answers some questions that I asked in the most I just made; you don't have to answer those questions again. (In fact, from glancing at your latest post, I don't think you still need to answer any of the questions I asked in my previous post, but I'll have to get back to you about that.)

Everything you did seems good to me, except for one thing:

bluez_4.85.orig.tar.gz (./configure ->make -> make install)

You should undo that. (Or undo everything previous post explains the issues here, and why it is that I recommend going with the .deb packages rather than with compiling and installing from source. Also, if you decide to go with compiling and installing from source, then there's more to it than that, as there are Debian modifications--remember Ubuntu is a derivative of Debian--that you should probably apply. I can help you with that if you want. But I strongly recommend that you undo this step, and just keep the versions from the .deb packages that you installed.)

Assuming you extracted that file, ran ./configure with no arguments, and then ran "make" and "make install", the effect was to install BlueZ 4.85 into /usr/local. The .deb packages, when you installed them, installed a special version of BlueZ, based on version 4.85 but modified specially to work right on Ubuntu, in /usr. This special version is "numbered" 4.85-0ubuntu1. Since they put their files in different places, installing the .deb packages shouldn't have interfered with the effects of running "make install", nor should running "make install" have interfered with the effects of installing the .deb packages.

Therefore, all you have to do to remove the version installed from bluez_4.85.orig.tar.gz is to go into the same directory where you ran ./configure, "make", and "make install", and this time run:

make uninstall

You probably ran "make install" with sudo--if so, you'll have to prefix "make uninstall" with sudo as well.

I still don't know what you meant when you said that "goes to" What did you mean by that? If you successfully run "make uninstall" inside the bluez-4.85 directory, then that strange point would appear to be the only remaining loose end.

bushwalker (zahir-wp) said : #15

Sorry about redirection text. Thats my bad. There is no issue with it.

But after doing make unstall, hcitool is not working.

i started bluetooh with:

sudo /etc/init.d/bluetooth start

but still now working.

"Sorry about redirection text. Thats my bad. There is no issue with it."

OK, no problem.

"But after doing make unstall, hcitool is not working."

Oh, yeah. I guess I should have thought about how uninstalling bluez from /usr/local wouldn't necessary stop that installation from running. I suppose it would have been prudent to examine what was running before performing the uninstallation. (In Unix-like systems, deleted files aren't really deleted until they are no longer running/open. This is just one of a few possibilities for the hcitool problems now.)

If you can reboot (I understand if you're busy with something that precludes that right now), then please do so, and see if the hcitool problem is resolved. That ought to make the software installed from the .deb packages take over completely. If you're not rebooting, please let me know, so I don't assume you did.

If that doesn't work, then please post a more thorough description (or complete output, if you are working on the command line) of how hcitool is not working. Since hcitool is a command-line program, I presume you are running it in a Terminal and can paste a complete log containing all the commands you have run and all the output. Please do that. (Unless rebooting fixes it, of course.)

bushwalker (zahir-wp) said : #17

hcitool is working after reboot but

hcitool dev

does not show my bluetooth dongle, what was working before uninstall. it was showing hexa number of the dongle.

and for

hcitool scan
Output: Device is not available: No such device

bushwalker (zahir-wp) said : #18

sudo /etc/init.d/bluetooth status
*bluetooth is not running

this is what i am getting now ..

bushwalker (zahir-wp) said : #19

thought the status is showing ..

*bluetooth is not running

i can read profile
hcitool scan showing me few devices around me

If the uninstallation worked properly (and there's no reason it wouldn't have, especially considering that you rebooted afterward, so no part of it could still be running), then the most likely explanation is that the version of BlueZ that you manually compiled from source and installed works (at least it recognizes your bluetooth adapter, that is), but the version installed with the .deb packages doesn't. I have no idea *why* this would be the case, but that is what seems to be happening.

To test this, we would revert all the packages back to the versions provided by Lucid; this hypothesis would be confirmed to a moderate degree of certainty if that caused your bluetooth adapter to be recognized again, and if your bluetooth adapter continued to be recognized after you then installed the version you compiled from source (this time, alongside the version provided by Lucid, rather than the version you currently have installed by the package manager, which is from Natty). If you wanted to know for sure if this was happening, you could uninstall the version of BlueZ installed by the package manager, instruct the package manager to pretend that it *is* installed (that later version, that is--the one corresponding roughly to the version you installed from source), and see if it still works.

However, rather than doing any of that, I have a different suggestion: Reinstall the version that you compiled from source (just run "make install" again), which should render your bluetooth adapter usable again. Test it with some bluetooth device that worked before, and provided that works, see if it works with the blood pressure monitor!

While the situation I am describing (having both versions installed alongside one another) is messy, it is one of the not-too-unreasonable setups, since the presence of the installed packages causes the package manager to allow the installation of other packages that depend on BlueZ. There are also a some potential problems with having them both installed...but I recommend trying it to see if it works with the blood pressure monitor. If it does, we can further investigate whether or not this setup meets your needs.

bushwalker (zahir-wp) said : #21

i have compiled source :

so i can read profile again. i guess .deb packages did not work.

uname -m

So bluetooth works (at least) as well as it did before we started this?

If so...then does it also work with the blood pressure monitor now?

bushwalker (zahir-wp) said : #23

yes, my bluetooth dongle can read profile from surrounding devices. but the status shows:

*bluetooth is not running.

i am not sure this is the correct behaviour..

bushwalker (zahir-wp) said : #24

i am trying to install natty itself and see how packages behave ...

Upgrading to Natty from Maverick using the Update Manager is not yet supported, though you may be able to accomplish it Debian-style by editing /etc/apt/sources.list and running "sudo apt-get update; sudo apt-get dist-upgrade". A better way to upgrade would be with the Natty alternate CD. You can used the old Alpha 1 CD, or a daily snapshot of the Alternate Install CD, or you can wait a couple of days and use the Alpha 2 CD. The same options apply for a fresh install (though, for a fresh install, you're generally better off using the Desktop CD rather than the Alternate CD).

Natty is very unstable compared to Lucid or Maverick, since it is still in alpha. You install and use it at your own risk.

If you do a fresh install (erasing and replacing your existing installation, or resizing your existing installation and installing alongside it), you might (potentially) get better results than by upgrading. If you do upgrade your existing system, you should remember to run "make uninstall" in the bluez-4.85 directory again. I recommend doing it first; conceivably the presence of that installation could disrupt BlueZ configuration when you install Natty. It probably wouldn't, but I'm not certain it wouldn't.

If it doesn't work in Natty and you want to try the version you built from source, you can run "make install" again. If that still doesn't work, you should run "make uninstall" and then run "make distclean" -- that takes it back to the way it was before you ran ./configure. Then you can configure and build again; this time the Natty toolchain will be used.

bushwalker (zahir-wp) said : #26

Thank you again.

I downloaded 11.04 (natty) from


i tried it twice. but halts at an error:

An error occured while installing packages:

E: Sub-process /usr/bin/dpkg returned an error code(1)

Tha following packages are in a broken state:


This may be due to .......

bushwalker (zahir-wp) said : #27

i will continue with my previous 10.x

any suggestion on:

sudo /etc/init.d/bluetooth status
*bluetooth is not running

bushwalker (zahir-wp) said : #28

Thanks a lot Eliah Kagan for your prompt replies. That helped me a lot. I guess the issue i faced at the beginning has been solved though the effort now has taken a different direction.

bushwalker (zahir-wp) said : #29

Thanks Eliah Kagan, that solved my question.

It's not clear to me how your problem is solved, since what you were really trying to do was to get Ubuntu to use your blood pressure monitor via Bluetooth, which you have not yet succeeded at.

Please feel free, if you wish, to reopen this Question, or to start a new Question. You might even want to start two new Questions--one about your Bluetooth problem "*bluetooth is not running" and the other about your problem installing Natty.

bushwalker (zahir-wp) said : #31

Thanks for your suggestion. I opened this question to find .deb bluez packages >4.77.

I have given up installing Natty because of time constraint. But could you pelase tell me steps to check the bluetooth stacks. I want to check each layer is working properly:

L2CAP, MCAP. etc.

Writing script in python/C or somehow in commandline would be good.

bushwalker (zahir-wp) said : #32

Here is my findings:

When I call sdp protocall (sdptool records 00:09:1F:80:07:E4) d-bus captures following signals from blood pressure monitor:

(assuming I am watching dbus events in a separate terminal)
vmplanet@ubuntu:~$ dbus-monitor --system
signal sender=org.freedesktop.DBus -> dest=:1.77 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.77"
signal sender=:1.4 -> dest=(null destination) serial=513 path=/org/bluez/637/hci0/dev_00_09_1F_80_07_E4; interface=org.bluez.Device; member=PropertyChanged
   string "Connected"
   variant boolean false
signal sender=:1.4 -> dest=(null destination) serial=514 path=/org/bluez/637/hci0; interface=org.bluez.Adapter; member=PropertyChanged
   string "Devices"
   variant array [
         object path "/org/bluez/637/hci0/dev_00_22_A5_66_97_60"
signal sender=:1.4 -> dest=(null destination) serial=515 path=/org/bluez/637/hci0; interface=org.bluez.Adapter; member=DeviceRemoved
   object path "/org/bluez/637/hci0/dev_00_09_1F_80_07_E4"
signal sender=:1.4 -> dest=(null destination) serial=517 path=/org/bluez/637/hci0; interface=org.bluez.Adapter; member=DeviceCreated
   object path "/org/bluez/637/hci0/dev_00_09_1F_80_07_E4"
signal sender=:1.4 -> dest=(null destination) serial=518 path=/org/bluez/637/hci0; interface=org.bluez.Adapter; member=PropertyChanged
   string "Devices"
   variant array [
         object path "/org/bluez/637/hci0/dev_00_22_A5_66_97_60"
         object path "/org/bluez/637/hci0/dev_00_09_1F_80_07_E4"
signal sender=:1.4 -> dest=(null destination) serial=519 path=/org/bluez/637/hci0/dev_00_09_1F_80_07_E4; interface=org.bluez.Device; member=PropertyChanged
   string "Connected"
   variant boolean true
signal sender=org.freedesktop.DBus -> dest=(null destination) serial=140 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.78"
   string ""
   string ":1.78"
signal sender=org.freedesktop.DBus -> dest=(null destination) serial=141 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.78"
   string ":1.78"
   string ""
signal sender=:1.4 -> dest=(null destination) serial=528 path=/org/bluez/637/hci0/dev_00_09_1F_80_07_E4; interface=org.bluez.Device; member=PropertyChanged
   string "UUIDs"
   variant array [
         string "00001200-0000-1000-8000-00805f9b34fb"
         string "00001401-0000-1000-8000-00805f9b34fb"
signal sender=:1.4 -> dest=(null destination) serial=536 path=/org/bluez/637/hci0/dev_00_09_1F_80_07_E4; interface=org.bluez.Device; member=PropertyChanged
   string "Connected"
   variant boolean false
signal sender=:1.4 -> dest=(null destination) serial=537 path=/org/bluez/637/hci0; interface=org.bluez.Adapter; member=PropertyChanged
   string "Devices"
   variant array [
         object path "/org/bluez/637/hci0/dev_00_22_A5_66_97_60"
signal sender=:1.4 -> dest=(null destination) serial=538 path=/org/bluez/637/hci0; interface=org.bluez.Adapter; member=DeviceRemoved
   object path "/org/bluez/637/hci0/dev_00_09_1F_80_07_E4"

and then if I call methods of the objects

(qdbus --system org.bluez /org/bluez/637/hci0/dev_00_09_1F_80_07_E4)

right away it shows following methods:

method QString org.freedesktop.DBus.Introspectable.Introspect()
method void org.bluez.Device.CancelDiscovery()
method void org.bluez.Device.Disconnect()
signal void org.bluez.Device.DisconnectRequested()
signal void org.bluez.Device.PropertyChanged(QString, QDBusVariant)
method void org.bluez.Device.SetProperty(QString, QDBusVariant)

any suggestion?

Nothing comes to mind at this time, but then I'm a bit out of my element now. Hopefully someone else will be able to lend a hand. I'll continue to monitor this question and help as I am able.

bushwalker (zahir-wp) said : #34

I have installed bluez 4.85 on my Ubuntu and was expecting following Health Interfaces in service org.bluez:


I can see only org.bluez.Manager interface available. How could I get those interfaces.

I will appreciate any advice.