2009-05-20 06:44:07

by Lan Zhu

[permalink] [raw]
Subject: bluetooth pairing issue in kernel 2.6.27

When pairing two Android devices?which are supported by?Bluez on
kernel 2.6.27,?it will always fail if the user can't finish the whole
procedure in 10 seconds. After some analysis we found the root cause
is?that Bluez's HCI link's time out timer is set to 10s in the kernel,
and in?Bluez's create_bonding() function it calls l2raw_connect() to
create?only HCI link without L2CAP channel.

One easy way to fix this issue is to create L2CAP link when creating
bonding, but this is not a final solution, because
according to Bluetooth Specification, creating L2CAP link is only
optional in the bonding establishment procedure, so?the thorough way
to fix it is to alter the HCI link's time out timer when handling
bonding request.

Does anyone know?has this?been fixed on?Bluez kernel's patch on
2.6.27, or on the 2.6.29 and later's?kernel?

Thanks,
Zhu Lan


2009-05-20 19:56:41

by Marcel Holtmann

[permalink] [raw]
Subject: Re: bluetooth pairing issue in kernel 2.6.30-rc5

Hi,

this mailing list does NOT tolerate top-posting. If you keep doing it, I
will just ignore your emails.

> I upgraded kernel 2.6.30-rc5 which includes below fixes
>
>
> Marcel Holtmann (4):
> Bluetooth: Move dev_set_name() to a context that can sleep
> Bluetooth: Fix wrong module refcount when connection setup fails
> Bluetooth: Don't use hci_acl_connect_cancel() for incoming connections
> Bluetooth: Don't trigger disconnect timeout for security mode 3 pairing
> i am using bluez 4.32 .After that i tried a2dp connection with automatic key option which is failed.
> because Error : Authentication failure is thrown by another end. Is this problem with remote bluetooth dongle ?
> Do i need to upgrade bluez to latest version?

Please test 2.6.30-rc6 as I asked you to. And also use bluez-4.40 and
see if it works there.

Regards

Marcel



2009-05-20 17:56:28

by Balaji Palaniswami

[permalink] [raw]
Subject: Re: bluetooth pairing issue in kernel 2.6.30-rc5

Hi ,

I upgraded kernel 2.6.30-rc5 which includes below fixes


Marcel Holtmann (4):
Bluetooth: Move dev_set_name() to a context that can sleep
Bluetooth: Fix wrong module refcount when connection setup fails
Bluetooth: Don't use hci_acl_connect_cancel() for incoming connections
Bluetooth: Don't trigger disconnect timeout for security mode 3 pairing
i am using bluez 4.32 .After that i tried a2dp connection with automatic key option which is failed.
because Error : Authentication failure is thrown by another end. Is this problem with remote bluetooth dongle ?
Do i need to upgrade bluez to latest version?

Please help me to reslove the issue.

Thanks,
Balaji.P

Following dump is captured during connection.

balaji@balaji-desktop:~$ sudo hcidump -XVt
HCI sniffer - Bluetooth packet analyzer ver 1.42
device: hci0 snap_len: 1028 filter: 0xffffffff
2009-05-21 04:34:58.084229 < HCI Command: Periodic Inquiry Mode (0x01|0x0003) plen 9
max 24 min 16 lap 0x9e8b33 len 8 num 0
2009-05-21 04:34:58.086376 > HCI Event: Command Complete (0x0e) plen 4
Periodic Inquiry Mode (0x01|0x0003) ncmd 1
status 0x00
2009-05-21 04:34:59.950376 > HCI Event: Inquiry Result with RSSI (0x22) plen 15
bdaddr 00:80:98:E7:32:2A mode 1 clkoffset 0x6065 class 0x04041c rssi -62
2009-05-21 04:35:02.842471 < HCI Command: Exit Periodic Inquiry Mode (0x01|0x0004) plen 0
2009-05-21 04:35:02.845380 > HCI Event: Command Complete (0x0e) plen 4
Exit Periodic Inquiry Mode (0x01|0x0004) ncmd 1
status 0x00
2009-05-21 04:35:02.852316 < HCI Command: Create Connection (0x01|0x0005) plen 13
bdaddr 00:80:98:E7:32:2A ptype 0xcc18 rswitch 0x01 clkoffset 0x6065 (valid)
Packet type: DM1 DM3 DM5 DH1 DH3 DH5
2009-05-21 04:35:02.856377 > HCI Event: Command Status (0x0f) plen 4
Create Connection (0x01|0x0005) status 0x00 ncmd 1
2009-05-21 04:35:03.691386 > HCI Event: Connect Complete (0x03) plen 11
status 0x00 handle 21 bdaddr 00:80:98:E7:32:2A type ACL encrypt 0x00
2009-05-21 04:35:03.691411 < HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2
handle 21
2009-05-21 04:35:03.694380 > HCI Event: Command Status (0x0f) plen 4
Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 1
2009-05-21 04:35:03.695285 < HCI Command: Remote Name Request (0x01|0x0019) plen 10
bdaddr 00:80:98:E7:32:2A mode 2 clkoffset 0x0000
2009-05-21 04:35:03.771388 > HCI Event: Max Slots Change (0x1b) plen 3
handle 21 slots 5
2009-05-21 04:35:03.773382 > HCI Event: Connection Packet Type Changed (0x1d) plen 5
status 0x00 handle 21 ptype 0xcc18
Packet type: DM1 DM3 DM5 DH1 DH3 DH5
2009-05-21 04:35:03.775380 > HCI Event: Read Remote Supported Features (0x0b) plen 11
status 0x00 handle 21
Features: 0xff 0xff 0x8f 0x7e 0x98 0x1f 0x59 0x83
2009-05-21 04:35:03.777379 > HCI Event: Command Status (0x0f) plen 4
Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
2009-05-21 04:35:03.777392 < HCI Command: Read Remote Extended Features (0x01|0x001c) plen 3
handle 21 page 1
2009-05-21 04:35:03.810390 > HCI Event: Remote Host Supported Features Notification (0x3d) plen 14
bdaddr 00:80:98:E7:32:2A
Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
2009-05-21 04:35:03.893380 > HCI Event: Remote Name Req Complete (0x07) plen 255
status 0x00 bdaddr 00:80:98:E7:32:2A name 'PTS-A2DP-JKUMAPTS-A2DP-'
2009-05-21 04:35:03.895378 > HCI Event: Command Status (0x0f) plen 4
Read Remote Extended Features (0x01|0x001c) status 0x00 ncmd 1
2009-05-21 04:35:03..895395 < HCI Command: Read Remote Version Information (0x01|0x001d) plen 2
handle 21
2009-05-21 04:35:03.897380 > HCI Event: Read Remote Extended Features (0x23) plen 13
status 0x00 handle 21 page 1 max 1
Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
2009-05-21 04:35:03.899378 > HCI Event: Command Status (0x0f) plen 4
Read Remote Version Information (0x01|0x001d) status 0x00 ncmd 1
2009-05-21 04:35:03.899392 < HCI Command: Authentication Requested (0x01|0x0011) plen 2
handle 21
2009-05-21 04:35:03.901378 > HCI Event: Command Status (0x0f) plen 4
Authentication Requested (0x01|0x0011) status 0x00 ncmd 1
2009-05-21 04:35:03.903378 > HCI Event: Link Key Request (0x17) plen 6
bdaddr 00:80:98:E7:32:2A
2009-05-21 04:35:03.905821 < HCI Command: Link Key Request Negative Reply (0x01|0x000c) plen 6
bdaddr 00:80:98:E7:32:2A
2009-05-21 04:35:03.907377 > HCI Event: Command Complete (0x0e) plen 10
Link Key Request Negative Reply (0x01|0x000c) ncmd 1
status 0x00 bdaddr 00:80:98:E7:32:2A
2009-05-21 04:35:03.909376 > HCI Event: IO Capability Request (0x31) plen 6
bdaddr 00:80:98:E7:32:2A
2009-05-21 04:35:03.909499 < HCI Command: IO Capability Request Reply (0x01|0x002b) plen 9
bdaddr 00:80:98:E7:32:2A capability 0x00 oob 0x00 auth 0x03
Capability: DisplayOnly (OOB data not present)
Authentication: Dedicated Bonding (MITM Protection)
2009-05-21 04:35:03.911376 > HCI Event: Command Complete (0x0e) plen 10
IO Capability Request Reply (0x01|0x002b) ncmd 1
status 0x00 bdaddr 00:80:98:E7:32:2A
2009-05-21 04:35:03.925382 > HCI Event: Read Remote Ver Info Complete (0x0c) plen 8
status 0x00 handle 21
LMP Version: 2.1 (0x4) LMP Subversion: 0x14f0
Manufacturer: Cambridge Silicon Radio (10)
2009-05-21 04:35:04.315386 > HCI Event: IO Capability Response (0x32) plen 9
bdaddr 00:80:98:E7:32:2A capability 0x01 oob 0x00 auth 0x02
Capability: DisplayYesNo (OOB data not present)
Authentication: Dedicated Bonding (No MITM Protection)
2009-05-21 04:35:05.002381 > HCI Event: User Confirmation Request (0x33) plen 10
bdaddr 00:80:98:E7:32:2A passkey 245729
2009-05-21 04:35:08.431388 > HCI Event: Inquiry Complete (0x01) plen 1
status 0x00
2009-05-21 04:35:35.469398 > HCI Event: Simple Pairing Complete (0x36) plen 7
status 0x05 bdaddr 00:80:98:E7:32:2A
Error: Authentication Failure
2009-05-21 04:35:35.471393 > HCI Event: Auth Complete (0x06) plen 3
status 0x05 handle 21
Error: Authentication Failure
2009-05-21 04:35:35.471557 < HCI Command: User Confirmation Request Negative Reply (0x01|0x002d) plen 6
bdaddr 00:80:98:E7:32:2A
2009-05-21 04:35:37.468080 < HCI Command: Disconnect (0x01|0x0006) plen 3
handle 21 reason 0x13
Reason: Remote User Terminated Connection
2009-05-21 04:35:37.470392 > HCI Event: Command Status (0x0f) plen 4
Disconnect (0x01|0x0006) status 0x00 ncmd 1
2009-05-21 04:35:37.652402 > HCI Event: Disconn Complete (0x05) plen 4
status 0x00 handle 21 reason 0x16
Reason: Connection Terminated by Local Host




----- Original Message ----
From: Marcel Holtmann <[email protected]>
To: lan zhu <[email protected]>
Cc: [email protected]
Sent: Wednesday, 20 May, 2009 1:18:11 PM
Subject: Re: bluetooth pairing issue in kernel 2.6.27

Hi,

> When pairing two Android devices which are supported by Bluez on
> kernel 2.6.27, it will always fail if the user can't finish the whole
> procedure in 10 seconds. After some analysis we found the root cause
> is that Bluez's HCI link's time out timer is set to 10s in the kernel,
> and in Bluez's create_bonding() function it calls l2raw_connect() to
> create only HCI link without L2CAP channel.
>
> One easy way to fix this issue is to create L2CAP link when creating
> bonding, but this is not a final solution, because
> according to Bluetooth Specification, creating L2CAP link is only
> optional in the bonding establishment procedure, so the thorough way
> to fix it is to alter the HCI link's time out timer when handling
> bonding request.
>
> Does anyone know has this been fixed on Bluez kernel's patch on
> 2.6.27, or on the 2.6.29 and later's kernel?

the 2.6.30-rc6 kernel should contains fixes for this to make pairing
smooth with either Legacy or Simple Pairing.

Regards

Marcel


Attachments:
a2dp_log.txt (5.73 kB)

2009-05-20 07:48:11

by Marcel Holtmann

[permalink] [raw]
Subject: Re: bluetooth pairing issue in kernel 2.6.27

Hi,

> When pairing two Android devices which are supported by Bluez on
> kernel 2.6.27, it will always fail if the user can't finish the whole
> procedure in 10 seconds. After some analysis we found the root cause
> is that Bluez's HCI link's time out timer is set to 10s in the kernel,
> and in Bluez's create_bonding() function it calls l2raw_connect() to
> create only HCI link without L2CAP channel.
>
> One easy way to fix this issue is to create L2CAP link when creating
> bonding, but this is not a final solution, because
> according to Bluetooth Specification, creating L2CAP link is only
> optional in the bonding establishment procedure, so the thorough way
> to fix it is to alter the HCI link's time out timer when handling
> bonding request.
>
> Does anyone know has this been fixed on Bluez kernel's patch on
> 2.6.27, or on the 2.6.29 and later's kernel?

the 2.6.30-rc6 kernel should contains fixes for this to make pairing
smooth with either Legacy or Simple Pairing.

Regards

Marcel