2003-08-08 10:27:05

by Olivier Bornet

[permalink] [raw]
Subject: [Bluez-devel] [Bluez-users] Problem Phone -> BlueZ with USB dongle (CSR BlueCore02)

Hello,

[as we have some problems with CSR BC02 chips, and no one answer this on
bluez-user, I'm reposting this on bluez-devel.]

I have some problems to send a file from a T68i phone via Obex to a
BlueZ Linux computer (2.4.21-mh2).

After some investigations, I have found that the problem is only when
the PC is configured as master,accept, and with a BlueCore02 version of
the CSR chip. (BlueCore01b is working OK).

I have done some tests with two differents bluetooth devices:
(Note: all the tests here are without sdp/obex server, as the problem is
before them).

- a USB dongle (Billionton):
hciconfig hci0 revision
hci0: Type: USB
BD Address: 00:10:60:A2:48:AE ACL MTU: 192:8 SCO MTU: 64:8
HCI 16.4
Chip version: BlueCore02
Max key size: 56 bit
SCO mapping: HCI

- a PCMCIA 3Com card:
hci0: Type: PCCARD
BD Address: 00:04:76:E1:2E:A2 ACL MTU: 128:8 SCO MTU: 64:8
HCI 11.2
Chip version: BlueCore01b
SCO mapping: HCI

Here are all my tests:

1. T68i -> PCMCIA card:

a. hciconfig hci0 lm accept

result: OK. hcidump -x trace:

> HCI Event: Connect Request(0x04) plen 10
86 0F DE 37 80 00 04 02 52 01
< HCI Command: Accept Connection Request(0x01|0x0009) plen 7
86 0F DE 37 80 00 01
> HCI Event: Command Status(0x0f) plen 4
00 01 09 04
> HCI Event: Connect Complete(0x03) plen 11
00 28 00 86 0F DE 37 80 00 01 00
< HCI Command: Write Link Policy Settings(0x02|0x000d) plen 4
28 00 0E 00
> HCI Event: Command Complete(0x0e) plen 6
01 0D 08 00 28 00
< HCI Command: Change Connection Packet Type(0x01|0x000f) plen 4
28 00 18 CC
> HCI Event: Command Status(0x0f) plen 4
1A 01 0F 04
> ACL data: handle 0x0028 flags 0x02 dlen 12
L2CAP(s): Connect req: psm 1 scid 0x008d
< ACL data: handle 0x0028 flags 0x02 dlen 16
L2CAP(s): Connect rsp: dcid 0x0000 scid 0x008d result 2 status 0
> HCI Event: Number of Completed Packets(0x13) plen 5
01 28 00 01 00
> HCI Event: Disconn Complete(0x05) plen 4
00 28 00 13


b. hciconfig hci0 lm master,accept

result: OK. hcidump -x trace:

> HCI Event: Connect Request(0x04) plen 10
86 0F DE 37 80 00 04 02 52 01
< HCI Command: Accept Connection Request(0x01|0x0009) plen 7
86 0F DE 37 80 00 00
> HCI Event: Command Status(0x0f) plen 4
00 01 09 04
> HCI Event: Connect Complete(0x03) plen 11
00 28 00 86 0F DE 37 80 00 01 00
< HCI Command: Write Link Policy Settings(0x02|0x000d) plen 4
28 00 0E 00
> HCI Event: Command Complete(0x0e) plen 6
01 0D 08 00 28 00
< HCI Command: Change Connection Packet Type(0x01|0x000f) plen 4
28 00 18 CC
> HCI Event: Command Status(0x0f) plen 4
1A 01 0F 04
> ACL data: handle 0x0028 flags 0x02 dlen 12
L2CAP(s): Connect req: psm 1 scid 0x008e
< ACL data: handle 0x0028 flags 0x02 dlen 16
L2CAP(s): Connect rsp: dcid 0x0000 scid 0x008e result 2 status 0
> HCI Event: Number of Completed Packets(0x13) plen 5
01 28 00 01 00
> HCI Event: Disconn Complete(0x05) plen 4
00 28 00 08


1. T68i -> USB dongle:

a. hciconfig hci0 lm accept

result: OK. hcidump -x trace:

> HCI Event: Connect Request(0x04) plen 10
86 0F DE 37 80 00 04 02 52 01
< HCI Command: Accept Connection Request(0x01|0x0009) plen 7
86 0F DE 37 80 00 01
> HCI Event: Command Status(0x0f) plen 4
00 01 09 04
> HCI Event: Connect Complete(0x03) plen 11
00 29 00 86 0F DE 37 80 00 01 00
< HCI Command: Write Link Policy Settings(0x02|0x000d) plen 4
29 00 0E 00
> HCI Event: Page Scan Repetition Mode Change(0x20) plen 7
86 0F DE 37 80 00 01
> HCI Event: Command Complete(0x0e) plen 6
01 0D 08 00 29 00
< HCI Command: Change Connection Packet Type(0x01|0x000f) plen 4
29 00 18 CC
> HCI Event: Command Status(0x0f) plen 4
00 01 0F 04
> HCI Event: Connection Packet Type Changed(0x1d) plen 5
00 29 00 18 00
> ACL data: handle 0x0029 flags 0x02 dlen 12
L2CAP(s): Connect req: psm 1 scid 0x008f
> HCI Event: Disconn Complete(0x05) plen 4
00 29 00 13


b. hciconfig hci0 lm master,accept

result: NOT OK. hcidump -x trace:

> HCI Event: Connect Request(0x04) plen 10
86 0F DE 37 80 00 04 02 52 01
< HCI Command: Accept Connection Request(0x01|0x0009) plen 7
86 0F DE 37 80 00 00
> HCI Event: Command Status(0x0f) plen 4
00 01 09 04
> HCI Event: Connect Complete(0x03) plen 11
1A 29 00 86 0F DE 37 80 00 01 00

Phone stop here with "Bluetooth connection failed".

3. PCMCIA card -> USB dongle:

a. hciconfig hci0 lm accept (on USB dongle)

result: OK. hcidump -x trace:

> HCI Event: Connect Request(0x04) plen 10
A2 2E E1 76 04 00 10 01 12 01
< HCI Command: Accept Connection Request(0x01|0x0009) plen 7
A2 2E E1 76 04 00 01
> HCI Event: Command Status(0x0f) plen 4
00 01 09 04
> HCI Event: Connect Complete(0x03) plen 11
00 29 00 A2 2E E1 76 04 00 01 00
< HCI Command: Write Link Policy Settings(0x02|0x000d) plen 4
29 00 0E 00
> HCI Event: Page Scan Repetition Mode Change(0x20) plen 7
A2 2E E1 76 04 00 01
> HCI Event: Max Slots Change(0x1b) plen 3
29 00 05
> HCI Event: Command Complete(0x0e) plen 6
01 0D 08 00 29 00
< HCI Command: Change Connection Packet Type(0x01|0x000f) plen 4
29 00 18 CC
> HCI Event: Command Status(0x0f) plen 4
00 01 0F 04
> HCI Event: Connection Packet Type Changed(0x1d) plen 5
00 29 00 18 CC
> ACL data: handle 0x0029 flags 0x02 dlen 12
L2CAP(s): Connect req: psm 3 scid 0x0040
> HCI Event: Disconn Complete(0x05) plen 4
00 29 00 13

b. hciconfig hci0 lm master,accept (on USB dongle)
hciconfig hci0 lm master,accept (on PCMCIA card)

result: NOT OK. hcidump -x trace:

> HCI Event: Connect Request(0x04) plen 10
A2 2E E1 76 04 00 10 01 12 01
< HCI Command: Accept Connection Request(0x01|0x0009) plen 7
A2 2E E1 76 04 00 00
> HCI Event: Command Status(0x0f) plen 4
00 01 09 04
> HCI Event: Connect Complete(0x03) plen 11
21 29 00 A2 2E E1 76 04 00 01 00

PC stops here with: "Can't connect. Function not implemented
(38)". I'm using obextool for this.

c. hciconfig hci0 lm master,accept (on USB dongle)
hciconfig hci0 lm accept (on PCMCIA card)

result: OK. hcidump -x trace:

> HCI Event: Connect Request(0x04) plen 10
A2 2E E1 76 04 00 10 01 12 01
< HCI Command: Accept Connection Request(0x01|0x0009) plen 7
A2 2E E1 76 04 00 00
> HCI Event: Command Status(0x0f) plen 4
00 01 09 04
> HCI Event: Role Change(0x12) plen 8
00 A2 2E E1 76 04 00 00
> HCI Event: Connect Complete(0x03) plen 11
00 29 00 A2 2E E1 76 04 00 01 00
< HCI Command: Write Link Policy Settings(0x02|0x000d) plen 4
29 00 0E 00
> HCI Event: Page Scan Repetition Mode Change(0x20) plen 7
A2 2E E1 76 04 00 01
> HCI Event: Command Complete(0x0e) plen 6
01 0D 08 00 29 00
> ACL data: handle 0x0029 flags 0x02 dlen 12
L2CAP(s): Connect req: psm 3 scid 0x0040
< HCI Command: Change Connection Packet Type(0x01|0x000f) plen 4
29 00 18 CC
> HCI Event: Command Status(0x0f) plen 4
00 01 0F 04
> HCI Event: Connection Packet Type Changed(0x1d) plen 5
00 29 00 18 CC
> HCI Event: Max Slots Change(0x1b) plen 3
29 00 05
> HCI Event: Disconn Complete(0x05) plen 4
00 29 00 13

So, my questions are:

- is this a correct behavior ?
- is this a problem with the BC02 core, or is this a wrong comportement
of the BC01b (resulting of working better than the BC02 ;-) ?
- if this is a problem with the BC02 core, can we do something agins
this ?

I don't understand why the communication is stopped when the role switch
is not done (due to the phone/pc initiating the communication refusing
it I think). Is this requiered by the BT specifications, or is this a
BC02 core bug ?

Thanks in advance for any help.

Olivier
--
Olivier Bornet http://www.smartdata.ch/
[email protected] SMARTDATA SA
Phone: +41-27-723'55'03 Rue du Coll?ge 5A
GPG key ID: C53D9218 CH-1920 Martigny


Attachments:
(No filename) (9.50 kB)
(No filename) (189.00 B)
Download all attachments