# [solved] bluetooth mouse using HAL

## chias

<tl;dr>

- Create a portage overlay and install bluez-4.58 from the ebuild below in this thread

- run "hcitool scan" to get the device address

- run "simple-agent hci0 [address]". It will return a path that looks like /org/bluez.....

- run "dbus-send --system --dest=org.bluez --print-reply [path] org.bluez.Input.Connect"

Your bluetooth mouse should now be working, although this does not set it as a trusted device. This does not seem to matter though.

</tl;dr>

Hi

I'm trying to get my bluetooth mouse (Logitech) working using HAL, with bluez installed (and thus not bluez-utils or bluez-libs). I followed the instructions here: http://en.gentoo-wiki.com/wiki/Bluetooth_mouse

I have HAL and dbus, both are enabled in the use flags, /etc/init.d/bluetooth start has been run. Now what? According to the article, the mouse should "just work". It doesn't.

I turn the mouse on, and push connect, and 'hcitool scan' returns:

```

Scanning ...

   00:07:61:96:5E:61   Bluetooth Laser Travel Mouse

```

The article seems to imply that the mouse should now be working? It isn't - it just sits there with the "discoverable" light flashing, waiting to be connected to. So then I try 'hcitool cc 00:07:61:96:5E:61' as root (permission denied as normal user) and after a few seconds I get the prompt back with no output, and not connected.

Has anybody else gotten this working?Last edited by chias on Sat Dec 05, 2009 8:23 am; edited 1 time in total

----------

## VoidMage

Actually, that page is outdated, but points (in a way) to a less

outdated one: http://sidux.com/index.php?module=Wikula&tag=hwBluetooth

However, bluez package in portage seems outdated too - on 15 Nov it went to 4.58.

Try the ebuild from bug 270859

----------

## chias

Hi

Thanks for the advice! Sorry, I'm a complete noob at this, but I'm having problems with the patch. Here's what I did:

First, I created an overlay

```
--added PORTDIR_OVERLAY=/usr/local/portage

mkdir -p /usr/local/portage/net-wireless/bluez

cp /usr/portage/net-wireless/bluez/bluez-4.39-r2.ebuild /usr/local/portage/net-wireless/bluez/bluez-4.57.ebuild

ln -s /usr/portage/net-wireless/bluez/files files

```

Then I copied the patch file https://bugs.gentoo.org/attachment.cgi?id=209238 into /usr/local/portage/net-wireless/bluez/files/ and added the following into /usr/local/portage/net-wireless/bluez/bluez-4.57.ebuild:

```
src_unpack() {

        unpack ${A}

        cd "${S}"

        epatch "${FILESDIR}"/bluez-4.57.patch

}

```

Then I rebuilt the manifest:

```
ebuild bluez-4.57.ebuild manifest

```

It downloaded a bunch of stuff and then finished. So then I tried to install it:

```
human bluez # emerge -av bluez                 

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild     U ] net-wireless/bluez-4.57 [4.39-r2] USE="alsa consolekit cups gstreamer usb -debug -doc -old-daemons -test-programs" 0 kB [0=>1]

Total: 1 package (1 upgrade), Size of downloads: 0 kB

Portage tree and overlays:

 [0] /usr/portage

 [1] /usr/local/portage

Would you like to merge these packages? [Yes/No] 

```

I typed "yes", but the build failed with a:

```
 * Applying bluez-4.57.patch ...

 * Failed Patch: bluez-4.57.patch !

 *  ( /usr/local/portage/net-wireless/bluez/files/bluez-4.57.patch )

```

followed by the usual failure stuff.

I tried patching the file myself, using another copy of the original bluez-4.39-r2 file:

```
human bluez # patch bluez-4.39-r2.ebuild files/bluez-4.57.patch 

patching file bluez-4.39-r2.ebuild

Hunk #1 FAILED at 11.

1 out of 7 hunks FAILED -- saving rejects to file bluez-4.39-r2.ebuild.rej

```

What am I doing wrong?Last edited by chias on Wed Dec 02, 2009 7:13 pm; edited 1 time in total

----------

## VoidMage

That's a patch for the ebuild, not the package.

----------

## chias

Hi

Thanks for your continuing help  :Smile:  I had tried patching the ebuild with the 4.57 patch (see the bottom of my horrendously long post) but it hadn't worked, with some failed "hunks". I tried emerging it anyway but the build failed. So I started over and tried the 4.56 patch instead, which also failed with one "hunk" in the patching, but emerged fine. However, in trying to follow the guide, I do not have "/usr/share/doc/bluez/examples/simple-agent". The closest I have is /usr/share/doc/bluez-4.56 whose only contents are AUTHORS.bz2, README.bz2 and ChangeLog.bz2.

Again, sorry for being such a complete noob about this, and thank you very much

Update: There was also a whole ebuild there for 4.45 so I just went with that - I still don't have that "examples" folder or the simple-agent... :-\

----------

## Tyler_Durden

This is the ebuild for 4.58:

```

# Copyright 1999-2009 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header: /var/cvsroot/gentoo-x86/net-wireless/bluez/bluez-4.39-r2.ebuild,v 1.7 2009/11/30 06:33:54 josejx Exp $

EAPI="2"

inherit autotools multilib eutils

DESCRIPTION="Bluetooth Tools and System Daemons for Linux"

HOMEPAGE="http://bluez.sourceforge.net/"

SRC_URI="mirror://kernel/linux/bluetooth/${P}.tar.gz"

LICENSE="GPL-2 LGPL-2.1"

SLOT="0"

KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~sh ~sparc ~x86"

IUSE="alsa caps +consolekit cups debug gstreamer old-daemons pcmcia test-programs usb"

CDEPEND="alsa? ( media-libs/alsa-lib )

   caps? ( >=sys-libs/libcap-ng-0.6.2 )

   gstreamer? (

      >=media-libs/gstreamer-0.10

      >=media-libs/gst-plugins-base-0.10 )

   usb? ( dev-libs/libusb )

   cups? ( net-print/cups )

   sys-fs/udev

   dev-libs/glib

   sys-apps/dbus

   media-libs/libsndfile

   >=dev-libs/libnl-1.1

   !net-wireless/bluez-libs

   !net-wireless/bluez-utils"

DEPEND="sys-devel/flex

   >=dev-util/pkgconfig-0.20

   ${CDEPEND}"

RDEPEND="${CDEPEND}

   consolekit? ( sys-auth/pambase[consolekit] )

   test-programs? (

      dev-python/dbus-python

      dev-python/pygobject )"

src_prepare() {

   if ! use consolekit; then

      # No consolekit for at_console etc, so we grant plugdev the rights

      epatch   "${FILESDIR}/bluez-plugdev.patch"

   fi

   if use cups; then

      epatch "${FILESDIR}/4.50-cups-location.patch"

   fi

   # needed for both patches

   eautoreconf

}

src_configure() {

   econf \

      $(use_enable caps capng) \

      --enable-network \

      --enable-serial \

      --enable-input \

      --enable-audio \

      --enable-service \

      $(use_enable gstreamer) \

      $(use_enable alsa) \

      $(use_enable usb) \

      --enable-netlink \

      --enable-tools \

      --enable-bccmd \

      --enable-hid2hci \

      --enable-dfutool \

      $(use_enable old-daemons hidd) \

      $(use_enable old-daemons pand) \

      $(use_enable old-daemons dund) \

      $(use_enable cups) \

      $(use_enable test-programs test) \

      --enable-udevrules \

      --enable-configfiles \

      $(use_enable pcmcia) \

      $(use_enable debug) \

      --localstatedir=/var

}

src_install() {

   emake DESTDIR="${D}" install || die "make install failed"

   dodoc AUTHORS ChangeLog README || die

   # don't install useless .la files

   find "${D}" -type f -name '*.la' -delete || die "failed to remove .la files"

   if use test-programs ; then

      cd "${S}/test"

      dobin simple-agent simple-service monitor-bluetooth

      newbin list-devices list-bluetooth-devices

      for b in apitest hsmicro hsplay test-* ; do

         newbin "${b}" "bluez-${b}"

      done

      insinto /usr/share/doc/${PF}/test-services

      doins service-*

      cd "${S}"

   fi

   if use old-daemons; then

      newconfd "${FILESDIR}/4.18/conf.d-hidd" hidd || die

      newinitd "${FILESDIR}/4.18/init.d-hidd" hidd || die

   fi

   insinto /etc/bluetooth

   doins \

      input/input.conf \

      audio/audio.conf \

      network/network.conf \

      serial/serial.conf \

      || die

}

pkg_postinst() {

   udevadm control --reload-rules && udevadm trigger --subsystem-match=bluetooth

   elog

   elog "To use dial up networking you must install net-dialup/ppp."

   elog ""

   elog "For a password agent, there is for example net-wireless/bluez-gnome"

   elog "for gnome and net-wireless/kdebluetooth for kde."

    elog ""

   elog "For registering devices that don't pair, use net-wireless/blueman"

   elog ""

   elog "Use the old-daemons use flag to get the old daemons like hidd"

   elog "installed. Please note that the init script doesn't stop the old"

   elog "daemons after you update it so it's recommended to run:"

   elog "  /etc/init.d/bluetooth stop"

   elog "before updating your configuration files or you can manually kill"

   elog "the extra daemons you previously enabled in /etc/conf.d/bluetooth."

   

   if use consolekit; then

      elog ""

      elog "If you want to use rfcomm as a normal user, you need to add the user"

      elog "to the uucp group."

   else

      elog ""

      ewarn "Since you have the consolekit use flag disabled for this package, you will only be "

      ewarn "able to run bluetooth clients as root.  If you want to be able to run bluetooth "

      ewarn "clients as a regular user, you must enable the consolekit use flag for this package."

   fi

   if use old-daemons; then

      elog ""

      elog "The hidd init script was installed because you have the old-daemons"

      elog "use flag on. It is not started by default via udev so please add it"

      elog "to the required runlevels using rc-update <runlevel> add hidd. If"

      elog "you need init scripts for the other daemons, please file requests"

      elog "to https://bugs.gentoo.org."

   else

      elog ""

      elog "The bluetooth service should be started automatically by udev"

      elog "when the required hardware is inserted next time."

   fi

}

```

get the "4.50-cups-location.patch" from bugzilla if needed, digest the ebuild an do

```

USE="test-programs" emerge bluez

```

an you will get the "simple-agent" tool too!   :Wink: 

----------

## vmk

BT mouse here is working without any problems. Rebooting or doing a hibernate to disk is no problem. The only thing i has to do, was to start kbuetooth, scan for new devices and connect there my mouse. I use the following packages:

net-wireless/bluez-4.39-r2

net-wireless/kbluetooth-9999

sys-apps/hal-0.5.13-r2

sys-fs/udev-141

x11-base/xorg-server-1.7.1

----------

## chias

Thanks for the ebuild!

Ah 'equery' solved all my woes: simple-agent is in fact in /usr/bin, not /usr/share/doc/......... 

Unfortunately I'm now at the next stumbling block... I don't have test-device >_<

However, the mouse seems to function fine even without making it "trusted" (tbh i don't really know what that even means)

----------

## cdale77

hello,

I'm trying to get bluetooth working. This thread had helped, and I've upgraded to bluez 4.58. My kernel sees my usb bluetooth dongle:

```
# lsusb

Bus 003 Device 002: ID 0a5c:2101 Broadcom Corp. A-Link BlueUsbA2 Bluetooth

```

I'm trying to connect a keyboard. This worked in ubuntu. Following these instructions:

```
# hcitool scan

Device is not available: No such device
```

I'm not sure if that means there's a problem with the dongle or the keyboard. I get this result even when the keyboard is in discovery mode, and I've tried resetting the keyboard.

Does anybody have any tips?

----------

