Present Location: News >> Blog >> BlueZ

Blog

> BlueZ
Posted by prox, from North Brunswick, on August 09, 2008 at 18:12 local (server) time

I haven't used a Bluetooth keyboard or mouse with my laptop (Gentoo) in awhile, and decided to use my Apple Wireless Keyboard (the tiny one; w/out PgUp/PgDn, etc.) today.  Unfortunately, I realized that hidd and friends no longer existed.  Here are the versions I'm using:

[I--] [ ~] net-wireless/bluez-libs-3.32 (0)
[I--] [ ~] net-wireless/bluez-utils-3.32 (0)

Figuring this was a mistake, I Googled around and found a ton of related Ubuntu forum posts and bug reports filed against the bluez-utils package in the "hardy" and "intrepid" (upcoming) releases.

Apparently, the Bluez folks decided to do away with the old daemons (hidd, etc.) and move everything to the dbus service-type (input.service, audio.service, etc.) model.  Unfortunately, they left everyone with only a couple bad replacements for the easy "hidd --search" command:

Sure, the Gnome way sounds preferred, but not everyone uses Gnome (or X).  What happens if I need to use a Bluetooth keyboard on a box w/out X?  The dbus-send commands (described here) are fairly complex for such a routine task such as connecting a wireless keyboard.

It does seem that there's a configure option to compile the old daemons (and USE flag in Gentoo named "old-daemons") when the dbus-send commands fail, but this is just a temporary fix since it appears that these will be permanently removed and completely unsupported in the future.

I really hate deprecation, especially deprecation that involves GUI-centric replacements.  Don't even get me started about NetworkManager.

Relevant links:

Update: What I did to get this whole pile of junk working:

(00:20:E0:79:0B:1F is my laptop's bdaddr and 00:1E:52:FA:6D:94 is my keyboard)

# echo "00:1E:52:FA:6D:94 1234" > /var/lib/bluetooth/00:20:E0:79:0B:1F/pincodes
% dbus-send --system --type=method_call --print-reply --dest=org.bluez /org/bluez \
org.bluez.Manager.ActivateService string:input
method return sender=:1.0 -> dest=:1.8 reply_serial=2
   string "org.bluez"
% dbus-send --system --type=method_call --print-reply --dest="org.bluez" /org/bluez/input \
org.bluez.input.Manager.CreateDevice string:00:1E:52:FA:6D:94

I hit 1 2 3 4 <ENTER> on the keyboard…

method return sender=:1.0 -> dest=:1.4 reply_serial=2
   string "/org/bluez/input/keyboard6"
% dbus-send --system --type=method_call --print-reply --dest="org.bluez" \
/org/bluez/input/keyboard6 org.bluez.input.Device.Connect
method return sender=:1.0 -> dest=:1.7 reply_serial=2

Keyboard then started to work.

> Add Comment

New comments are currently disabled for this entry.