2010-09-23 13:36:13

by Paul Matz

[permalink] [raw]
Subject: Fwd: Bluez simple-agent vs agent

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
<[email protected]> 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 [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


2010-09-24 08:16:42

by Ville Tervo

[permalink] [raw]
Subject: Re: Bluez simple-agent vs agent

Hi,

Are you using some really old kernel?

On Fri, Sep 24, 2010 at 03:25:12AM +0200, ext Viswanathan Sankararam wrote:
> All, the following is the log I get on my target when I try to pair.
> Any help with this is apprecaited. I see a message saying
> HCIGETAUTHINFO failed. Can someone explain what this is and if it may
> the reason for the issue? It seems to happen when the function
> hcid_dbus_link_key_notify executes.
>
> Thanks
> Vishwa
>
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
> adapter_get_device(00:1F:20:06:47:65)
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
> adapter_create_device(00:1F:20:06:47:65)
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]: Creating device
> /org/bluez/1071/hci0/dev_00_1F_20_06_47_65
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
> btd_device_ref(0x8052ae8): ref=1
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
> /org/bluez/1071/hci0/dev_00_1F_20_06_47_65: requesting bonding
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]: Temporary agent
> registered for /org/bluez/1071/hci0/dev_00_1F_20_06_47_65 at
> :1.4:/org/bluez/agent_1101
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
> adapter_get_device(00:1F:20:06:47:65)
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]: link_key_request
> (sba=40:61:86:A5:0E:E1, dba=00:1F:20:06:47:65)
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]: kernel auth
> requirements = 0x00
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]: pin_code_request
> (sba=40:61:86:A5:0E:E1, dba=00:1F:20:06:47:65)
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
> adapter_get_device(00:1F:20:06:47:65)
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
> /org/bluez/1071/hci0/dev_00_1F_20_06_47_65: requesting agent
> authentication
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]: link_key_notify
> (sba=40:61:86:A5:0E:E1, dba=00:1F:20:06:47:65, type=0)
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
> adapter_get_device(00:1F:20:06:47:65)
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]: HCIGETAUTHINFO
> failed: Invalid argument (22)
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]: local auth 0xff and
> remote auth 0xff
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]: storing link key of type 0x00
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
> hcid_dbus_bonding_process_complete: status=00
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
> adapter_get_device(00:1F:20:06:47:65)
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]: Releasing agent
> :1.4, /org/bluez/agent_1101
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]: DiscoverServices
> requestor exited
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]: Removing temporary
> device /org/bluez/1071/hci0/dev_00_1F_20_06_47_65
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]: Removing device
> /org/bluez/1071/hci0/dev_00_1F_20_06_47_65
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
> btd_device_unref(0x8052ae8): ref=0
> I//system/bin/bluetoothd( 1070): bluetoothd[1071]: device_free(0x8052ae8)
>
> On Thu, Sep 23, 2010 at 11:50 AM, Viswanathan Sankararam
> <[email protected]> wrote:
> > Anyone, any ideas?
> >
> > On Thu, Sep 23, 2010 at 6:36 AM, Paul Matz <[email protected]> wrote:
> >> 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
> >> <[email protected]> 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 [email protected]
> >>> More majordomo info at http://vger.kernel.org/majordomo-info.html
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> >> the body of a message to [email protected]
> >> More majordomo info at http://vger.kernel.org/majordomo-info.html
> >>
> >
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2010-09-24 01:25:12

by Viswanathan Sankararam

[permalink] [raw]
Subject: Re: Bluez simple-agent vs agent

All, the following is the log I get on my target when I try to pair.
Any help with this is apprecaited. I see a message saying
HCIGETAUTHINFO failed. Can someone explain what this is and if it may
the reason for the issue? It seems to happen when the function
hcid_dbus_link_key_notify executes.

Thanks
Vishwa

I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
adapter_get_device(00:1F:20:06:47:65)
I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
adapter_create_device(00:1F:20:06:47:65)
I//system/bin/bluetoothd( 1070): bluetoothd[1071]: Creating device
/org/bluez/1071/hci0/dev_00_1F_20_06_47_65
I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
btd_device_ref(0x8052ae8): ref=1
I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
/org/bluez/1071/hci0/dev_00_1F_20_06_47_65: requesting bonding
I//system/bin/bluetoothd( 1070): bluetoothd[1071]: Temporary agent
registered for /org/bluez/1071/hci0/dev_00_1F_20_06_47_65 at
:1.4:/org/bluez/agent_1101
I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
adapter_get_device(00:1F:20:06:47:65)
I//system/bin/bluetoothd( 1070): bluetoothd[1071]: link_key_request
(sba=40:61:86:A5:0E:E1, dba=00:1F:20:06:47:65)
I//system/bin/bluetoothd( 1070): bluetoothd[1071]: kernel auth
requirements = 0x00
I//system/bin/bluetoothd( 1070): bluetoothd[1071]: pin_code_request
(sba=40:61:86:A5:0E:E1, dba=00:1F:20:06:47:65)
I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
adapter_get_device(00:1F:20:06:47:65)
I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
/org/bluez/1071/hci0/dev_00_1F_20_06_47_65: requesting agent
authentication
I//system/bin/bluetoothd( 1070): bluetoothd[1071]: link_key_notify
(sba=40:61:86:A5:0E:E1, dba=00:1F:20:06:47:65, type=0)
I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
adapter_get_device(00:1F:20:06:47:65)
I//system/bin/bluetoothd( 1070): bluetoothd[1071]: HCIGETAUTHINFO
failed: Invalid argument (22)
I//system/bin/bluetoothd( 1070): bluetoothd[1071]: local auth 0xff and
remote auth 0xff
I//system/bin/bluetoothd( 1070): bluetoothd[1071]: storing link key of type 0x00
I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
hcid_dbus_bonding_process_complete: status=00
I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
adapter_get_device(00:1F:20:06:47:65)
I//system/bin/bluetoothd( 1070): bluetoothd[1071]: Releasing agent
:1.4, /org/bluez/agent_1101
I//system/bin/bluetoothd( 1070): bluetoothd[1071]: DiscoverServices
requestor exited
I//system/bin/bluetoothd( 1070): bluetoothd[1071]: Removing temporary
device /org/bluez/1071/hci0/dev_00_1F_20_06_47_65
I//system/bin/bluetoothd( 1070): bluetoothd[1071]: Removing device
/org/bluez/1071/hci0/dev_00_1F_20_06_47_65
I//system/bin/bluetoothd( 1070): bluetoothd[1071]:
btd_device_unref(0x8052ae8): ref=0
I//system/bin/bluetoothd( 1070): bluetoothd[1071]: device_free(0x8052ae8)

On Thu, Sep 23, 2010 at 11:50 AM, Viswanathan Sankararam
<[email protected]> wrote:
> Anyone, any ideas?
>
> On Thu, Sep 23, 2010 at 6:36 AM, Paul Matz <[email protected]> wrote:
>> 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
>> <[email protected]> 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 [email protected]
>>> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
>> the body of a message to [email protected]
>> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>>
>

2010-09-23 18:50:58

by Viswanathan Sankararam

[permalink] [raw]
Subject: Re: Bluez simple-agent vs agent

Anyone, any ideas?

On Thu, Sep 23, 2010 at 6:36 AM, Paul Matz <[email protected]> wrote:
> 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
> <[email protected]> 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 [email protected]
>> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to [email protected]
> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>