Thread (4 messages) 4 messages, 3 authors, 2010-09-24

Fwd: Bluez simple-agent vs agent

From: Paul Matz <hidden>
Date: 2010-09-23 13:36:13

This is a script that will allow us to generate the proper dbus
messages for the pin exchange.  I'm not really sure how it works since
I haven't read much about the dbus IPC protocol.  Interestingly
enough, it's checked into the linux kernel tree.  Could this be the
source to the simple-agent binary in the  bluez tar file?
http://git.kernel.org/?p=bluetooth/bluez.git;a=blob_plain;f=test/simple-agent;hb=HEAD

This is the python library that is required by the simple-agent script.
http://dbus.freedesktop.org/releases/dbus-python/

This works on a desktop, but we have an embedded system we are working
on that does not have the python stuff installed.
What I'm trying to figure out is how to create an agent that does what
the python script does.
One other problem I've got is that I can't get bluetoothd to generate
debug output.  Starting it with -d, where does it write it's debug
output?  /var/log/messages?  Doesn't seem to.

-PEM

On Thu, Sep 23, 2010 at 12:46 AM, Viswanathan Sankararam
[off-list ref] wrote:
All,

I am new to bluetooth and bluez. I am having problems pairing my
bluetooth keyboard to my target that does not have python and so in
order to pair, I have compiled the agent application. My target has
Bluez 4.47. But I have not been able to get it to pair. After running

agent -a hci0 1234 00:1F:20:06:47:65

I get asked to enter the pin on the bt keyboard and then it says Agent
is released. When I list devices using

dbus-send --system --dest=org.bluez --print-reply $BTADAPTER
org.bluez.Adapter.ListDevices

I see it in the list and when I repeat the command, it disappears.

When I log on to my gentoo machine to pair the bt keyboard, I am able
to pair with the simple-agent python script but not the agent
application. The way the agent application behaves is the same as it
behaves when I use it on the target.My gentoo system uses Bluez 4.69.
Below is the log when I run bluetoothd with the -d option for the
simple-agent case and the agent C program case. As you can see, in the
simple-agent case, the device_probe_drivers gets called but in the
agent.c case, discover_services_req_exit gets called. This is the
place where they diverge. Also, I am not sure why the dbus system
daemon is rejecting a message from agent to org.bluez. I am nto sure
if its related. I am not able to proceed from here. Has any one faced
this kind of issue? Please advice me on how to proceed. I would really
appreciate it.

Thanks
Vishwa

simple-agent:

Sep 22 22:59:40 Zatoichi
bluetoothd[7042]:src/adapter.c:adapter_get_device() 00:1F:20:06:47:65
Sep 22 22:59:40 Zatoichi bluetoothd[7042]:
src/adapter.c:adapter_create_device() 00:1F:20:06:47:65
Sep 22 22:59:40 Zatoichi bluetoothd[7042]:
src/device.c:device_create() Creating device
/org/bluez/7041/hci0/dev_00_1F_20_06_47_65
Sep 22 22:59:40 Zatoichi bluetoothd[7042]:
src/device.c:btd_device_ref() 0xb899f6b8: ref=1
Sep 22 22:59:40 Zatoichi bluetoothd[7042]:
src/device.c:bonding_request_new()
/org/bluez/7041/hci0/dev_00_1F_20_06_47_65: requesting bonding
Sep 22 22:59:40 Zatoichi bluetoothd[7042]:
src/device.c:bonding_request_new() Temporary agent registered for
/org/bluez/7041/hci0/dev_00_1F_20_06_47_65 at :1.29:/test/agent
Sep 22 22:59:41 Zatoichi bluetoothd[7042]:
src/adapter.c:adapter_get_device() 00:1F:20:06:47:65
Sep 22 22:59:41 Zatoichi bluetoothd[7042]: Authentication requested
Sep 22 22:59:41 Zatoichi bluetoothd[7042]: link_key_request
(sba=40:61:86:A5:0E:E1, dba=00:1F:20:06:47:65)
Sep 22 22:59:41 Zatoichi bluetoothd[7042]:
src/security.c:link_key_request() kernel auth requirements = 0x03
Sep 22 22:59:41 Zatoichi bluetoothd[7042]: pin_code_request
(sba=40:61:86:A5:0E:E1, dba=00:1F:20:06:47:65)
Sep 22 22:59:41 Zatoichi bluetoothd[7042]:
src/adapter.c:adapter_get_device() 00:1F:20:06:47:65
Sep 22 22:59:41 Zatoichi bluetoothd[7042]:
src/device.c:device_request_authentication()
/org/bluez/7041/hci0/dev_00_1F_20_06_47_65: requesting agent
authentication
Sep 22 22:59:47 Zatoichi bluetoothd[7042]: link_key_notify
(sba=40:61:86:A5:0E:E1, dba=00:1F:20:06:47:65, type=0)
Sep 22 22:59:47 Zatoichi bluetoothd[7042]:
src/adapter.c:adapter_get_device() 00:1F:20:06:47:65
Sep 22 22:59:47 Zatoichi bluetoothd[7042]:
src/dbus-hci.c:hcid_dbus_link_key_notify() key type 0x00 old key type
0xff new key type 0x00
Sep 22 22:59:47 Zatoichi bluetoothd[7042]:
src/dbus-hci.c:hcid_dbus_link_key_notify() local auth 0x03 and remote
auth 0xff
Sep 22 22:59:47 Zatoichi bluetoothd[7042]:
src/dbus-hci.c:hcid_dbus_link_key_notify() storing link key of type
0x00
Sep 22 22:59:47 Zatoichi bluetoothd[7042]:
src/dbus-hci.c:hcid_dbus_bonding_process_complete() status=00
Sep 22 22:59:47 Zatoichi bluetoothd[7042]:
src/adapter.c:adapter_get_device() 00:1F:20:06:47:65
Sep 22 22:59:47 Zatoichi bluetoothd[7042]:
src/device.c:btd_device_ref() 0xb899f6b8: ref=2
Sep 22 22:59:47 Zatoichi bluetoothd[7042]: src/agent.c:agent_release()
Releasing agent :1.29, /test/agent
Sep 22 22:59:47 Zatoichi dbus-daemon: [system] Rejected send message,
1 matched rules; type="method_return", sender=":1.29" (uid=0 pid=7790
comm="/usr/bin/python2.6) interface="(unset)" member="(unset)" error
name="(unset)" requested_reply=0 destination=":1.12" (uid=0 pid=7041
comm="/usr/sbin/bluetoothd))
Sep 22 22:59:48 Zatoichi bluetoothd[7042]:
src/device.c:device_probe_drivers() Probe drivers for
/org/bluez/7041/hci0/dev_00_1F_20_06_47_65
Sep 22 22:59:48 Zatoichi bluetoothd[7042]:
input/manager.c:hid_device_probe() path
/org/bluez/7041/hci0/dev_00_1F_20_06_47_65
Sep 22 22:59:48 Zatoichi bluetoothd[7042]:
src/device.c:btd_device_ref() 0xb899f6b8: ref=3
Sep 22 22:59:48 Zatoichi bluetoothd[7042]:
input/device.c:input_device_new() Registered interface org.bluez.Input
on path /org/bluez/7041/hci0/dev_00_1F_20_06_47_65
Sep 22 22:59:48 Zatoichi bluetoothd[7042]:
src/device.c:btd_device_unref() 0xb899f6b8: ref=2

agent.c:

Sep 23 00:14:34 Zatoichi bluetoothd[7042]:
src/adapter.c:adapter_get_device() 00:1F:20:06:47:65
Sep 23 00:14:34 Zatoichi bluetoothd[7042]:
src/adapter.c:adapter_create_device() 00:1F:20:06:47:65
Sep 23 00:14:34 Zatoichi bluetoothd[7042]:
src/device.c:device_create() Creating device
/org/bluez/7041/hci0/dev_00_1F_20_06_47_65
Sep 23 00:14:34 Zatoichi bluetoothd[7042]:
src/device.c:btd_device_ref() 0xb899f6b8: ref=1
Sep 23 00:14:34 Zatoichi bluetoothd[7042]:
src/device.c:bonding_request_new()
/org/bluez/7041/hci0/dev_00_1F_20_06_47_65: requesting bonding
Sep 23 00:14:34 Zatoichi bluetoothd[7042]:
src/device.c:bonding_request_new() Temporary agent registered for
/org/bluez/7041/hci0/dev_00_1F_20_06_47_65 at
:1.35:/org/bluez/agent_8004
Sep 23 00:14:35 Zatoichi bluetoothd[7042]:
src/adapter.c:adapter_get_device() 00:1F:20:06:47:65
Sep 23 00:14:35 Zatoichi bluetoothd[7042]: Authentication requested
Sep 23 00:14:35 Zatoichi bluetoothd[7042]: link_key_request
(sba=40:61:86:A5:0E:E1, dba=00:1F:20:06:47:65)
Sep 23 00:14:35 Zatoichi bluetoothd[7042]:
src/security.c:link_key_request() kernel auth requirements = 0x03
Sep 23 00:14:35 Zatoichi bluetoothd[7042]: pin_code_request
(sba=40:61:86:A5:0E:E1, dba=00:1F:20:06:47:65)
Sep 23 00:14:35 Zatoichi bluetoothd[7042]:
src/adapter.c:adapter_get_device() 00:1F:20:06:47:65
Sep 23 00:14:35 Zatoichi bluetoothd[7042]:
src/device.c:device_request_authentication()
/org/bluez/7041/hci0/dev_00_1F_20_06_47_65: requesting agent
authentication
Sep 23 00:14:38 Zatoichi bluetoothd[7042]: link_key_notify
(sba=40:61:86:A5:0E:E1, dba=00:1F:20:06:47:65, type=0)
Sep 23 00:14:38 Zatoichi bluetoothd[7042]:
src/adapter.c:adapter_get_device() 00:1F:20:06:47:65
Sep 23 00:14:38 Zatoichi bluetoothd[7042]:
src/dbus-hci.c:hcid_dbus_link_key_notify() key type 0x00 old key type
0xff new key type 0x00
Sep 23 00:14:38 Zatoichi bluetoothd[7042]:
src/dbus-hci.c:hcid_dbus_link_key_notify() local auth 0x03 and remote
auth 0xff
Sep 23 00:14:38 Zatoichi bluetoothd[7042]:
src/dbus-hci.c:hcid_dbus_link_key_notify() storing link key of type
0x00
Sep 23 00:14:38 Zatoichi bluetoothd[7042]:
src/dbus-hci.c:hcid_dbus_bonding_process_complete() status=00
Sep 23 00:14:38 Zatoichi bluetoothd[7042]:
src/adapter.c:adapter_get_device() 00:1F:20:06:47:65
Sep 23 00:14:38 Zatoichi bluetoothd[7042]:
src/device.c:btd_device_ref() 0xb899f6b8: ref=2
Sep 23 00:14:38 Zatoichi bluetoothd[7042]: src/agent.c:agent_release()
Releasing agent :1.35, /org/bluez/agent_8004
Sep 23 00:14:38 Zatoichi dbus-daemon: [system] Rejected send message,
1 matched rules; type="method_return", sender=":1.35" (uid=1000
pid=8004 comm="./agent) interface="(unset)" member="(unset)" error
name="(unset)" requested_reply=0 destination=":1.12" (uid=0 pid=7041
comm="/usr/sbin/bluetoothd))
Sep 23 00:14:38 Zatoichi bluetoothd[7042]:
src/device.c:discover_services_req_exit() DiscoverServices requestor
exited
Sep 23 00:14:38 Zatoichi bluetoothd[7042]:
src/device.c:btd_device_unref() 0xb899f6b8: ref=1
Sep 23 00:14:40 Zatoichi bluetoothd[7042]:
src/adapter.c:adapter_remove_connection() Removing temporary device
/org/bluez/7041/hci0/dev_00_1F_20_06_47_65
Sep 23 00:14:40 Zatoichi bluetoothd[7042]:
src/device.c:device_remove() Removing device
/org/bluez/7041/hci0/dev_00_1F_20_06_47_65
Sep 23 00:14:40 Zatoichi bluetoothd[7042]:
src/device.c:btd_device_unref() 0xb899f6b8: ref=0
Sep 23 00:14:40 Zatoichi bluetoothd[7042]: src/device.c:device_free() 0xb899f6b8
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help