All of lore.kernel.org
 help / color / mirror / Atom feed
* Keeping hci interface powered
@ 2015-01-04  0:27 James Cloos
  2015-01-04  1:40 ` Marcel Holtmann
  0 siblings, 1 reply; 16+ messages in thread
From: James Cloos @ 2015-01-04  0:27 UTC (permalink / raw)
  To: linux-bluetooth

I recently assembled a box for htpc duties, including a bluetooth
keyboard.

It mostly works, except that the hci interface continually powers down.

I suspect every time the keyboard powers down,the hci does, too.

How can I prevent that?

I want the hci always to be powered, so that the keyboard can reconnect
every time I hit a key.

As it is, whenever I want to use it, I have to ssh in from another
system, run bluetoothctl and therein run power on and connect $MAC.

You can imagine how frustrating that is.

The box has a Gigabyte F2A88XN-WIFI board, which came with a laptop-
style mini-pcie card with an intel 7260 802.11n on the pcie and an
8087:07dc bluetooth on the usb.

bluetoothctl show says:

Controller 80:86:xx:xx:xx:xx
	Name: BlueZ 5.27
	Alias: BlueZ 5.27
	Class: 0x000104
	Powered: yes
	Discoverable: no
	Pairable: yes
	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
	UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
	UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
	UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
	UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
	Modalias: usb:v1D6Bp0246d051B
	Discovering: no

Thanks,

-JimC
-- 
James Cloos <cloos@jhcloos.com>         OpenPGP: 0x997A9F17ED7DAEA6

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Keeping hci interface powered
  2015-01-04  0:27 Keeping hci interface powered James Cloos
@ 2015-01-04  1:40 ` Marcel Holtmann
  2015-01-05 21:28   ` James Cloos
  0 siblings, 1 reply; 16+ messages in thread
From: Marcel Holtmann @ 2015-01-04  1:40 UTC (permalink / raw)
  To: James Cloos; +Cc: linux-bluetooth

Hi James,

> I recently assembled a box for htpc duties, including a bluetooth
> keyboard.
> 
> It mostly works, except that the hci interface continually powers down.
> 
> I suspect every time the keyboard powers down,the hci does, too.
> 
> How can I prevent that?
> 
> I want the hci always to be powered, so that the keyboard can reconnect
> every time I hit a key.
> 
> As it is, whenever I want to use it, I have to ssh in from another
> system, run bluetoothctl and therein run power on and connect $MAC.

it should not do that at all. Once a controller is powered that should stay until you tell it otherwise.

However what might happen is that the whole machine goes to sleep and the Bluetooth controllers gets kicked off the USB bus. That is something we can't do anything about. So check dmesg and look for USB disconnects.

You can also check with btmon what happens when the keyboard disconnects. If the controller goes away it will tell you as well.

Regards

Marcel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Keeping hci interface powered
  2015-01-04  1:40 ` Marcel Holtmann
@ 2015-01-05 21:28   ` James Cloos
  2015-01-05 21:47     ` Marcel Holtmann
  0 siblings, 1 reply; 16+ messages in thread
From: James Cloos @ 2015-01-05 21:28 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: linux-bluetooth

MH> it should not do that at all. Once a controller is powered that should stay until you tell it otherwise.

Since I wrote, I powerred it back on and is has remained up, but still
refuses to reconnect to the keyboard w/o an explicit connect command in
bluetoothctl.

MH> You can also check with btmon what happens when the keyboard
MH> disconnects. If the controller goes away it will tell you as well.

I ran btmon until the keyboard disconnected; the last few events were:

,----
| > HCI Event: Mode Change (0x14) plen 6                                       [hci0] 4313.775232
|         Status: Remote User Terminated Connection (0x13)
|         Handle: 256
|         Mode: Active (0x00)
|         Interval: 0.000 msec (0x0000)
| > HCI Event: Disconnect Complete (0x05) plen 4                               [hci0] 4313.777078
|         Status: Success (0x00)
|         Handle: 256
|         Reason: Remote User Terminated Connection (0x13)
| @ Device Disconnected: 90:7F:xx:xx:xx:xx (0) reason 3
| < HCI Command: Write Scan Enable (0x03|0x001a) plen 1                        [hci0] 4313.788169
|         Scan enable: Page Scan (0x02)
| > HCI Event: Command Complete (0x0e) plen 4                                  [hci0] 4313.790072
|       Write Scan Enable (0x03|0x001a) ncmd 2
|         Status: Success (0x00)
`----


Today I ran hcidump and hit a key on the keyboard; that showed:

,----
| > HCI Event: Connect Request (0x04) plen 10
|     bdaddr 90:7F:xx:xx:xx:xx class 0x000540 type ACL
| < HCI Command: Accept Connection Request (0x01|0x0009) plen 7
|     bdaddr 90:7F:xx:xx:xx:xx role 0x00
|     Role: Master
| > HCI Event: Command Status (0x0f) plen 4
|     Accept Connection Request (0x01|0x0009) status 0x00 ncmd 1
| > HCI Event: Role Change (0x12) plen 8
|     status 0x00 bdaddr 90:7F:xx:xx:xx:xx role 0x00
|     Role: Master
| > HCI Event: Connect Complete (0x03) plen 11
|     status 0x00 handle 256 bdaddr 90:7F:xx:xx:xx:xx type ACL encrypt 0x00
| < HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2
|     handle 256
| > HCI Event: Command Status (0x0f) plen 4
|     Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 1
| < HCI Command: Write Scan Enable (0x03|0x001a) plen 1
|     enable 0
| > HCI Event: Max Slots Change (0x1b) plen 3
|     handle 256 slots 5
| > HCI Event: Command Complete (0x0e) plen 4
|     Write Scan Enable (0x03|0x001a) ncmd 2
|     status 0x00
| > HCI Event: Read Remote Supported Features (0x0b) plen 11
|     status 0x00 handle 256
|     Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
| < HCI Command: Read Remote Extended Features (0x01|0x001c) plen 3
|     handle 256 page 1
| > HCI Event: Command Status (0x0f) plen 4
|     Read Remote Extended Features (0x01|0x001c) status 0x00 ncmd 1
| > HCI Event: Read Remote Extended Features (0x23) plen 13
|     status 0x00 handle 256 page 1 max 0
|     Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
| < HCI Command: Remote Name Request (0x01|0x0019) plen 10
|     bdaddr 90:7F:xx:xx:xx:xx mode 2 clkoffset 0x0000
| < ACL data: handle 256 flags 0x00 dlen 10
|     L2CAP(s): Info req: type 2
| > ACL data: handle 256 flags 0x02 dlen 12
|     L2CAP(s): Connect req: psm 17 scid 0x0045
| > HCI Event: Command Status (0x0f) plen 4
|     Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
| < ACL data: handle 256 flags 0x00 dlen 16
|     L2CAP(s): Connect rsp: dcid 0x0000 scid 0x0045 result 3 status 0
|       Connection refused - security block
| > ACL data: handle 256 flags 0x02 dlen 16
|     L2CAP(s): Info rsp: type 2 result 0
|       Extended feature mask 0x0280
|         Fixed Channels
|         Unicast Connectless Data Reception
| > HCI Event: Number of Completed Packets (0x13) plen 5
|     handle 256 packets 1
| < ACL data: handle 256 flags 0x00 dlen 10
|     L2CAP(s): Info req: type 3
| > HCI Event: Number of Completed Packets (0x13) plen 5
|     handle 256 packets 1
| > HCI Event: Command Complete (0x0e) plen 4
|     Set AFH Host Channel Classification (0x03|0x003f) ncmd 2
|     status 0x00
| > HCI Event: Remote Name Req Complete (0x07) plen 255
|     status 0x13 bdaddr 90:7F:xx:xx:xx:xx name ''
|     Error: Remote User Terminated Connection
| > HCI Event: Disconn Complete (0x05) plen 4
|     status 0x00 handle 256 reason 0x13
|     Reason: Remote User Terminated Connection
| < HCI Command: Write Scan Enable (0x03|0x001a) plen 1
|     enable 2
| > HCI Event: Command Complete (0x0e) plen 4
|     Write Scan Enable (0x03|0x001a) ncmd 2
|     status 0x00
| > HCI Event: Connect Request (0x04) plen 10
|     bdaddr 90:7F:xx:xx:xx:xx class 0x000540 type ACL
| < HCI Command: Accept Connection Request (0x01|0x0009) plen 7
|     bdaddr 90:7F:xx:xx:xx:xx role 0x00
|     Role: Master
| > HCI Event: Command Status (0x0f) plen 4
|     Accept Connection Request (0x01|0x0009) status 0x00 ncmd 1
| > HCI Event: Role Change (0x12) plen 8
|     status 0x00 bdaddr 90:7F:xx:xx:xx:xx role 0x00
|     Role: Master
| > HCI Event: Connect Complete (0x03) plen 11
|     status 0x00 handle 256 bdaddr 90:7F:xx:xx:xx:xx type ACL encrypt 0x00
| < HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2
|     handle 256
| > HCI Event: Command Status (0x0f) plen 4
|     Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 1
| < HCI Command: Write Scan Enable (0x03|0x001a) plen 1
|     enable 0
| > HCI Event: Max Slots Change (0x1b) plen 3
|     handle 256 slots 5
| > HCI Event: Command Complete (0x0e) plen 4
|     Write Scan Enable (0x03|0x001a) ncmd 2
|     status 0x00
| > HCI Event: Read Remote Supported Features (0x0b) plen 11
|     status 0x00 handle 256
|     Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
| < HCI Command: Read Remote Extended Features (0x01|0x001c) plen 3
|     handle 256 page 1
| > HCI Event: Command Status (0x0f) plen 4
|     Read Remote Extended Features (0x01|0x001c) status 0x00 ncmd 1
| > HCI Event: Read Remote Extended Features (0x23) plen 13
|     status 0x00 handle 256 page 1 max 0
|     Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
| < HCI Command: Remote Name Request (0x01|0x0019) plen 10
|     bdaddr 90:7F:xx:xx:xx:xx mode 2 clkoffset 0x0000
| < ACL data: handle 256 flags 0x00 dlen 10
|     L2CAP(s): Info req: type 2
| > HCI Event: Command Status (0x0f) plen 4
|     Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
| > ACL data: handle 256 flags 0x02 dlen 12
|     L2CAP(s): Connect req: psm 17 scid 0x0040
| > HCI Event: Number of Completed Packets (0x13) plen 5
|     handle 256 packets 1
| < ACL data: handle 256 flags 0x00 dlen 16
|     L2CAP(s): Connect rsp: dcid 0x0000 scid 0x0040 result 3 status 0
|       Connection refused - security block
| > ACL data: handle 256 flags 0x02 dlen 16
|     L2CAP(s): Info rsp: type 2 result 0
|       Extended feature mask 0x0280
|         Fixed Channels
|         Unicast Connectless Data Reception
| < ACL data: handle 256 flags 0x00 dlen 10
|     L2CAP(s): Info req: type 3
| > HCI Event: Number of Completed Packets (0x13) plen 5
|     handle 256 packets 1
| > HCI Event: Number of Completed Packets (0x13) plen 5
|     handle 256 packets 1
| > HCI Event: Command Complete (0x0e) plen 4
|     Set AFH Host Channel Classification (0x03|0x003f) ncmd 2
|     status 0x00
| > HCI Event: Remote Name Req Complete (0x07) plen 255
|     status 0x13 bdaddr 90:7F:xx:xx:xx:xx name ''
|     Error: Remote User Terminated Connection
| > HCI Event: Disconn Complete (0x05) plen 4
|     status 0x00 handle 256 reason 0x13
|     Reason: Remote User Terminated Connection
| < HCI Command: Write Scan Enable (0x03|0x001a) plen 1
|     enable 2
| > HCI Event: Command Complete (0x0e) plen 4
|     Write Scan Enable (0x03|0x001a) ncmd 2
|     status 0x00
`----

As you can see, there are a couple of Connection refused - security
block errors.  Is there a permission issue which I miss?

For reference:

,----
| :; bluetoothctl 
| [NEW] Controller 80:86:xx:xx:xx:xx BlueZ 5.27 [default]
| [NEW] Device 90:7F:xx:xx:xx:xx ThinkPad Compact Bluetooth Keyboard with TrackPoint
| [bluetooth]# show
| Controller 80:86:xx:xx:xx:xx
| 	Name: BlueZ 5.27
| 	Alias: BlueZ 5.27
| 	Class: 0x000104
| 	Powered: yes
| 	Discoverable: no
| 	Pairable: yes
| 	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
| 	UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
| 	UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
| 	UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
| 	UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
| 	Modalias: usb:v1D6Bp0246d051B
| 	Discovering: no
| [bluetooth]# info 90:7F:xx:xx:xx:xx
| Device 90:7F:xx:xx:xx:xx
| 	Name: ThinkPad Compact Bluetooth Keyboard with TrackPoint
| 	Alias: ThinkPad Compact Bluetooth Keyboard with TrackPoint
| 	Class: 0x000540
| 	Icon: input-keyboard
| 	Paired: yes
| 	Trusted: yes
| 	Blocked: no
| 	Connected: no
| 	LegacyPairing: no
| 	UUID: Service Discovery Serve.. (00001000-0000-1000-8000-00805f9b34fb)
| 	UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb)
| 	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
| 	Modalias: usb:v17EFp6048d0309
`----

-JimC
-- 
James Cloos <cloos@jhcloos.com>         OpenPGP: 0x997A9F17ED7DAEA6

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Keeping hci interface powered
  2015-01-05 21:28   ` James Cloos
@ 2015-01-05 21:47     ` Marcel Holtmann
  2015-01-05 22:45       ` James Cloos
  0 siblings, 1 reply; 16+ messages in thread
From: Marcel Holtmann @ 2015-01-05 21:47 UTC (permalink / raw)
  To: James Cloos; +Cc: linux-bluetooth

Hi James,

> MH> it should not do that at all. Once a controller is powered that should stay until you tell it otherwise.
> 
> Since I wrote, I powerred it back on and is has remained up, but still
> refuses to reconnect to the keyboard w/o an explicit connect command in
> bluetoothctl.
> 
> MH> You can also check with btmon what happens when the keyboard
> MH> disconnects. If the controller goes away it will tell you as well.
> 
> I ran btmon until the keyboard disconnected; the last few events were:
> 
> ,----
> | > HCI Event: Mode Change (0x14) plen 6                                       [hci0] 4313.775232
> |         Status: Remote User Terminated Connection (0x13)
> |         Handle: 256
> |         Mode: Active (0x00)
> |         Interval: 0.000 msec (0x0000)
> | > HCI Event: Disconnect Complete (0x05) plen 4                               [hci0] 4313.777078
> |         Status: Success (0x00)
> |         Handle: 256
> |         Reason: Remote User Terminated Connection (0x13)
> | @ Device Disconnected: 90:7F:xx:xx:xx:xx (0) reason 3
> | < HCI Command: Write Scan Enable (0x03|0x001a) plen 1                        [hci0] 4313.788169
> |         Scan enable: Page Scan (0x02)
> | > HCI Event: Command Complete (0x0e) plen 4                                  [hci0] 4313.790072
> |       Write Scan Enable (0x03|0x001a) ncmd 2
> |         Status: Success (0x00)
> `----

this looks like a recent kernel since it cleanly handles the page scan. However Page Scan enabled means that you are again connectable. So once the keyboard disconnects, the kernel will accept new connections.

> Today I ran hcidump and hit a key on the keyboard; that showed:
> 
> ,----
> | > HCI Event: Connect Request (0x04) plen 10
> |     bdaddr 90:7F:xx:xx:xx:xx class 0x000540 type ACL
> | < HCI Command: Accept Connection Request (0x01|0x0009) plen 7
> |     bdaddr 90:7F:xx:xx:xx:xx role 0x00
> |     Role: Master
> | > HCI Event: Command Status (0x0f) plen 4
> |     Accept Connection Request (0x01|0x0009) status 0x00 ncmd 1
> | > HCI Event: Role Change (0x12) plen 8
> |     status 0x00 bdaddr 90:7F:xx:xx:xx:xx role 0x00
> |     Role: Master
> | > HCI Event: Connect Complete (0x03) plen 11
> |     status 0x00 handle 256 bdaddr 90:7F:xx:xx:xx:xx type ACL encrypt 0x00
> | < HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2
> |     handle 256
> | > HCI Event: Command Status (0x0f) plen 4
> |     Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 1
> | < HCI Command: Write Scan Enable (0x03|0x001a) plen 1
> |     enable 0
> | > HCI Event: Max Slots Change (0x1b) plen 3
> |     handle 256 slots 5
> | > HCI Event: Command Complete (0x0e) plen 4
> |     Write Scan Enable (0x03|0x001a) ncmd 2
> |     status 0x00
> | > HCI Event: Read Remote Supported Features (0x0b) plen 11
> |     status 0x00 handle 256
> |     Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
> | < HCI Command: Read Remote Extended Features (0x01|0x001c) plen 3
> |     handle 256 page 1
> | > HCI Event: Command Status (0x0f) plen 4
> |     Read Remote Extended Features (0x01|0x001c) status 0x00 ncmd 1
> | > HCI Event: Read Remote Extended Features (0x23) plen 13
> |     status 0x00 handle 256 page 1 max 0
> |     Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> | < HCI Command: Remote Name Request (0x01|0x0019) plen 10
> |     bdaddr 90:7F:xx:xx:xx:xx mode 2 clkoffset 0x0000
> | < ACL data: handle 256 flags 0x00 dlen 10
> |     L2CAP(s): Info req: type 2
> | > ACL data: handle 256 flags 0x02 dlen 12
> |     L2CAP(s): Connect req: psm 17 scid 0x0045
> | > HCI Event: Command Status (0x0f) plen 4
> |     Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> | < ACL data: handle 256 flags 0x00 dlen 16
> |     L2CAP(s): Connect rsp: dcid 0x0000 scid 0x0045 result 3 status 0
> |       Connection refused - security block
> | > ACL data: handle 256 flags 0x02 dlen 16
> |     L2CAP(s): Info rsp: type 2 result 0
> |       Extended feature mask 0x0280
> |         Fixed Channels
> |         Unicast Connectless Data Reception
> | > HCI Event: Number of Completed Packets (0x13) plen 5
> |     handle 256 packets 1
> | < ACL data: handle 256 flags 0x00 dlen 10
> |     L2CAP(s): Info req: type 3
> | > HCI Event: Number of Completed Packets (0x13) plen 5
> |     handle 256 packets 1
> | > HCI Event: Command Complete (0x0e) plen 4
> |     Set AFH Host Channel Classification (0x03|0x003f) ncmd 2
> |     status 0x00
> | > HCI Event: Remote Name Req Complete (0x07) plen 255
> |     status 0x13 bdaddr 90:7F:xx:xx:xx:xx name ''
> |     Error: Remote User Terminated Connection
> | > HCI Event: Disconn Complete (0x05) plen 4
> |     status 0x00 handle 256 reason 0x13
> |     Reason: Remote User Terminated Connection
> | < HCI Command: Write Scan Enable (0x03|0x001a) plen 1
> |     enable 2
> | > HCI Event: Command Complete (0x0e) plen 4
> |     Write Scan Enable (0x03|0x001a) ncmd 2
> |     status 0x00
> | > HCI Event: Connect Request (0x04) plen 10
> |     bdaddr 90:7F:xx:xx:xx:xx class 0x000540 type ACL
> | < HCI Command: Accept Connection Request (0x01|0x0009) plen 7
> |     bdaddr 90:7F:xx:xx:xx:xx role 0x00
> |     Role: Master
> | > HCI Event: Command Status (0x0f) plen 4
> |     Accept Connection Request (0x01|0x0009) status 0x00 ncmd 1
> | > HCI Event: Role Change (0x12) plen 8
> |     status 0x00 bdaddr 90:7F:xx:xx:xx:xx role 0x00
> |     Role: Master
> | > HCI Event: Connect Complete (0x03) plen 11
> |     status 0x00 handle 256 bdaddr 90:7F:xx:xx:xx:xx type ACL encrypt 0x00
> | < HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2
> |     handle 256
> | > HCI Event: Command Status (0x0f) plen 4
> |     Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 1
> | < HCI Command: Write Scan Enable (0x03|0x001a) plen 1
> |     enable 0
> | > HCI Event: Max Slots Change (0x1b) plen 3
> |     handle 256 slots 5
> | > HCI Event: Command Complete (0x0e) plen 4
> |     Write Scan Enable (0x03|0x001a) ncmd 2
> |     status 0x00
> | > HCI Event: Read Remote Supported Features (0x0b) plen 11
> |     status 0x00 handle 256
> |     Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
> | < HCI Command: Read Remote Extended Features (0x01|0x001c) plen 3
> |     handle 256 page 1
> | > HCI Event: Command Status (0x0f) plen 4
> |     Read Remote Extended Features (0x01|0x001c) status 0x00 ncmd 1
> | > HCI Event: Read Remote Extended Features (0x23) plen 13
> |     status 0x00 handle 256 page 1 max 0
> |     Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> | < HCI Command: Remote Name Request (0x01|0x0019) plen 10
> |     bdaddr 90:7F:xx:xx:xx:xx mode 2 clkoffset 0x0000
> | < ACL data: handle 256 flags 0x00 dlen 10
> |     L2CAP(s): Info req: type 2
> | > HCI Event: Command Status (0x0f) plen 4
> |     Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> | > ACL data: handle 256 flags 0x02 dlen 12
> |     L2CAP(s): Connect req: psm 17 scid 0x0040
> | > HCI Event: Number of Completed Packets (0x13) plen 5
> |     handle 256 packets 1
> | < ACL data: handle 256 flags 0x00 dlen 16
> |     L2CAP(s): Connect rsp: dcid 0x0000 scid 0x0040 result 3 status 0
> |       Connection refused - security block
> | > ACL data: handle 256 flags 0x02 dlen 16
> |     L2CAP(s): Info rsp: type 2 result 0
> |       Extended feature mask 0x0280
> |         Fixed Channels
> |         Unicast Connectless Data Reception
> | < ACL data: handle 256 flags 0x00 dlen 10
> |     L2CAP(s): Info req: type 3
> | > HCI Event: Number of Completed Packets (0x13) plen 5
> |     handle 256 packets 1
> | > HCI Event: Number of Completed Packets (0x13) plen 5
> |     handle 256 packets 1
> | > HCI Event: Command Complete (0x0e) plen 4
> |     Set AFH Host Channel Classification (0x03|0x003f) ncmd 2
> |     status 0x00
> | > HCI Event: Remote Name Req Complete (0x07) plen 255
> |     status 0x13 bdaddr 90:7F:xx:xx:xx:xx name ''
> |     Error: Remote User Terminated Connection
> | > HCI Event: Disconn Complete (0x05) plen 4
> |     status 0x00 handle 256 reason 0x13
> |     Reason: Remote User Terminated Connection
> | < HCI Command: Write Scan Enable (0x03|0x001a) plen 1
> |     enable 2
> | > HCI Event: Command Complete (0x0e) plen 4
> |     Write Scan Enable (0x03|0x001a) ncmd 2
> |     status 0x00
> `----
> 
> As you can see, there are a couple of Connection refused - security
> block errors.  Is there a permission issue which I miss?

So it is clearly that the actual connection attempt from the keyboard arrives and is allowed to continue by the lower layers. However when opening the L2CAP channels from the HID control and interrupt endpoints, it refuses to let you connect.

Can you check /sys/kernel/debug/bluetooth/hci0/link_keys that you indeed have the keys available.

However I have the fear that your keyboard is violating the Bluetooth spec. Please check /sys/kernel/debug/bluetooth/hci0/features or btmgmt info. I assume your local controller supports Secure Simple Pairing (every 2.1 or later controller does) and your keyboard does as well.

What this means is that the initiator device (in this case your keyboard) has to enable encryption. And BlueZ refuses the L2CAP connection if the ACL link is not encrypted (as mandated by the spec).

Can you run a hcitool info <bdaddr> against your keyboard and see who is the chip/module manufacturer on that keyboard.

> For reference:
> 
> ,----
> | :; bluetoothctl 
> | [NEW] Controller 80:86:xx:xx:xx:xx BlueZ 5.27 [default]
> | [NEW] Device 90:7F:xx:xx:xx:xx ThinkPad Compact Bluetooth Keyboard with TrackPoint
> | [bluetooth]# show
> | Controller 80:86:xx:xx:xx:xx
> | 	Name: BlueZ 5.27
> | 	Alias: BlueZ 5.27
> | 	Class: 0x000104
> | 	Powered: yes
> | 	Discoverable: no
> | 	Pairable: yes
> | 	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
> | 	UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
> | 	UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
> | 	UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
> | 	UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
> | 	Modalias: usb:v1D6Bp0246d051B
> | 	Discovering: no
> | [bluetooth]# info 90:7F:xx:xx:xx:xx
> | Device 90:7F:xx:xx:xx:xx
> | 	Name: ThinkPad Compact Bluetooth Keyboard with TrackPoint
> | 	Alias: ThinkPad Compact Bluetooth Keyboard with TrackPoint
> | 	Class: 0x000540
> | 	Icon: input-keyboard
> | 	Paired: yes
> | 	Trusted: yes
> | 	Blocked: no
> | 	Connected: no
> | 	LegacyPairing: no
> | 	UUID: Service Discovery Serve.. (00001000-0000-1000-8000-00805f9b34fb)
> | 	UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb)
> | 	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
> | 	Modalias: usb:v17EFp6048d0309
> `----

The LegacyPairing: no is not a 100% indication, but I assume your keyboard is actually a Bluetooth 2.1 keyboard with Secure Simple Pairing.

Do you have an exact model number or link? We might have to buy one of these keyboards.

Regards

Marcel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Keeping hci interface powered
  2015-01-05 21:47     ` Marcel Holtmann
@ 2015-01-05 22:45       ` James Cloos
  2015-01-05 23:29         ` Marcel Holtmann
  2015-01-06  1:01         ` BlueZ question about HID profile Gilbert Gao
  0 siblings, 2 replies; 16+ messages in thread
From: James Cloos @ 2015-01-05 22:45 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: linux-bluetooth

MH> this looks like a recent kernel

Yeah.  Linus' master at tag v3.18.

MH> since it cleanly handles the page scan. However Page Scan enabled
MH> means that you are again connectable. So once the keyboard
MH> disconnects, the kernel will accept new connections.

OK.  In retrospect, it is possible that I had suspended to ram before
the times when, in bluetoothctl, I needed power on before connect worked.

>> As you can see, there are a couple of Connection refused - security
>> block errors.  Is there a permission issue which I miss?

MH> So it is clearly that the actual connection attempt from the keyboard
MH> arrives and is allowed to continue by the lower layers. However when
MH> opening the L2CAP channels from the HID control and interrupt
MH> endpoints, it refuses to let you connect.

MH> Can you check /sys/kernel/debug/bluetooth/hci0/link_keys that you
MH> indeed have the keys available.

link_keys has the line:

  90:7f:xx:xx:xx:xx 4 eaxxxxxxxxxxxxxxxxxxxxxxxxxxxx1e 0

MH> However I have the fear that your keyboard is violating the Bluetooth
MH> spec. Please check /sys/kernel/debug/bluetooth/hci0/features or btmgmt
MH> info. I assume your local controller supports Secure Simple Pairing
MH> (every 2.1 or later controller does) and your keyboard does as well.

,----< debug/bluetooth/hci0/features >
|  0: 0xff 0xfe 0x0f 0xfe 0xdb 0xff 0x7b 0x87
|  1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
| LE: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
`----

MH> What this means is that the initiator device (in this case your
MH> keyboard) has to enable encryption. And BlueZ refuses the L2CAP
MH> connection if the ACL link is not encrypted (as mandated by the spec).

OK.  So it seems that the keyboard is OK with encryption if the box
intitiates, but not when it (the keyboard) initiates?

MH> Can you run a hcitool info <bdaddr> against your keyboard and see
MH> who is the chip/module manufacturer on that keyboard.

Requesting information ...
	BD Address:  90:7f:61:xx:xx:xx
	OUI Company: Chicony Electronics Co., Ltd. (90-7F-61)
	Device Name: ThinkPad Compact Bluetooth Keyboard with TrackPoint
	LMP Version: 3.0 (0x5) LMP Subversion: 0x2211
	Manufacturer: Broadcom Corporation (15)
	Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
		<3-slot packets> <5-slot packets> <encryption> <slot offset> 
		<timing accuracy> <role switch> <sniff mode> <RSSI> 
		<channel quality> <paging scheme> <power control> 
		<broadcast encrypt> <enhanced iscan> <interlaced iscan> 
		<interlaced pscan> <inquiry with RSSI> <AFH cap. slave> 
		<AFH class. slave> <sniff subrating> <pause encryption> 
		<AFH cap. master> <AFH class. master> <extended inquiry> 
		<simple pairing> <encapsulated PDU> <non-flush flag> <LSTO> 
		<inquiry TX power> <EPC> <extended features> 

MH> The LegacyPairing: no is not a 100% indication, but I assume your
MH> keyboard is actually a Bluetooth 2.1 keyboard with Secure Simple
MH> Pairing.

MH> Do you have an exact model number or link? We might have to buy one
MH> of these keyboards.

Lenovo's pages are:

http://shop.lenovo.com/us/en/itemdetails/0B47189/460/60AC6A0372B14F5BA7B12F1FF88E33C7
http://support.lenovo.com/en/documents/pd026744

I got that one to support my trackpoint addiction. :^/

Are there any good tech specs for bt available w/o cost?

-JimC
-- 
James Cloos <cloos@jhcloos.com>         OpenPGP: 0x997A9F17ED7DAEA6

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Keeping hci interface powered
  2015-01-05 22:45       ` James Cloos
@ 2015-01-05 23:29         ` Marcel Holtmann
  2015-01-06  0:33           ` James Cloos
  2015-01-06  1:01         ` BlueZ question about HID profile Gilbert Gao
  1 sibling, 1 reply; 16+ messages in thread
From: Marcel Holtmann @ 2015-01-05 23:29 UTC (permalink / raw)
  To: James Cloos; +Cc: linux-bluetooth

Hi James,

> MH> this looks like a recent kernel
> 
> Yeah.  Linus' master at tag v3.18.
> 
> MH> since it cleanly handles the page scan. However Page Scan enabled
> MH> means that you are again connectable. So once the keyboard
> MH> disconnects, the kernel will accept new connections.
> 
> OK.  In retrospect, it is possible that I had suspended to ram before
> the times when, in bluetoothctl, I needed power on before connect worked.
> 
>>> As you can see, there are a couple of Connection refused - security
>>> block errors.  Is there a permission issue which I miss?
> 
> MH> So it is clearly that the actual connection attempt from the keyboard
> MH> arrives and is allowed to continue by the lower layers. However when
> MH> opening the L2CAP channels from the HID control and interrupt
> MH> endpoints, it refuses to let you connect.
> 
> MH> Can you check /sys/kernel/debug/bluetooth/hci0/link_keys that you
> MH> indeed have the keys available.
> 
> link_keys has the line:
> 
>  90:7f:xx:xx:xx:xx 4 eaxxxxxxxxxxxxxxxxxxxxxxxxxxxx1e 0

this is an unauthenticated link key from SSP. Surprising to me that you do not have an authenticated link key. That is odd.

Can you capture a pairing procedure with your keyboard with btmon? Then I can tell what is actually going on between these two devices.

> MH> However I have the fear that your keyboard is violating the Bluetooth
> MH> spec. Please check /sys/kernel/debug/bluetooth/hci0/features or btmgmt
> MH> info. I assume your local controller supports Secure Simple Pairing
> MH> (every 2.1 or later controller does) and your keyboard does as well.
> 
> ,----< debug/bluetooth/hci0/features >
> |  0: 0xff 0xfe 0x0f 0xfe 0xdb 0xff 0x7b 0x87
> |  1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> | LE: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> `----

The features page 1 should list at least 0x01 to indicate Secure Simple Pairing support. Can you run hciconfig hci0 features and btmgmt info to check this. Make sure the controller is powered on. The page 1 changes when powered on. If it does not reflect in debugfs, then we have a bug in debugfs.

> MH> What this means is that the initiator device (in this case your
> MH> keyboard) has to enable encryption. And BlueZ refuses the L2CAP
> MH> connection if the ACL link is not encrypted (as mandated by the spec).
> 
> OK.  So it seems that the keyboard is OK with encryption if the box
> intitiates, but not when it (the keyboard) initiates?

That is the whole point behind Secure Simple Pairing. The initiator of the connection is responsible for encrypting the link. And the acceptor is required to reject the connection if the link is not encrypted.

So when BlueZ initiates the connection, we of course encrypt the link first. Seems the keyboard does not do that.

> MH> Can you run a hcitool info <bdaddr> against your keyboard and see
> MH> who is the chip/module manufacturer on that keyboard.
> 
> Requesting information ...
> 	BD Address:  90:7f:61:xx:xx:xx
> 	OUI Company: Chicony Electronics Co., Ltd. (90-7F-61)
> 	Device Name: ThinkPad Compact Bluetooth Keyboard with TrackPoint
> 	LMP Version: 3.0 (0x5) LMP Subversion: 0x2211
> 	Manufacturer: Broadcom Corporation (15)
> 	Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
> 		<3-slot packets> <5-slot packets> <encryption> <slot offset> 
> 		<timing accuracy> <role switch> <sniff mode> <RSSI> 
> 		<channel quality> <paging scheme> <power control> 
> 		<broadcast encrypt> <enhanced iscan> <interlaced iscan> 
> 		<interlaced pscan> <inquiry with RSSI> <AFH cap. slave> 
> 		<AFH class. slave> <sniff subrating> <pause encryption> 
> 		<AFH cap. master> <AFH class. master> <extended inquiry> 
> 		<simple pairing> <encapsulated PDU> <non-flush flag> <LSTO> 
> 		<inquiry TX power> <EPC> <extended features> 

This is odd. It should show also features page 1. Run btmon while executing this command and I can tell you what is going on.

> MH> The LegacyPairing: no is not a 100% indication, but I assume your
> MH> keyboard is actually a Bluetooth 2.1 keyboard with Secure Simple
> MH> Pairing.
> 
> MH> Do you have an exact model number or link? We might have to buy one
> MH> of these keyboards.
> 
> Lenovo's pages are:
> 
> http://shop.lenovo.com/us/en/itemdetails/0B47189/460/60AC6A0372B14F5BA7B12F1FF88E33C7
> http://support.lenovo.com/en/documents/pd026744
> 
> I got that one to support my trackpoint addiction. :^/
> 
> Are there any good tech specs for bt available w/o cost?

The Bluetooth specs are available for fee. Just go to bluetooth.org.

Regards

Marcel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Keeping hci interface powered
  2015-01-05 23:29         ` Marcel Holtmann
@ 2015-01-06  0:33           ` James Cloos
  2015-01-06  1:32             ` Marcel Holtmann
  0 siblings, 1 reply; 16+ messages in thread
From: James Cloos @ 2015-01-06  0:33 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: linux-bluetooth

>> link_keys has the line:
>> 
>> 90:7f:xx:xx:xx:xx 4 eaxxxxxxxxxxxxxxxxxxxxxxxxxxxx1e 0

MH> this is an unauthenticated link key from SSP. Surprising to me that
MH> you do not have an authenticated link key. That is odd.

>> ,----< debug/bluetooth/hci0/features >
>> |  0: 0xff 0xfe 0x0f 0xfe 0xdb 0xff 0x7b 0x87

MH> The features page 1 should list at least 0x01 to indicate Secure
MH> Simple Pairing support. Can you run hciconfig hci0 features

That reports the same hex string, which it decodes as:

	<3-slot packets> <5-slot packets> <encryption> <slot offset> 
	<timing accuracy> <role switch> <hold mode> <sniff mode> 
	<RSSI> <channel quality> <SCO link> <HV2 packets> 
	<HV3 packets> <u-law log> <A-law log> <CVSD> <paging scheme> 
	<power control> <transparent SCO> <EDR ACL 2 Mbps> 
	<EDR ACL 3 Mbps> <enhanced iscan> <interlaced iscan> 
	<interlaced pscan> <inquiry with RSSI> <extended SCO> 
	<EV4 packets> <EV5 packets> <AFH cap. slave> 
	<AFH class. slave> <LE support> <3-slot EDR ACL> 
	<5-slot EDR ACL> <sniff subrating> <pause encryption> 
	<AFH cap. master> <AFH class. master> <EDR eSCO 2 Mbps> 
	<EDR eSCO 3 Mbps> <3-slot EDR eSCO> <extended inquiry> 
	<LE and BR/EDR> <simple pairing> <encapsulated PDU> 
	<err. data report> <non-flush flag> <LSTO> <inquiry TX power> 
	<EPC> <extended features> 

MH> and btmgmt info

Built, but not installed by the ebuild....

hci0:	addr 80:86:F2:xx:xx:xx version 6 manufacturer 2 class 0x000104
	supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr hs le advertising debug-keys privacy configuration 
	current settings: powered bondable ssp br/edr le 
	name BlueZ 5.27
	short name 

I also found:

  :; hciconfig hci0 sspmode
  hci0:	Type: BR/EDR  Bus: USB
  	BD Address: 80:86:F2:xx:xx:xx  ACL MTU: 1021:5  SCO MTU: 96:5
  	Simple Pairing mode: Disabled


MH> This is odd. It should show also features page 1. Run btmon while
MH> executing this command and I can tell you what is going on.

Bluetooth monitor ver 5.27
= New Index: 80:86:F2:xx:xx:xx (BR/EDR,USB,hci0)                                [hci0] 0.590153

< HCI Command: Remote Name Request (0x01|0x0019) plen 10                        [hci0] 4.074510
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
> HCI Event: Command Status (0x0f) plen 4                                       [hci0] 4.076607
      Remote Name Request (0x01|0x0019) ncmd 1
        Status: Success (0x00)
> HCI Event: Remote Name Req Complete (0x07) plen 255                           [hci0] 5.924745
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Name: ThinkPad Compact Bluetooth Keyboard with TrackPoint
< HCI Command: Read Remote Version Information (0x01|0x001d) plen 2             [hci0] 5.925091
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                                       [hci0] 5.926589
      Read Remote Version Information (0x01|0x001d) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Remote Version Complete (0x0c) plen 8                         [hci0] 6.434751
        Status: Success (0x00)
        Handle: 256
        LMP version: Bluetooth 3.0 (0x05) - Subversion 8721 (0x2211)
        Manufacturer: Broadcom Corporation (15)
< HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2              [hci0] 6.435093
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                                       [hci0] 6.436677
      Read Remote Supported Features (0x01|0x001b) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Remote Supported Features (0x0b) plen 11                      [hci0] 6.951761
        Status: Success (0x00)
        Handle: 256
        Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
          3 slot packets
          5 slot packets
          Encryption
          Slot offset
          Timing accuracy
          Role switch
          Sniff mode
          Power control requests
          Channel quality driven data rate (CQDDR)
          Paging parameter negotiation
          Power control
          Broadcast Encryption
          Enhanced inquiry scan
          Interlaced inquiry scan
          Interlaced page scan
          RSSI with inquiry results
          AFH capable slave
          AFH classification slave
          Sniff subrating
          Pause encryption
          AFH capable master
          AFH classification master
          Extended Inquiry Response
          Secure Simple Pairing
          Encapsulated PDU
          Non-flushable Packet Boundary Flag
          Link Supervision Timeout Changed Event
          Inquiry TX Power Level
          Enhanced Power Control
          Extended features
< HCI Command: Read Remote Extended Features (0x01|0x001c) plen 3               [hci0] 6.952067
        Handle: 256
        Page: 0
> HCI Event: Command Status (0x0f) plen 4                                       [hci0] 6.953595
      Read Remote Extended Features (0x01|0x001c) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Remote Extended Features (0x23) plen 13                       [hci0] 7.469753
        Status: Success (0x00)
        Handle: 256
        Page: 0/0
        Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
          3 slot packets
          5 slot packets
          Encryption
          Slot offset
          Timing accuracy
          Role switch
          Sniff mode
          Power control requests
          Channel quality driven data rate (CQDDR)
          Paging parameter negotiation
          Power control
          Broadcast Encryption
          Enhanced inquiry scan
          Interlaced inquiry scan
          Interlaced page scan
          RSSI with inquiry results
          AFH capable slave
          AFH classification slave
          Sniff subrating
          Pause encryption
          AFH capable master
          AFH classification master
          Extended Inquiry Response
          Secure Simple Pairing
          Encapsulated PDU
          Non-flushable Packet Boundary Flag
          Link Supervision Timeout Changed Event
          Inquiry TX Power Level
          Enhanced Power Control
          Extended features


MH> The LegacyPairing: no is not a 100% indication, but I assume your
MH> keyboard is actually a Bluetooth 2.1 keyboard with Secure Simple
MH> Pairing.
>> 
MH> Do you have an exact model number or link? We might have to buy one
MH> of these keyboards.
>> 
>> Lenovo's pages are:
>> 
>> http://shop.lenovo.com/us/en/itemdetails/0B47189/460/60AC6A0372B14F5BA7B12F1FF88E33C7
>> http://support.lenovo.com/en/documents/pd026744
>> 
>> I got that one to support my trackpoint addiction. :^/
>> 
>> Are there any good tech specs for bt available w/o cost?

MH> Can you capture a pairing procedure with your keyboard with btmon?
MH> Then I can tell what is actually going on between these two devices.

After unpairing, it refuses to re-pair at all.  So now no keyboard
whatsoever......

Btmon reports:

Bluetooth monitor ver 5.27
= New Index: 80:86:xx:xx:xx:xx (BR/EDR,USB,hci0)                [hci0] 0.256980
< HCI Command: Create Connection (0x01|0x0005) plen 13         [hci0] 22.783716
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Packet type: 0xcc18
          DM1 may be used
          DH1 may be used
          DM3 may be used
          DH3 may be used
          DM5 may be used
          DH5 may be used
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
        Role switch: Allow slave (0x01)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 22.785144
      Create Connection (0x01|0x0005) ncmd 1
        Status: Success (0x00)
> HCI Event: Connect Complete (0x03) plen 11                   [hci0] 27.907235
        Status: Page Timeout (0x04)
        Handle: 65535
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Link type: ACL (0x01)
        Encryption: Disabled (0x00)
@ Connect Failed: 90:7F:61:xx:xx:xx (0) status 0x04
< HCI Command: Create Connection (0x01|0x0005) plen 13         [hci0] 34.293035
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Packet type: 0xcc18
          DM1 may be used
          DH1 may be used
          DM3 may be used
          DH3 may be used
          DM5 may be used
          DH5 may be used
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
        Role switch: Allow slave (0x01)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 34.295155
      Create Connection (0x01|0x0005) ncmd 1
        Status: Success (0x00)
> HCI Event: Connect Complete (0x03) plen 11                   [hci0] 35.553243
        Status: Success (0x00)
        Handle: 256
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Link type: ACL (0x01)
        Encryption: Disabled (0x00)
< HCI Command: Read Remote Supported F.. (0x01|0x001b) plen 2  [hci0] 35.553440
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 35.555086
      Read Remote Supported Features (0x01|0x001b) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 35.555150
        Scan enable: No Scans (0x00)
> HCI Event: Max Slots Change (0x1b) plen 3                    [hci0] 35.558112
        Handle: 256
        Max slots: 5
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 35.559112
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
> HCI Event: Read Remote Supported Features (0x0b) plen 11     [hci0] 35.561110
        Status: Success (0x00)
        Handle: 256
        Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
          3 slot packets
          5 slot packets
          Encryption
          Slot offset
          Timing accuracy
          Role switch
          Sniff mode
          Power control requests
          Channel quality driven data rate (CQDDR)
          Paging parameter negotiation
          Power control
          Broadcast Encryption
          Enhanced inquiry scan
          Interlaced inquiry scan
          Interlaced page scan
          RSSI with inquiry results
          AFH capable slave
          AFH classification slave
          Sniff subrating
          Pause encryption
          AFH capable master
          AFH classification master
          Extended Inquiry Response
          Secure Simple Pairing
          Encapsulated PDU
          Non-flushable Packet Boundary Flag
          Link Supervision Timeout Changed Event
          Inquiry TX Power Level
          Enhanced Power Control
          Extended features
< HCI Command: Read Remote Extended Fe.. (0x01|0x001c) plen 3  [hci0] 35.561183
        Handle: 256
        Page: 1
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 35.563155
      Read Remote Extended Features (0x01|0x001c) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Remote Extended Features (0x23) plen 13      [hci0] 35.567237
        Status: Success (0x00)
        Handle: 256
        Page: 1/0
        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          Secure Simple Pairing (Host Support)
< HCI Command: Remote Name Request (0x01|0x0019) plen 10       [hci0] 35.567335
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 35.569154
      Remote Name Request (0x01|0x0019) ncmd 1
        Status: Success (0x00)
> HCI Event: Remote Name Req Complete (0x07) plen 255          [hci0] 35.597231
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Name: ThinkPad Compact Bluetooth Keyboard with TrackPoint
< HCI Command: Authentication Requested (0x01|0x0011) plen 2   [hci0] 35.597346
        Handle: 256
@ Device Connected: 90:7F:61:xx:xx:xx (0) flags 0x0000
        34 09 54 68 69 6e 6b 50 61 64 20 43 6f 6d 70 61  4.ThinkPad Compa
        63 74 20 42 6c 75 65 74 6f 6f 74 68 20 4b 65 79  ct Bluetooth Key
        62 6f 61 72 64 20 77 69 74 68 20 54 72 61 63 6b  board with Track
        50 6f 69 6e 74 04 0d 40 25 00                    Point..@%.      
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 35.599088
      Authentication Requested (0x01|0x0011) ncmd 1
        Status: Success (0x00)
> HCI Event: Link Key Request (0x17) plen 6                    [hci0] 35.600112
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
< HCI Command: Link Key Request Negati.. (0x01|0x000c) plen 6  [hci0] 35.600194
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 35.602099
      Link Key Request Negative Reply (0x01|0x000c) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: PIN Code Request (0x16) plen 6                    [hci0] 35.603085
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
@ PIN Code Request: 90:7F:61:xx:xx:xx (0) secure 0x00
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 35.607113
      Set AFH Host Channel Classification (0x03|0x003f) ncmd 2
        Status: Success (0x00)
< HCI Command: PIN Code Request Negati.. (0x01|0x000e) plen 6  [hci0] 35.970265
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 35.972124
      PIN Code Request Negative Reply (0x01|0x000e) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Auth Complete (0x06) plen 3                       [hci0] 35.973089
        Status: PIN or Key Missing (0x06)
        Handle: 256
@ Authentication Failed: 90:7F:61:xx:xx:xx (0) status 0x05
< HCI Command: Read Clock Offset (0x01|0x001f) plen 2          [hci0] 37.980160
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 37.982242
      Read Clock Offset (0x01|0x001f) ncmd 1
        Status: Success (0x00)
< HCI Command: Disconnect (0x01|0x0006) plen 3                 [hci0] 37.982339
        Handle: 256
        Reason: Remote User Terminated Connection (0x13)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 37.984240
      Disconnect (0x01|0x0006) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Clock Offset Complete (0x1c) plen 5          [hci0] 37.986244
        Status: Success (0x00)
        Handle: 256
        Clock offset: 0x561c
> HCI Event: Disconnect Complete (0x05) plen 4                 [hci0] 38.070240
        Status: Success (0x00)
        Handle: 256
        Reason: Connection Terminated By Local Host (0x16)
@ Device Disconnected: 90:7F:61:xx:xx:xx (0) reason 2
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 38.075079
        Scan enable: Page Scan (0x02)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 38.077114
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
< HCI Command: Create Connection (0x01|0x0005) plen 13         [hci0] 38.974654
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Packet type: 0xcc18
          DM1 may be used
          DH1 may be used
          DM3 may be used
          DH3 may be used
          DM5 may be used
          DH5 may be used
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
        Role switch: Allow slave (0x01)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 38.976151
      Create Connection (0x01|0x0005) ncmd 1
        Status: Success (0x00)
> HCI Event: Connect Complete (0x03) plen 11                   [hci0] 40.436248
        Status: Success (0x00)
        Handle: 256
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Link type: ACL (0x01)
        Encryption: Disabled (0x00)
< HCI Command: Read Remote Supported F.. (0x01|0x001b) plen 2  [hci0] 40.436443
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 40.438093
      Read Remote Supported Features (0x01|0x001b) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 40.438160
        Scan enable: No Scans (0x00)
> HCI Event: Max Slots Change (0x1b) plen 3                    [hci0] 40.440111
        Handle: 256
        Max slots: 5
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 40.442112
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
> HCI Event: Read Remote Supported Features (0x0b) plen 11     [hci0] 40.444107
        Status: Success (0x00)
        Handle: 256
        Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
          3 slot packets
          5 slot packets
          Encryption
          Slot offset
          Timing accuracy
          Role switch
          Sniff mode
          Power control requests
          Channel quality driven data rate (CQDDR)
          Paging parameter negotiation
          Power control
          Broadcast Encryption
          Enhanced inquiry scan
          Interlaced inquiry scan
          Interlaced page scan
          RSSI with inquiry results
          AFH capable slave
          AFH classification slave
          Sniff subrating
          Pause encryption
          AFH capable master
          AFH classification master
          Extended Inquiry Response
          Secure Simple Pairing
          Encapsulated PDU
          Non-flushable Packet Boundary Flag
          Link Supervision Timeout Changed Event
          Inquiry TX Power Level
          Enhanced Power Control
          Extended features
< HCI Command: Read Remote Extended Fe.. (0x01|0x001c) plen 3  [hci0] 40.444181
        Handle: 256
        Page: 1
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 40.446109
      Read Remote Extended Features (0x01|0x001c) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Remote Extended Features (0x23) plen 13      [hci0] 40.453243
        Status: Success (0x00)
        Handle: 256
        Page: 1/0
        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          Secure Simple Pairing (Host Support)
< HCI Command: Remote Name Request (0x01|0x0019) plen 10       [hci0] 40.453340
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 40.455159
      Remote Name Request (0x01|0x0019) ncmd 1
        Status: Success (0x00)
> HCI Event: Remote Name Req Complete (0x07) plen 255          [hci0] 40.483244
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Name: ThinkPad Compact Bluetooth Keyboard with TrackPoint
< HCI Command: Authentication Requested (0x01|0x0011) plen 2   [hci0] 40.483356
        Handle: 256
@ Device Connected: 90:7F:61:xx:xx:xx (0) flags 0x0000
        34 09 54 68 69 6e 6b 50 61 64 20 43 6f 6d 70 61  4.ThinkPad Compa
        63 74 20 42 6c 75 65 74 6f 6f 74 68 20 4b 65 79  ct Bluetooth Key
        62 6f 61 72 64 20 77 69 74 68 20 54 72 61 63 6b  board with Track
        50 6f 69 6e 74 04 0d 40 25 00                    Point..@%.      
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 40.485149
      Authentication Requested (0x01|0x0011) ncmd 1
        Status: Success (0x00)
> HCI Event: Link Key Request (0x17) plen 6                    [hci0] 40.487153
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
< HCI Command: Link Key Request Negati.. (0x01|0x000c) plen 6  [hci0] 40.487242
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 40.489098
      Link Key Request Negative Reply (0x01|0x000c) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: PIN Code Request (0x16) plen 6                    [hci0] 40.490120
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
@ PIN Code Request: 90:7F:61:xx:xx:xx (0) secure 0x00
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 40.524248
      Set AFH Host Channel Classification (0x03|0x003f) ncmd 2
        Status: Success (0x00)
< HCI Command: PIN Code Request Negati.. (0x01|0x000e) plen 6  [hci0] 40.575160
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 40.577149
      PIN Code Request Negative Reply (0x01|0x000e) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Auth Complete (0x06) plen 3                       [hci0] 40.579157
        Status: PIN or Key Missing (0x06)
        Handle: 256
@ Authentication Failed: 90:7F:61:xx:xx:xx (0) status 0x05
< HCI Command: Read Clock Offset (0x01|0x001f) plen 2          [hci0] 42.580162
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 42.582240
      Read Clock Offset (0x01|0x001f) ncmd 1
        Status: Success (0x00)
< HCI Command: Disconnect (0x01|0x0006) plen 3                 [hci0] 42.582338
        Handle: 256
        Reason: Remote User Terminated Connection (0x13)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 42.584244
      Disconnect (0x01|0x0006) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Clock Offset Complete (0x1c) plen 5          [hci0] 42.588242
        Status: Success (0x00)
        Handle: 256
        Clock offset: 0x562b
> HCI Event: Disconnect Complete (0x05) plen 4                 [hci0] 42.669243
        Status: Success (0x00)
        Handle: 256
        Reason: Connection Terminated By Local Host (0x16)
@ Device Disconnected: 90:7F:61:xx:xx:xx (0) reason 2
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 42.674322
        Scan enable: Page Scan (0x02)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 42.676112
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
< HCI Command: Create Connection (0x01|0x0005) plen 13         [hci0] 43.580730
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Packet type: 0xcc18
          DM1 may be used
          DH1 may be used
          DM3 may be used
          DH3 may be used
          DM5 may be used
          DH5 may be used
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
        Role switch: Allow slave (0x01)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 43.582159
      Create Connection (0x01|0x0005) ncmd 1
        Status: Success (0x00)
> HCI Event: Connect Complete (0x03) plen 11                   [hci0] 44.578249
        Status: Success (0x00)
        Handle: 256
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Link type: ACL (0x01)
        Encryption: Disabled (0x00)
< HCI Command: Read Remote Supported F.. (0x01|0x001b) plen 2  [hci0] 44.578442
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 44.580083
      Read Remote Supported Features (0x01|0x001b) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 44.580134
        Scan enable: No Scans (0x00)
> HCI Event: Max Slots Change (0x1b) plen 3                    [hci0] 44.583084
        Handle: 256
        Max slots: 5
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 44.584089
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
> HCI Event: Read Remote Supported Features (0x0b) plen 11     [hci0] 44.586109
        Status: Success (0x00)
        Handle: 256
        Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
          3 slot packets
          5 slot packets
          Encryption
          Slot offset
          Timing accuracy
          Role switch
          Sniff mode
          Power control requests
          Channel quality driven data rate (CQDDR)
          Paging parameter negotiation
          Power control
          Broadcast Encryption
          Enhanced inquiry scan
          Interlaced inquiry scan
          Interlaced page scan
          RSSI with inquiry results
          AFH capable slave
          AFH classification slave
          Sniff subrating
          Pause encryption
          AFH capable master
          AFH classification master
          Extended Inquiry Response
          Secure Simple Pairing
          Encapsulated PDU
          Non-flushable Packet Boundary Flag
          Link Supervision Timeout Changed Event
          Inquiry TX Power Level
          Enhanced Power Control
          Extended features
< HCI Command: Read Remote Extended Fe.. (0x01|0x001c) plen 3  [hci0] 44.586186
        Handle: 256
        Page: 1
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 44.588157
      Read Remote Extended Features (0x01|0x001c) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Remote Extended Features (0x23) plen 13      [hci0] 44.593244
        Status: Success (0x00)
        Handle: 256
        Page: 1/0
        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          Secure Simple Pairing (Host Support)
< HCI Command: Remote Name Request (0x01|0x0019) plen 10       [hci0] 44.593340
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 44.595157
      Remote Name Request (0x01|0x0019) ncmd 1
        Status: Success (0x00)
> HCI Event: Remote Name Req Complete (0x07) plen 255          [hci0] 44.623238
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Name: ThinkPad Compact Bluetooth Keyboard with TrackPoint
< HCI Command: Authentication Requested (0x01|0x0011) plen 2   [hci0] 44.623352
        Handle: 256
@ Device Connected: 90:7F:61:xx:xx:xx (0) flags 0x0000
        34 09 54 68 69 6e 6b 50 61 64 20 43 6f 6d 70 61  4.ThinkPad Compa
        63 74 20 42 6c 75 65 74 6f 6f 74 68 20 4b 65 79  ct Bluetooth Key
        62 6f 61 72 64 20 77 69 74 68 20 54 72 61 63 6b  board with Track
        50 6f 69 6e 74 04 0d 40 25 00                    Point..@%.      
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 44.625107
      Set AFH Host Channel Classification (0x03|0x003f) ncmd 2
        Status: Success (0x00)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 44.626112
      Authentication Requested (0x01|0x0011) ncmd 1
        Status: Success (0x00)
> HCI Event: Link Key Request (0x17) plen 6                    [hci0] 44.627117
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
< HCI Command: Link Key Request Negati.. (0x01|0x000c) plen 6  [hci0] 44.627186
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 44.629083
      Link Key Request Negative Reply (0x01|0x000c) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: PIN Code Request (0x16) plen 6                    [hci0] 44.630108
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
@ PIN Code Request: 90:7F:61:xx:xx:xx (0) secure 0x00
< HCI Command: PIN Code Request Negati.. (0x01|0x000e) plen 6  [hci0] 44.714093
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 44.716092
      PIN Code Request Negative Reply (0x01|0x000e) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Auth Complete (0x06) plen 3                       [hci0] 44.717097
        Status: PIN or Key Missing (0x06)
        Handle: 256
@ Authentication Failed: 90:7F:61:xx:xx:xx (0) status 0x05
< HCI Command: Read Clock Offset (0x01|0x001f) plen 2          [hci0] 46.724179
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 46.726248
      Read Clock Offset (0x01|0x001f) ncmd 1
        Status: Success (0x00)
< HCI Command: Disconnect (0x01|0x0006) plen 3                 [hci0] 46.726347
        Handle: 256
        Reason: Remote User Terminated Connection (0x13)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 46.728248
      Disconnect (0x01|0x0006) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Clock Offset Complete (0x1c) plen 5          [hci0] 46.730251
        Status: Success (0x00)
        Handle: 256
        Clock offset: 0x563a
> HCI Event: Disconnect Complete (0x05) plen 4                 [hci0] 46.811251
        Status: Success (0x00)
        Handle: 256
        Reason: Connection Terminated By Local Host (0x16)
@ Device Disconnected: 90:7F:61:xx:xx:xx (0) reason 2
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 46.816311
        Scan enable: Page Scan (0x02)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 46.818114
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
< HCI Command: Create Connection (0x01|0x0005) plen 13         [hci0] 47.718804
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Packet type: 0xcc18
          DM1 may be used
          DH1 may be used
          DM3 may be used
          DH3 may be used
          DM5 may be used
          DH5 may be used
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
        Role switch: Allow slave (0x01)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 47.720156
      Create Connection (0x01|0x0005) ncmd 1
        Status: Success (0x00)
> HCI Event: Connect Complete (0x03) plen 11                   [hci0] 47.967252
        Status: Success (0x00)
        Handle: 256
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Link type: ACL (0x01)
        Encryption: Disabled (0x00)
< HCI Command: Read Remote Supported F.. (0x01|0x001b) plen 2  [hci0] 47.967446
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 47.969094
      Read Remote Supported Features (0x01|0x001b) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 47.969161
        Scan enable: No Scans (0x00)
> HCI Event: Max Slots Change (0x1b) plen 3                    [hci0] 47.972111
        Handle: 256
        Max slots: 5
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 47.973112
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
> HCI Event: Read Remote Supported Features (0x0b) plen 11     [hci0] 47.977136
        Status: Success (0x00)
        Handle: 256
        Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
          3 slot packets
          5 slot packets
          Encryption
          Slot offset
          Timing accuracy
          Role switch
          Sniff mode
          Power control requests
          Channel quality driven data rate (CQDDR)
          Paging parameter negotiation
          Power control
          Broadcast Encryption
          Enhanced inquiry scan
          Interlaced inquiry scan
          Interlaced page scan
          RSSI with inquiry results
          AFH capable slave
          AFH classification slave
          Sniff subrating
          Pause encryption
          AFH capable master
          AFH classification master
          Extended Inquiry Response
          Secure Simple Pairing
          Encapsulated PDU
          Non-flushable Packet Boundary Flag
          Link Supervision Timeout Changed Event
          Inquiry TX Power Level
          Enhanced Power Control
          Extended features
< HCI Command: Read Remote Extended Fe.. (0x01|0x001c) plen 3  [hci0] 47.977246
        Handle: 256
        Page: 1
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 47.979243
      Read Remote Extended Features (0x01|0x001c) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Remote Extended Features (0x23) plen 13      [hci0] 47.985249
        Status: Success (0x00)
        Handle: 256
        Page: 1/0
        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          Secure Simple Pairing (Host Support)
< HCI Command: Remote Name Request (0x01|0x0019) plen 10       [hci0] 47.985346
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 47.987156
      Remote Name Request (0x01|0x0019) ncmd 1
        Status: Success (0x00)
> HCI Event: Remote Name Req Complete (0x07) plen 255          [hci0] 48.014250
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Name: ThinkPad Compact Bluetooth Keyboard with TrackPoint
< HCI Command: Authentication Requested (0x01|0x0011) plen 2   [hci0] 48.014360
        Handle: 256
@ Device Connected: 90:7F:61:xx:xx:xx (0) flags 0x0000
        34 09 54 68 69 6e 6b 50 61 64 20 43 6f 6d 70 61  4.ThinkPad Compa
        63 74 20 42 6c 75 65 74 6f 6f 74 68 20 4b 65 79  ct Bluetooth Key
        62 6f 61 72 64 20 77 69 74 68 20 54 72 61 63 6b  board with Track
        50 6f 69 6e 74 04 0d 40 25 00                    Point..@%.      
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 48.016160
      Authentication Requested (0x01|0x0011) ncmd 1
        Status: Success (0x00)
> HCI Event: Link Key Request (0x17) plen 6                    [hci0] 48.018133
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
< HCI Command: Link Key Request Negati.. (0x01|0x000c) plen 6  [hci0] 48.018244
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 48.020099
      Link Key Request Negative Reply (0x01|0x000c) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: PIN Code Request (0x16) plen 6                    [hci0] 48.021152
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
@ PIN Code Request: 90:7F:61:xx:xx:xx (0) secure 0x00
< HCI Command: PIN Code Request Negati.. (0x01|0x000e) plen 6  [hci0] 48.109595
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 48.111080
      PIN Code Request Negative Reply (0x01|0x000e) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Auth Complete (0x06) plen 3                       [hci0] 48.112096
        Status: PIN or Key Missing (0x06)
        Handle: 256
@ Authentication Failed: 90:7F:61:xx:xx:xx (0) status 0x05
< HCI Command: Read Clock Offset (0x01|0x001f) plen 2          [hci0] 50.116222
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 50.118198
      Read Clock Offset (0x01|0x001f) ncmd 1
        Status: Success (0x00)
< HCI Command: Disconnect (0x01|0x0006) plen 3                 [hci0] 50.118317
        Handle: 256
        Reason: Remote User Terminated Connection (0x13)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 50.120165
      Disconnect (0x01|0x0006) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Clock Offset Complete (0x1c) plen 5          [hci0] 50.122245
        Status: Success (0x00)
        Handle: 256
        Clock offset: 0x563f
> HCI Event: Disconnect Complete (0x05) plen 4                 [hci0] 50.205256
        Status: Success (0x00)
        Handle: 256
        Reason: Connection Terminated By Local Host (0x16)
@ Device Disconnected: 90:7F:61:xx:xx:xx (0) reason 2
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 50.210307
        Scan enable: Page Scan (0x02)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 50.212109
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
< HCI Command: Create Connection (0x01|0x0005) plen 13         [hci0] 56.167262
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Packet type: 0xcc18
          DM1 may be used
          DH1 may be used
          DM3 may be used
          DH3 may be used
          DM5 may be used
          DH5 may be used
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
        Role switch: Allow slave (0x01)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 56.169122
      Create Connection (0x01|0x0005) ncmd 1
        Status: Success (0x00)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 57.527242
      Set AFH Host Channel Classification (0x03|0x003f) ncmd 2
        Status: Success (0x00)
> HCI Event: Connect Complete (0x03) plen 11                   [hci0] 57.537251
        Status: Success (0x00)
        Handle: 256
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Link type: ACL (0x01)
        Encryption: Disabled (0x00)
< HCI Command: Read Remote Supported F.. (0x01|0x001b) plen 2  [hci0] 57.537450
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 57.539099
      Read Remote Supported Features (0x01|0x001b) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 57.539165
        Scan enable: No Scans (0x00)
> HCI Event: Max Slots Change (0x1b) plen 3                    [hci0] 57.542117
        Handle: 256
        Max slots: 5
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 57.543117
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
> HCI Event: Read Remote Supported Features (0x0b) plen 11     [hci0] 57.546248
        Status: Success (0x00)
        Handle: 256
        Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
          3 slot packets
          5 slot packets
          Encryption
          Slot offset
          Timing accuracy
          Role switch
          Sniff mode
          Power control requests
          Channel quality driven data rate (CQDDR)
          Paging parameter negotiation
          Power control
          Broadcast Encryption
          Enhanced inquiry scan
          Interlaced inquiry scan
          Interlaced page scan
          RSSI with inquiry results
          AFH capable slave
          AFH classification slave
          Sniff subrating
          Pause encryption
          AFH capable master
          AFH classification master
          Extended Inquiry Response
          Secure Simple Pairing
          Encapsulated PDU
          Non-flushable Packet Boundary Flag
          Link Supervision Timeout Changed Event
          Inquiry TX Power Level
          Enhanced Power Control
          Extended features
< HCI Command: Read Remote Extended Fe.. (0x01|0x001c) plen 3  [hci0] 57.546346
        Handle: 256
        Page: 1
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 57.548107
      Read Remote Extended Features (0x01|0x001c) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Remote Extended Features (0x23) plen 13      [hci0] 57.554250
        Status: Success (0x00)
        Handle: 256
        Page: 1/0
        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          Secure Simple Pairing (Host Support)
< HCI Command: Remote Name Request (0x01|0x0019) plen 10       [hci0] 57.554349
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 57.556112
      Remote Name Request (0x01|0x0019) ncmd 1
        Status: Success (0x00)
> HCI Event: Remote Name Req Complete (0x07) plen 255          [hci0] 57.584246
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Name: ThinkPad Compact Bluetooth Keyboard with TrackPoint
< HCI Command: Authentication Requested (0x01|0x0011) plen 2   [hci0] 57.584362
        Handle: 256
@ Device Connected: 90:7F:61:xx:xx:xx (0) flags 0x0000
        34 09 54 68 69 6e 6b 50 61 64 20 43 6f 6d 70 61  4.ThinkPad Compa
        63 74 20 42 6c 75 65 74 6f 6f 74 68 20 4b 65 79  ct Bluetooth Key
        62 6f 61 72 64 20 77 69 74 68 20 54 72 61 63 6b  board with Track
        50 6f 69 6e 74 04 0d 40 25 00                    Point..@%.      
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 57.586098
      Authentication Requested (0x01|0x0011) ncmd 1
        Status: Success (0x00)
> HCI Event: Link Key Request (0x17) plen 6                    [hci0] 57.587112
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
< HCI Command: Link Key Request Negati.. (0x01|0x000c) plen 6  [hci0] 57.587190
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 57.589091
      Link Key Request Negative Reply (0x01|0x000c) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: PIN Code Request (0x16) plen 6                    [hci0] 57.590093
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
@ PIN Code Request: 90:7F:61:xx:xx:xx (0) secure 0x00
< HCI Command: PIN Code Request Negati.. (0x01|0x000e) plen 6  [hci0] 57.685474
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 57.687095
      PIN Code Request Negative Reply (0x01|0x000e) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Auth Complete (0x06) plen 3                       [hci0] 57.688116
        Status: PIN or Key Missing (0x06)
        Handle: 256
@ Authentication Failed: 90:7F:61:xx:xx:xx (0) status 0x05
< HCI Command: Read Clock Offset (0x01|0x001f) plen 2          [hci0] 59.692183
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 59.694246
      Read Clock Offset (0x01|0x001f) ncmd 1
        Status: Success (0x00)
< HCI Command: Disconnect (0x01|0x0006) plen 3                 [hci0] 59.694344
        Handle: 256
        Reason: Remote User Terminated Connection (0x13)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 59.696248
      Disconnect (0x01|0x0006) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Clock Offset Complete (0x1c) plen 5          [hci0] 59.698252
        Status: Success (0x00)
        Handle: 256
        Clock offset: 0x567b
> HCI Event: Disconnect Complete (0x05) plen 4                 [hci0] 59.778252
        Status: Success (0x00)
        Handle: 256
        Reason: Connection Terminated By Local Host (0x16)
@ Device Disconnected: 90:7F:61:xx:xx:xx (0) reason 2
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 59.786314
        Scan enable: Page Scan (0x02)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 59.788110
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
< HCI Command: Create Connection (0x01|0x0005) plen 13         [hci0] 60.689892
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Packet type: 0xcc18
          DM1 may be used
          DH1 may be used
          DM3 may be used
          DH3 may be used
          DM5 may be used
          DH5 may be used
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
        Role switch: Allow slave (0x01)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 60.692114
      Create Connection (0x01|0x0005) ncmd 1
        Status: Success (0x00)
> HCI Event: Connect Complete (0x03) plen 11                   [hci0] 62.076251
        Status: Success (0x00)
        Handle: 256
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Link type: ACL (0x01)
        Encryption: Disabled (0x00)
< HCI Command: Read Remote Supported F.. (0x01|0x001b) plen 2  [hci0] 62.076453
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 62.078096
      Read Remote Supported Features (0x01|0x001b) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 62.078163
        Scan enable: No Scans (0x00)
> HCI Event: Max Slots Change (0x1b) plen 3                    [hci0] 62.081117
        Handle: 256
        Max slots: 5
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 62.082113
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
> HCI Event: Read Remote Supported Features (0x0b) plen 11     [hci0] 62.084121
        Status: Success (0x00)
        Handle: 256
        Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
          3 slot packets
          5 slot packets
          Encryption
          Slot offset
          Timing accuracy
          Role switch
          Sniff mode
          Power control requests
          Channel quality driven data rate (CQDDR)
          Paging parameter negotiation
          Power control
          Broadcast Encryption
          Enhanced inquiry scan
          Interlaced inquiry scan
          Interlaced page scan
          RSSI with inquiry results
          AFH capable slave
          AFH classification slave
          Sniff subrating
          Pause encryption
          AFH capable master
          AFH classification master
          Extended Inquiry Response
          Secure Simple Pairing
          Encapsulated PDU
          Non-flushable Packet Boundary Flag
          Link Supervision Timeout Changed Event
          Inquiry TX Power Level
          Enhanced Power Control
          Extended features
< HCI Command: Read Remote Extended Fe.. (0x01|0x001c) plen 3  [hci0] 62.084205
        Handle: 256
        Page: 1
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 62.086159
      Read Remote Extended Features (0x01|0x001c) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Remote Extended Features (0x23) plen 13      [hci0] 62.091257
        Status: Success (0x00)
        Handle: 256
        Page: 1/0
        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          Secure Simple Pairing (Host Support)
< HCI Command: Remote Name Request (0x01|0x0019) plen 10       [hci0] 62.091358
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 62.093108
      Remote Name Request (0x01|0x0019) ncmd 1
        Status: Success (0x00)
> HCI Event: Remote Name Req Complete (0x07) plen 255          [hci0] 62.121246
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Name: ThinkPad Compact Bluetooth Keyboard with TrackPoint
< HCI Command: Authentication Requested (0x01|0x0011) plen 2   [hci0] 62.121359
        Handle: 256
@ Device Connected: 90:7F:61:xx:xx:xx (0) flags 0x0000
        34 09 54 68 69 6e 6b 50 61 64 20 43 6f 6d 70 61  4.ThinkPad Compa
        63 74 20 42 6c 75 65 74 6f 6f 74 68 20 4b 65 79  ct Bluetooth Key
        62 6f 61 72 64 20 77 69 74 68 20 54 72 61 63 6b  board with Track
        50 6f 69 6e 74 04 0d 40 25 00                    Point..@%.      
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 62.123121
      Authentication Requested (0x01|0x0011) ncmd 1
        Status: Success (0x00)
> HCI Event: Link Key Request (0x17) plen 6                    [hci0] 62.124109
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
< HCI Command: Link Key Request Negati.. (0x01|0x000c) plen 6  [hci0] 62.124215
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 62.126084
      Link Key Request Negative Reply (0x01|0x000c) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: PIN Code Request (0x16) plen 6                    [hci0] 62.127091
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
@ PIN Code Request: 90:7F:61:xx:xx:xx (0) secure 0x00
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 62.163248
      Set AFH Host Channel Classification (0x03|0x003f) ncmd 2
        Status: Success (0x00)
< HCI Command: PIN Code Request Negati.. (0x01|0x000e) plen 6  [hci0] 62.225446
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 62.227096
      PIN Code Request Negative Reply (0x01|0x000e) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Auth Complete (0x06) plen 3                       [hci0] 62.228092
        Status: PIN or Key Missing (0x06)
        Handle: 256
@ Authentication Failed: 90:7F:61:xx:xx:xx (0) status 0x05
< HCI Command: Read Clock Offset (0x01|0x001f) plen 2          [hci0] 64.232207
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 64.234250
      Read Clock Offset (0x01|0x001f) ncmd 1
        Status: Success (0x00)
< HCI Command: Disconnect (0x01|0x0006) plen 3                 [hci0] 64.234348
        Handle: 256
        Reason: Remote User Terminated Connection (0x13)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 64.236258
      Disconnect (0x01|0x0006) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Clock Offset Complete (0x1c) plen 5          [hci0] 64.238259
        Status: Success (0x00)
        Handle: 256
        Clock offset: 0x568a
> HCI Event: Disconnect Complete (0x05) plen 4                 [hci0] 64.321254
        Status: Success (0x00)
        Handle: 256
        Reason: Connection Terminated By Local Host (0x16)
@ Device Disconnected: 90:7F:61:xx:xx:xx (0) reason 2
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 64.329308
        Scan enable: Page Scan (0x02)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 64.331097
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
< HCI Command: Create Connection (0x01|0x0005) plen 13         [hci0] 65.229866
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Packet type: 0xcc18
          DM1 may be used
          DH1 may be used
          DM3 may be used
          DH3 may be used
          DM5 may be used
          DH5 may be used
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
        Role switch: Allow slave (0x01)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 65.232119
      Create Connection (0x01|0x0005) ncmd 1
        Status: Success (0x00)
> HCI Event: Connect Complete (0x03) plen 11                   [hci0] 66.269255
        Status: Success (0x00)
        Handle: 256
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Link type: ACL (0x01)
        Encryption: Disabled (0x00)
< HCI Command: Read Remote Supported F.. (0x01|0x001b) plen 2  [hci0] 66.269454
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 66.271161
      Read Remote Supported Features (0x01|0x001b) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 66.271255
        Scan enable: No Scans (0x00)
> HCI Event: Max Slots Change (0x1b) plen 3                    [hci0] 66.275144
        Handle: 256
        Max slots: 5
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 66.276102
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
> HCI Event: Read Remote Supported Features (0x0b) plen 11     [hci0] 66.278170
        Status: Success (0x00)
        Handle: 256
        Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
          3 slot packets
          5 slot packets
          Encryption
          Slot offset
          Timing accuracy
          Role switch
          Sniff mode
          Power control requests
          Channel quality driven data rate (CQDDR)
          Paging parameter negotiation
          Power control
          Broadcast Encryption
          Enhanced inquiry scan
          Interlaced inquiry scan
          Interlaced page scan
          RSSI with inquiry results
          AFH capable slave
          AFH classification slave
          Sniff subrating
          Pause encryption
          AFH capable master
          AFH classification master
          Extended Inquiry Response
          Secure Simple Pairing
          Encapsulated PDU
          Non-flushable Packet Boundary Flag
          Link Supervision Timeout Changed Event
          Inquiry TX Power Level
          Enhanced Power Control
          Extended features
< HCI Command: Read Remote Extended Fe.. (0x01|0x001c) plen 3  [hci0] 66.278260
        Handle: 256
        Page: 1
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 66.280255
      Read Remote Extended Features (0x01|0x001c) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Remote Extended Features (0x23) plen 13      [hci0] 66.285253
        Status: Success (0x00)
        Handle: 256
        Page: 1/0
        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          Secure Simple Pairing (Host Support)
< HCI Command: Remote Name Request (0x01|0x0019) plen 10       [hci0] 66.285349
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 66.287115
      Remote Name Request (0x01|0x0019) ncmd 1
        Status: Success (0x00)
> HCI Event: Remote Name Req Complete (0x07) plen 255          [hci0] 66.315254
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Name: ThinkPad Compact Bluetooth Keyboard with TrackPoint
< HCI Command: Authentication Requested (0x01|0x0011) plen 2   [hci0] 66.315369
        Handle: 256
@ Device Connected: 90:7F:61:xx:xx:xx (0) flags 0x0000
        34 09 54 68 69 6e 6b 50 61 64 20 43 6f 6d 70 61  4.ThinkPad Compa
        63 74 20 42 6c 75 65 74 6f 6f 74 68 20 4b 65 79  ct Bluetooth Key
        62 6f 61 72 64 20 77 69 74 68 20 54 72 61 63 6b  board with Track
        50 6f 69 6e 74 04 0d 40 25 00                    Point..@%.      
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 66.317097
      Authentication Requested (0x01|0x0011) ncmd 1
        Status: Success (0x00)
> HCI Event: Link Key Request (0x17) plen 6                    [hci0] 66.318117
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
< HCI Command: Link Key Request Negati.. (0x01|0x000c) plen 6  [hci0] 66.318209
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 66.320101
      Link Key Request Negative Reply (0x01|0x000c) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: PIN Code Request (0x16) plen 6                    [hci0] 66.321098
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
@ PIN Code Request: 90:7F:61:xx:xx:xx (0) secure 0x00
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 66.331128
      Set AFH Host Channel Classification (0x03|0x003f) ncmd 2
        Status: Success (0x00)
< HCI Command: PIN Code Request Negati.. (0x01|0x000e) plen 6  [hci0] 66.419802
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 66.421109
      PIN Code Request Negative Reply (0x01|0x000e) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Auth Complete (0x06) plen 3                       [hci0] 66.422091
        Status: PIN or Key Missing (0x06)
        Handle: 256
@ Authentication Failed: 90:7F:61:xx:xx:xx (0) status 0x05
< HCI Command: Read Clock Offset (0x01|0x001f) plen 2          [hci0] 68.428166
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 68.430253
      Read Clock Offset (0x01|0x001f) ncmd 1
        Status: Success (0x00)
< HCI Command: Disconnect (0x01|0x0006) plen 3                 [hci0] 68.430350
        Handle: 256
        Reason: Remote User Terminated Connection (0x13)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 68.432251
      Disconnect (0x01|0x0006) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Clock Offset Complete (0x1c) plen 5          [hci0] 68.434260
        Status: Success (0x00)
        Handle: 256
        Clock offset: 0x569c
> HCI Event: Disconnect Complete (0x05) plen 4                 [hci0] 68.513262
        Status: Success (0x00)
        Handle: 256
        Reason: Connection Terminated By Local Host (0x16)
@ Device Disconnected: 90:7F:61:xx:xx:xx (0) reason 2
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 68.521315
        Scan enable: Page Scan (0x02)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 68.523103
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
< HCI Command: Create Connection (0x01|0x0005) plen 13         [hci0] 69.423819
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Packet type: 0xcc18
          DM1 may be used
          DH1 may be used
          DM3 may be used
          DH3 may be used
          DM5 may be used
          DH5 may be used
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
        Role switch: Allow slave (0x01)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 69.425159
      Create Connection (0x01|0x0005) ncmd 1
        Status: Success (0x00)
> HCI Event: Connect Complete (0x03) plen 11                   [hci0] 69.748256
        Status: Success (0x00)
        Handle: 256
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Link type: ACL (0x01)
        Encryption: Disabled (0x00)
< HCI Command: Read Remote Supported F.. (0x01|0x001b) plen 2  [hci0] 69.748457
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 69.750096
      Read Remote Supported Features (0x01|0x001b) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 69.750164
        Scan enable: No Scans (0x00)
> HCI Event: Max Slots Change (0x1b) plen 3                    [hci0] 69.752114
        Handle: 256
        Max slots: 5
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 69.754113
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
> HCI Event: Read Remote Supported Features (0x0b) plen 11     [hci0] 69.756114
        Status: Success (0x00)
        Handle: 256
        Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
          3 slot packets
          5 slot packets
          Encryption
          Slot offset
          Timing accuracy
          Role switch
          Sniff mode
          Power control requests
          Channel quality driven data rate (CQDDR)
          Paging parameter negotiation
          Power control
          Broadcast Encryption
          Enhanced inquiry scan
          Interlaced inquiry scan
          Interlaced page scan
          RSSI with inquiry results
          AFH capable slave
          AFH classification slave
          Sniff subrating
          Pause encryption
          AFH capable master
          AFH classification master
          Extended Inquiry Response
          Secure Simple Pairing
          Encapsulated PDU
          Non-flushable Packet Boundary Flag
          Link Supervision Timeout Changed Event
          Inquiry TX Power Level
          Enhanced Power Control
          Extended features
< HCI Command: Read Remote Extended Fe.. (0x01|0x001c) plen 3  [hci0] 69.756199
        Handle: 256
        Page: 1
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 69.758112
      Read Remote Extended Features (0x01|0x001c) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Remote Extended Features (0x23) plen 13      [hci0] 69.762124
        Status: Success (0x00)
        Handle: 256
        Page: 1/0
        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          Secure Simple Pairing (Host Support)
< HCI Command: Remote Name Request (0x01|0x0019) plen 10       [hci0] 69.762195
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 69.764164
      Remote Name Request (0x01|0x0019) ncmd 1
        Status: Success (0x00)
> HCI Event: Remote Name Req Complete (0x07) plen 255          [hci0] 69.791252
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Name: ThinkPad Compact Bluetooth Keyboard with TrackPoint
< HCI Command: Authentication Requested (0x01|0x0011) plen 2   [hci0] 69.791370
        Handle: 256
@ Device Connected: 90:7F:61:xx:xx:xx (0) flags 0x0000
        34 09 54 68 69 6e 6b 50 61 64 20 43 6f 6d 70 61  4.ThinkPad Compa
        63 74 20 42 6c 75 65 74 6f 6f 74 68 20 4b 65 79  ct Bluetooth Key
        62 6f 61 72 64 20 77 69 74 68 20 54 72 61 63 6b  board with Track
        50 6f 69 6e 74 04 0d 40 25 00                    Point..@%.      
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 69.793119
      Authentication Requested (0x01|0x0011) ncmd 1
        Status: Success (0x00)
> HCI Event: Link Key Request (0x17) plen 6                    [hci0] 69.794117
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
< HCI Command: Link Key Request Negati.. (0x01|0x000c) plen 6  [hci0] 69.794207
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 69.796100
      Link Key Request Negative Reply (0x01|0x000c) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: PIN Code Request (0x16) plen 6                    [hci0] 69.797101
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
@ PIN Code Request: 90:7F:61:xx:xx:xx (0) secure 0x00
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 69.812255
      Set AFH Host Channel Classification (0x03|0x003f) ncmd 2
        Status: Success (0x00)
< HCI Command: PIN Code Request Negati.. (0x01|0x000e) plen 6  [hci0] 69.893139
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 69.895164
      PIN Code Request Negative Reply (0x01|0x000e) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Auth Complete (0x06) plen 3                       [hci0] 69.897101
        Status: PIN or Key Missing (0x06)
        Handle: 256
@ Authentication Failed: 90:7F:61:xx:xx:xx (0) status 0x05
< HCI Command: Read Clock Offset (0x01|0x001f) plen 2          [hci0] 71.900213
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 71.902250
      Read Clock Offset (0x01|0x001f) ncmd 1
        Status: Success (0x00)
< HCI Command: Disconnect (0x01|0x0006) plen 3                 [hci0] 71.902348
        Handle: 256
        Reason: Remote User Terminated Connection (0x13)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 71.904261
      Disconnect (0x01|0x0006) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Clock Offset Complete (0x1c) plen 5          [hci0] 71.906258
        Status: Success (0x00)
        Handle: 256
        Clock offset: 0x56a1
> HCI Event: Disconnect Complete (0x05) plen 4                 [hci0] 71.987247
        Status: Success (0x00)
        Handle: 256
        Reason: Connection Terminated By Local Host (0x16)
@ Device Disconnected: 90:7F:61:xx:xx:xx (0) reason 2
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 71.995315
        Scan enable: Page Scan (0x02)
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 71.997119
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
< HCI Command: Create Connection (0x01|0x0005) plen 13         [hci0] 78.490870
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Packet type: 0xcc18
          DM1 may be used
          DH1 may be used
          DM3 may be used
          DH3 may be used
          DM5 may be used
          DH5 may be used
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
        Role switch: Allow slave (0x01)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 78.492168
      Create Connection (0x01|0x0005) ncmd 1
        Status: Success (0x00)
> HCI Event: Connect Complete (0x03) plen 11                   [hci0] 79.365267
        Status: Success (0x00)
        Handle: 256
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Link type: ACL (0x01)
        Encryption: Disabled (0x00)
< HCI Command: Read Remote Supported F.. (0x01|0x001b) plen 2  [hci0] 79.365459
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 79.367167
      Read Remote Supported Features (0x01|0x001b) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1          [hci0] 79.367259
        Scan enable: No Scans (0x00)
> HCI Event: Max Slots Change (0x1b) plen 3                    [hci0] 79.370115
        Handle: 256
        Max slots: 5
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 79.371116
      Write Scan Enable (0x03|0x001a) ncmd 2
        Status: Success (0x00)
> HCI Event: Read Remote Supported Features (0x0b) plen 11     [hci0] 79.374115
        Status: Success (0x00)
        Handle: 256
        Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
          3 slot packets
          5 slot packets
          Encryption
          Slot offset
          Timing accuracy
          Role switch
          Sniff mode
          Power control requests
          Channel quality driven data rate (CQDDR)
          Paging parameter negotiation
          Power control
          Broadcast Encryption
          Enhanced inquiry scan
          Interlaced inquiry scan
          Interlaced page scan
          RSSI with inquiry results
          AFH capable slave
          AFH classification slave
          Sniff subrating
          Pause encryption
          AFH capable master
          AFH classification master
          Extended Inquiry Response
          Secure Simple Pairing
          Encapsulated PDU
          Non-flushable Packet Boundary Flag
          Link Supervision Timeout Changed Event
          Inquiry TX Power Level
          Enhanced Power Control
          Extended features
< HCI Command: Read Remote Extended Fe.. (0x01|0x001c) plen 3  [hci0] 79.374202
        Handle: 256
        Page: 1
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 79.376102
      Read Remote Extended Features (0x01|0x001c) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Remote Extended Features (0x23) plen 13      [hci0] 79.381114
        Status: Success (0x00)
        Handle: 256
        Page: 1/0
        Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
          Secure Simple Pairing (Host Support)
< HCI Command: Remote Name Request (0x01|0x0019) plen 10       [hci0] 79.381256
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Page scan repetition mode: R2 (0x02)
        Page scan mode: Mandatory (0x00)
        Clock offset: 0x0000
< ACL Data TX: Handle 256 flags 0x00 dlen 10                   [hci0] 79.381273
      L2CAP: Information Request (0x0a) ident 1 len 2
        Type: Extended features supported (0x0002)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 79.383107
      Remote Name Request (0x01|0x0019) ncmd 1
        Status: Success (0x00)
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.387165
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 16                   [hci0] 79.388164
      L2CAP: Information Response (0x0b) ident 1 len 8
        Type: Extended features supported (0x0002)
        Result: Success (0x0000)
        Features: 0x00000280
          Fixed Channels
          Unicast Connectionless Data Reception
< ACL Data TX: Handle 256 flags 0x00 dlen 10                   [hci0] 79.388264
      L2CAP: Information Request (0x0a) ident 2 len 2
        Type: Fixed channels supported (0x0003)
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.392254
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 20                   [hci0] 79.393162
      L2CAP: Information Response (0x0b) ident 2 len 12
        Type: Fixed channels supported (0x0003)
        Result: Success (0x0000)
        Channels: 0x0000000000000006
          L2CAP Signaling (BR/EDR)
          Connectionless reception
< ACL Data TX: Handle 256 flags 0x00 dlen 12                   [hci0] 79.393260
      L2CAP: Connection Request (0x02) ident 3 len 4
        PSM: 1 (0x0001)
        Source CID: 64
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.397254
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 16                   [hci0] 79.398259
      L2CAP: Connection Response (0x03) ident 3 len 8
        Destination CID: 67
        Source CID: 64
        Result: Connection successful (0x0000)
        Status: No further information available (0x0000)
< ACL Data TX: Handle 256 flags 0x00 dlen 12                   [hci0] 79.398362
      L2CAP: Configure Request (0x04) ident 4 len 4
        Destination CID: 67
        Flags: 0x0000
> ACL Data RX: Handle 256 flags 0x02 dlen 16                   [hci0] 79.399257
      L2CAP: Configure Request (0x04) ident 2 len 8
        Destination CID: 64
        Flags: 0x0000
        Option: Maximum Transmission Unit (0x01)
          MTU: 48
< ACL Data TX: Handle 256 flags 0x00 dlen 18                   [hci0] 79.399366
      L2CAP: Configure Response (0x05) ident 2 len 10
        Source CID: 67
        Flags: 0x0000
        Result: Success (0x0000)
        Option: Maximum Transmission Unit (0x01)
          MTU: 48
> ACL Data RX: Handle 256 flags 0x02 dlen 14                   [hci0] 79.404258
      L2CAP: Configure Response (0x05) ident 4 len 6
        Source CID: 64
        Flags: 0x0000
        Result: Success (0x0000)
< ACL Data TX: Handle 256 flags 0x00 dlen 24                   [hci0] 79.404471
      Channel: 67 len 20 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 0 len 15
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 0
> HCI Event: Remote Name Req Complete (0x07) plen 255          [hci0] 79.408283
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
        Name: ThinkPad Compact Bluetooth Keyboard with TrackPoint
@ Device Connected: 90:7F:61:xx:xx:xx (0) flags 0x0000
        34 09 54 68 69 6e 6b 50 61 64 20 43 6f 6d 70 61  4.ThinkPad Compa
        63 74 20 42 6c 75 65 74 6f 6f 74 68 20 4b 65 79  ct Bluetooth Key
        62 6f 61 72 64 20 77 69 74 68 20 54 72 61 63 6b  board with Track
        50 6f 69 6e 74 04 0d 40 25 00                    Point..@%.      
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.410113
        Num handles: 1
        Handle: 256
        Count: 1
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.411113
        Num handles: 1
        Handle: 256
        Count: 1
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.412130
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 79.435263
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 0 len 43
        Attribute bytes: 38
        Continuation state: 2
        00 26                                            .&              
> HCI Event: Command Complete (0x0e) plen 4                    [hci0] 79.441252
      Set AFH Host Channel Classification (0x03|0x003f) ncmd 2
        Status: Success (0x00)
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 79.524416
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 1 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        00 26                                            .&              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.528117
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 79.554259
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 1 len 43
        Attribute bytes: 38
        Continuation state: 2
        00 4c                                            .L              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 79.554445
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 2 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        00 4c                                            .L              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.558257
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 79.585270
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 2 len 43
        Attribute bytes: 38
        Continuation state: 2
        00 72                                            .r              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 79.585621
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 3 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        00 72                                            .r              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.590260
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 79.617266
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 3 len 43
        Attribute bytes: 38
        Continuation state: 2
        00 98                                            ..              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 79.617449
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 4 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        00 98                                            ..              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.622263
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 79.648269
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 4 len 43
        Attribute bytes: 38
        Continuation state: 2
        00 be                                            ..              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 79.648454
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 5 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        00 be                                            ..              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.653270
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 79.679262
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 5 len 43
        Attribute bytes: 38
        Continuation state: 2
        00 e4                                            ..              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 79.679445
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 6 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        00 e4                                            ..              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.683263
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 79.710264
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 6 len 43
        Attribute bytes: 38
        Continuation state: 2
        01 0a                                            ..              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 79.710492
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 7 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        01 0a                                            ..              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.715258
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 79.742264
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 7 len 43
        Attribute bytes: 38
        Continuation state: 2
        01 30                                            .0              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 79.742489
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 8 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        01 30                                            .0              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.747254
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 79.773254
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 8 len 43
        Attribute bytes: 38
        Continuation state: 2
        01 56                                            .V              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 79.773479
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 9 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        01 56                                            .V              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.827259
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 79.853268
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 9 len 43
        Attribute bytes: 38
        Continuation state: 2
        01 7c                                            .|              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 79.853493
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 10 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        01 7c                                            .|              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.858269
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 79.884267
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 10 len 43
        Attribute bytes: 38
        Continuation state: 2
        01 a2                                            ..              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 79.884493
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 11 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        01 a2                                            ..              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.888261
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 79.915266
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 11 len 43
        Attribute bytes: 38
        Continuation state: 2
        01 c8                                            ..              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 79.915489
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 12 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        01 c8                                            ..              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.920266
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 79.947261
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 12 len 43
        Attribute bytes: 38
        Continuation state: 2
        01 ee                                            ..              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 79.947488
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 13 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        01 ee                                            ..              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.952259
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 79.978252
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 13 len 43
        Attribute bytes: 38
        Continuation state: 2
        02 14                                            ..              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 79.978474
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 14 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        02 14                                            ..              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 79.983257
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 80.009257
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 14 len 43
        Attribute bytes: 38
        Continuation state: 2
        02 3a                                            .:              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 80.009482
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 15 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        02 3a                                            .:              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 80.013187
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 80.040262
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 15 len 43
        Attribute bytes: 38
        Continuation state: 2
        02 60                                            .`              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 80.040485
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 16 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        02 60                                            .`              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 80.045261
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 80.072260
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 16 len 43
        Attribute bytes: 38
        Continuation state: 2
        02 86                                            ..              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 80.072486
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 17 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        02 86                                            ..              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 80.077260
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 80.103264
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 17 len 43
        Attribute bytes: 38
        Continuation state: 2
        02 ac                                            ..              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 80.103490
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 18 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        02 ac                                            ..              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 80.108256
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 80.134262
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 18 len 43
        Attribute bytes: 38
        Continuation state: 2
        02 d2                                            ..              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 80.134487
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 19 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        02 d2                                            ..              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 80.138263
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 80.165261
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 19 len 43
        Attribute bytes: 38
        Continuation state: 2
        02 f8                                            ..              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 80.165485
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 20 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        02 f8                                            ..              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 80.171262
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 80.197258
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 20 len 43
        Attribute bytes: 38
        Continuation state: 2
        03 1e                                            ..              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 80.197481
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 21 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        03 1e                                            ..              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 80.202263
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 80.228266
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 21 len 43
        Attribute bytes: 38
        Continuation state: 2
        03 44                                            .D              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 80.228489
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 22 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        03 44                                            .D              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 80.233262
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 80.259267
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 22 len 43
        Attribute bytes: 38
        Continuation state: 2
        03 6a                                            .j              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 80.259492
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 23 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        03 6a                                            .j              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 80.263258
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 80.290265
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 23 len 43
        Attribute bytes: 38
        Continuation state: 2
        03 90                                            ..              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 80.290491
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 24 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        03 90                                            ..              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 80.295258
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 80.322267
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 24 len 43
        Attribute bytes: 38
        Continuation state: 2
        03 b6                                            ..              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 80.322491
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 25 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              L2CAP (0x0100)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        03 b6                                            ..              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 80.327257
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 21                   [hci0] 80.352266
      Channel: 64 len 17 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 25 len 12
        Attribute bytes: 9
        Continuation state: 0
        Combined attribute bytes: 959
          Attribute list: [len 142] {position 0}
            Attribute: Service Record Handle (0x0000) [len 2]
              0x00000000
            Attribute: Service Class ID List (0x0001) [len 2]
              UUID (3) with 2 bytes [0 extra bits] len 3
                Service Discovery Server Service Class (0x1000)
            Attribute: Protocol Descriptor List (0x0004) [len 2]
              Sequence (6) with 6 bytes [8 extra bits] len 8
                UUID (3) with 2 bytes [0 extra bits] len 3
                  L2CAP (0x0100)
                Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                  0x0001
              Sequence (6) with 3 bytes [8 extra bits] len 5
                UUID (3) with 2 bytes [0 extra bits] len 3
                  SDP (0x0001)
            Attribute: Browse Group List (0x0005) [len 2]
              UUID (3) with 2 bytes [0 extra bits] len 3
                Public Browse Root (0x1002)
            Attribute: Language Base Attribute ID List (0x0006) [len 2]
              Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                0x656e
              Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                0x006a
              Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                0x0100
            Attribute: Bluetooth Profile Descriptor List (0x0009) [len 2]
              Sequence (6) with 6 bytes [8 extra bits] len 8
                UUID (3) with 2 bytes [0 extra bits] len 3
                  L2CAP (0x0100)
                Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                  0x0100
            Attribute: Unknown (0x0100) [len 2]
              Bluetooth Keyboard SNP Server                   [len 47]
            Attribute: Unknown (0x0101) [len 2]
              Keyboard [len 8]
            Attribute: Unknown (0x0200) [len 2]
              Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                0x0100
          Attribute list: [len 644] {position 1}
            Attribute: Service Record Handle (0x0000) [len 2]
              0x00010000
            Attribute: Service Class ID List (0x0001) [len 2]
              UUID (3) with 2 bytes [0 extra bits] len 3
                Human Interface Device Service (0x1124)
            Attribute: Protocol Descriptor List (0x0004) [len 2]
              Sequence (6) with 6 bytes [8 extra bits] len 8
                UUID (3) with 2 bytes [0 extra bits] len 3
                  L2CAP (0x0100)
                Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                  0x0011
              Sequence (6) with 3 bytes [8 extra bits] len 5
                UUID (3) with 2 bytes [0 extra bits] len 3
                  HIDP (0x0011)
            Attribute: Browse Group List (0x0005) [len 2]
              UUID (3) with 2 bytes [0 extra bits] len 3
                Public Browse Root (0x1002)
            Attribute: Language Base Attribute ID List (0x0006) [len 2]
              Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                0x656e
              Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                0x006a
              Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                0x0100
            Attribute: Bluetooth Profile Descriptor List (0x0009) [len 2]
              Sequence (6) with 6 bytes [8 extra bits] len 8
                UUID (3) with 2 bytes [0 extra bits] len 3
                  Human Interface Device Service (0x1124)
                Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                  0x0101
            Attribute: Additional Protocol Descriptor List (0x000d) [len 2]
              Sequence (6) with 13 bytes [8 extra bits] len 15
                Sequence (6) with 6 bytes [8 extra bits] len 8
                  UUID (3) with 2 bytes [0 extra bits] len 3
                    L2CAP (0x0100)
                  Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                    0x0013
                Sequence (6) with 3 bytes [8 extra bits] len 5
                  UUID (3) with 2 bytes [0 extra bits] len 3
                    HIDP (0x0011)
            Attribute: Unknown (0x0100) [len 2]
              Bluetooth Keyboard                                            [len 61]
            Attribute: Unknown (0x0101) [len 2]
              Keyboard [len 8]
            Attribute: Unknown (0x0102) [len 2]
              Lenovo [len 6]
            Attribute: Unknown (0x0201) [len 2]
              0x0111
            Attribute: Unknown (0x0202) [len 2]
              0x40
            Attribute: Unknown (0x0203) [len 2]
              0x21
            Attribute: Unknown (0x0204) [len 2]
              true
            Attribute: Unknown (0x0205) [len 2]
              true
            Attribute: Unknown (0x0206) [len 2]
              Sequence (6) with 379 bytes [16 extra bits] len 382
                Unsigned Integer (1) with 1 byte [0 extra bits] len 2
                  0x22
                String (4) with 374 bytes [16 extra bits] len 377
                  \x01	¡…u•\b\aà)\x15 [len 374]
            Attribute: Unknown (0x0207) [len 2]
              Sequence (6) with 6 bytes [8 extra bits] len 8
                Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                  0x0409
                Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                  0x0100
            Attribute: Unknown (0x0209) [len 2]
              true
            Attribute: Unknown (0x020a) [len 2]
              true
            Attribute: Unknown (0x020c) [len 2]
              0x0c80
            Attribute: Unknown (0x020d) [len 2]
              false
            Attribute: Unknown (0x020e) [len 2]
              true
            Attribute: Unknown (0x020f) [len 2]
              0x0318
            Attribute: Unknown (0x0210) [len 2]
              0x0000
          Attribute list: [len 161] {position 2}
            Attribute: Service Record Handle (0x0000) [len 2]
              0x00010001
            Attribute: Service Class ID List (0x0001) [len 2]
              UUID (3) with 2 bytes [0 extra bits] len 3
                PnP Information (0x1200)
            Attribute: Protocol Descriptor List (0x0004) [len 2]
              Sequence (6) with 6 bytes [8 extra bits] len 8
                UUID (3) with 2 bytes [0 extra bits] len 3
                  L2CAP (0x0100)
                Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                  0x0001
              Sequence (6) with 3 bytes [8 extra bits] len 5
                UUID (3) with 2 bytes [0 extra bits] len 3
                  SDP (0x0001)
            Attribute: Language Base Attribute ID List (0x0006) [len 2]
              Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                0x656e
              Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                0x006a
              Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                0x0100
            Attribute: Bluetooth Profile Descriptor List (0x0009) [len 2]
              Sequence (6) with 6 bytes [8 extra bits] len 8
                UUID (3) with 2 bytes [0 extra bits] len 3
                  PnP Information (0x1200)
                Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                  0x0100
            Attribute: Unknown (0x0100) [len 2]
              Bluetooth Keyboard PNP Server                   [len 47]
            Attribute: Unknown (0x0101) [len 2]
              Keyboard [len 8]
            Attribute: Unknown (0x0200) [len 2]
              0x0103
            Attribute: Unknown (0x0201) [len 2]
              0x17ef
            Attribute: Unknown (0x0202) [len 2]
              0x6048
            Attribute: Unknown (0x0203) [len 2]
              0x0309
            Attribute: Unknown (0x0204) [len 2]
              true
            Attribute: Unknown (0x0205) [len 2]
              0x0002
< ACL Data TX: Handle 256 flags 0x00 dlen 24                   [hci0] 80.434689
      Channel: 67 len 20 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 26 len 15
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              PnP Information (0x1200)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 0
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 80.438114
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 80.464105
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 26 len 43
        Attribute bytes: 38
        Continuation state: 2
        00 26                                            .&              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 80.479364
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 27 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              PnP Information (0x1200)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        00 26                                            .&              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 80.483113
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 80.509260
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 27 len 43
        Attribute bytes: 38
        Continuation state: 2
        00 4c                                            .L              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 80.509473
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 28 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              PnP Information (0x1200)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        00 4c                                            .L              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 80.513266
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 80.540259
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 28 len 43
        Attribute bytes: 38
        Continuation state: 2
        00 72                                            .r              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 80.540483
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 29 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              PnP Information (0x1200)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        00 72                                            .r              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 80.545255
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 52                   [hci0] 80.572264
      Channel: 64 len 48 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 29 len 43
        Attribute bytes: 38
        Continuation state: 2
        00 98                                            ..              
< ACL Data TX: Handle 256 flags 0x00 dlen 26                   [hci0] 80.572490
      Channel: 67 len 22 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Request (0x06) tid 30 len 17
        Search pattern: [len 5]
          Sequence (6) with 3 bytes [8 extra bits] len 5
            UUID (3) with 2 bytes [0 extra bits] len 3
              PnP Information (0x1200)
        Max record count: 65535
        Attribute list: [len 7]
          Sequence (6) with 5 bytes [8 extra bits] len 7
            Unsigned Integer (1) with 4 bytes [0 extra bits] len 5
              0x0000ffff
        Continuation state: 2
        00 98                                            ..              
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 80.577261
        Num handles: 1
        Handle: 256
        Count: 1
> ACL Data RX: Handle 256 flags 0x02 dlen 27                   [hci0] 80.602268
      Channel: 64 len 23 [PSM 1 mode 0] {chan 0}
      SDP: Service Search Attribute Response (0x07) tid 30 len 18
        Attribute bytes: 15
        Continuation state: 0
        Combined attribute bytes: 167
          Attribute list: [len 161] {position 0}
            Attribute: Service Record Handle (0x0000) [len 2]
              0x00010001
            Attribute: Service Class ID List (0x0001) [len 2]
              UUID (3) with 2 bytes [0 extra bits] len 3
                PnP Information (0x1200)
            Attribute: Protocol Descriptor List (0x0004) [len 2]
              Sequence (6) with 6 bytes [8 extra bits] len 8
                UUID (3) with 2 bytes [0 extra bits] len 3
                  L2CAP (0x0100)
                Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                  0x0001
              Sequence (6) with 3 bytes [8 extra bits] len 5
                UUID (3) with 2 bytes [0 extra bits] len 3
                  SDP (0x0001)
            Attribute: Language Base Attribute ID List (0x0006) [len 2]
              Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                0x656e
              Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                0x006a
              Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                0x0100
            Attribute: Bluetooth Profile Descriptor List (0x0009) [len 2]
              Sequence (6) with 6 bytes [8 extra bits] len 8
                UUID (3) with 2 bytes [0 extra bits] len 3
                  PnP Information (0x1200)
                Unsigned Integer (1) with 2 bytes [0 extra bits] len 3
                  0x0100
            Attribute: Unknown (0x0100) [len 2]
              Bluetooth Keyboard PNP Server                   [len 47]
            Attribute: Unknown (0x0101) [len 2]
              Keyboard [len 8]
            Attribute: Unknown (0x0200) [len 2]
              0x0103
            Attribute: Unknown (0x0201) [len 2]
              0x17ef
            Attribute: Unknown (0x0202) [len 2]
              0x6048
            Attribute: Unknown (0x0203) [len 2]
              0x0309
            Attribute: Unknown (0x0204) [len 2]
              true
            Attribute: Unknown (0x0205) [len 2]
              0x0002
< HCI Command: Authentication Requested (0x01|0x0011) plen 2   [hci0] 80.668689
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 80.670115
      Authentication Requested (0x01|0x0011) ncmd 1
        Status: Success (0x00)
> HCI Event: Link Key Request (0x17) plen 6                    [hci0] 80.671104
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
< HCI Command: Link Key Request Negati.. (0x01|0x000c) plen 6  [hci0] 80.671150
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 80.673101
      Link Key Request Negative Reply (0x01|0x000c) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: PIN Code Request (0x16) plen 6                    [hci0] 80.674170
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
@ PIN Code Request: 90:7F:61:xx:xx:xx (0) secure 0x00
< HCI Command: PIN Code Request Negati.. (0x01|0x000e) plen 6  [hci0] 80.713488
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Command Complete (0x0e) plen 10                   [hci0] 80.715108
      PIN Code Request Negative Reply (0x01|0x000e) ncmd 1
        Status: Success (0x00)
        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
> HCI Event: Auth Complete (0x06) plen 3                       [hci0] 80.716170
        Status: PIN or Key Missing (0x06)
        Handle: 256
@ Authentication Failed: 90:7F:61:xx:xx:xx (0) status 0x05
< ACL Data TX: Handle 256 flags 0x00 dlen 12                   [hci0] 83.015918
      L2CAP: Disconnection Request (0x06) ident 5 len 4
        Destination CID: 67
        Source CID: 64
> ACL Data RX: Handle 256 flags 0x02 dlen 12                   [hci0] 83.020118
      L2CAP: Disconnection Response (0x07) ident 5 len 4
        Destination CID: 67
        Source CID: 64
> HCI Event: Number of Completed Packets (0x13) plen 5         [hci0] 83.020143
        Num handles: 1
        Handle: 256
        Count: 1
< HCI Command: Read Clock Offset (0x01|0x001f) plen 2          [hci0] 85.024128
        Handle: 256
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 85.026261
      Read Clock Offset (0x01|0x001f) ncmd 1
        Status: Success (0x00)
< HCI Command: Disconnect (0x01|0x0006) plen 3                 [hci0] 85.026360
        Handle: 256
        Reason: Remote User Terminated Connection (0x13)
> HCI Event: Command Status (0x0f) plen 4                      [hci0] 85.028269
      Disconnect (0x01|0x0006) ncmd 1
        Status: Success (0x00)
> HCI Event: Read Clock Offset Complete (0x1c) plen 5          [hci0] 85.030266
        Status: Success (0x00)
        Handle: 256
        Clock offset: 0x56e0
> HCI Event: Disconnect Complete (0x05) plen 4

-JimC
-- 
James Cloos <cloos@jhcloos.com>         OpenPGP: 0x997A9F17ED7DAEA6

^ permalink raw reply	[flat|nested] 16+ messages in thread

* BlueZ question about HID profile
  2015-01-05 22:45       ` James Cloos
  2015-01-05 23:29         ` Marcel Holtmann
@ 2015-01-06  1:01         ` Gilbert Gao
  2015-01-06  1:38           ` Marcel Holtmann
  1 sibling, 1 reply; 16+ messages in thread
From: Gilbert Gao @ 2015-01-06  1:01 UTC (permalink / raw)
  To: Marcel Holtmann, linux-bluetooth


Dear Experts,

Here is an emergent question about BlueZ feature:
I read the doc "supported-features.txt", which says BlueZ supports HID host=
.
And my question is whether HID device is supported?
Or can I use BlueZ HID profile to implement the Bluetooth HID device such a=
s a Bluetooth mouse or keyboard?

Thanks!
Best Regards,
Gilbert

**********************Confidentiality Notice************************
The opinions and views expressed in this e-mail are solely those of the aut=
hor and do not necessarily represent our company and its affiliates. If thi=
s e-mail is not originally intended for you, or received by you in error, d=
o not disclose its content to anyone and delete it immediately. This e-mail=
 may contain information that is legally privileged, confidential or exempt=
 from disclosure.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Keeping hci interface powered
  2015-01-06  0:33           ` James Cloos
@ 2015-01-06  1:32             ` Marcel Holtmann
  2015-01-27  2:47               ` Marcel Holtmann
  0 siblings, 1 reply; 16+ messages in thread
From: Marcel Holtmann @ 2015-01-06  1:32 UTC (permalink / raw)
  To: James Cloos; +Cc: linux-bluetooth

Hi James,

>>> link_keys has the line:
>>> 
>>> 90:7f:xx:xx:xx:xx 4 eaxxxxxxxxxxxxxxxxxxxxxxxxxxxx1e 0
> 
> MH> this is an unauthenticated link key from SSP. Surprising to me that
> MH> you do not have an authenticated link key. That is odd.
> 
>>> ,----< debug/bluetooth/hci0/features >
>>> |  0: 0xff 0xfe 0x0f 0xfe 0xdb 0xff 0x7b 0x87
> 
> MH> The features page 1 should list at least 0x01 to indicate Secure
> MH> Simple Pairing support. Can you run hciconfig hci0 features
> 
> That reports the same hex string, which it decodes as:
> 
> 	<3-slot packets> <5-slot packets> <encryption> <slot offset> 
> 	<timing accuracy> <role switch> <hold mode> <sniff mode> 
> 	<RSSI> <channel quality> <SCO link> <HV2 packets> 
> 	<HV3 packets> <u-law log> <A-law log> <CVSD> <paging scheme> 
> 	<power control> <transparent SCO> <EDR ACL 2 Mbps> 
> 	<EDR ACL 3 Mbps> <enhanced iscan> <interlaced iscan> 
> 	<interlaced pscan> <inquiry with RSSI> <extended SCO> 
> 	<EV4 packets> <EV5 packets> <AFH cap. slave> 
> 	<AFH class. slave> <LE support> <3-slot EDR ACL> 
> 	<5-slot EDR ACL> <sniff subrating> <pause encryption> 
> 	<AFH cap. master> <AFH class. master> <EDR eSCO 2 Mbps> 
> 	<EDR eSCO 3 Mbps> <3-slot EDR eSCO> <extended inquiry> 
> 	<LE and BR/EDR> <simple pairing> <encapsulated PDU> 
> 	<err. data report> <non-flush flag> <LSTO> <inquiry TX power> 
> 	<EPC> <extended features> 
> 
> MH> and btmgmt info
> 
> Built, but not installed by the ebuild....
> 
> hci0:	addr 80:86:F2:xx:xx:xx version 6 manufacturer 2 class 0x000104
> 	supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr hs le advertising debug-keys privacy configuration 
> 	current settings: powered bondable ssp br/edr le 
> 	name BlueZ 5.27
> 	short name 
> 
> I also found:
> 
>  :; hciconfig hci0 sspmode
>  hci0:	Type: BR/EDR  Bus: USB
>  	BD Address: 80:86:F2:xx:xx:xx  ACL MTU: 1021:5  SCO MTU: 96:5
>  	Simple Pairing mode: Disabled

these two do not match. btmgmt clearly says that SSP is enabled while the controller thinks otherwise. Something is wrong here. I think the only way to check would be to run btmon before the adapter is powered on.

> MH> This is odd. It should show also features page 1. Run btmon while
> MH> executing this command and I can tell you what is going on.
> 
> Bluetooth monitor ver 5.27
> = New Index: 80:86:F2:xx:xx:xx (BR/EDR,USB,hci0)                                [hci0] 0.590153
> 
> < HCI Command: Remote Name Request (0x01|0x0019) plen 10                        [hci0] 4.074510
>        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
>        Page scan repetition mode: R2 (0x02)
>        Page scan mode: Mandatory (0x00)
>        Clock offset: 0x0000
>> HCI Event: Command Status (0x0f) plen 4                                       [hci0] 4.076607
>      Remote Name Request (0x01|0x0019) ncmd 1
>        Status: Success (0x00)
>> HCI Event: Remote Name Req Complete (0x07) plen 255                           [hci0] 5.924745
>        Status: Success (0x00)
>        Address: 90:7F:61:xx:xx:xx (Chicony Electronics Co., Ltd.)
>        Name: ThinkPad Compact Bluetooth Keyboard with TrackPoint
> < HCI Command: Read Remote Version Information (0x01|0x001d) plen 2             [hci0] 5.925091
>        Handle: 256
>> HCI Event: Command Status (0x0f) plen 4                                       [hci0] 5.926589
>      Read Remote Version Information (0x01|0x001d) ncmd 1
>        Status: Success (0x00)
>> HCI Event: Read Remote Version Complete (0x0c) plen 8                         [hci0] 6.434751
>        Status: Success (0x00)
>        Handle: 256
>        LMP version: Bluetooth 3.0 (0x05) - Subversion 8721 (0x2211)
>        Manufacturer: Broadcom Corporation (15)
> < HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2              [hci0] 6.435093
>        Handle: 256
>> HCI Event: Command Status (0x0f) plen 4                                       [hci0] 6.436677
>      Read Remote Supported Features (0x01|0x001b) ncmd 1
>        Status: Success (0x00)
>> HCI Event: Read Remote Supported Features (0x0b) plen 11                      [hci0] 6.951761
>        Status: Success (0x00)
>        Handle: 256
>        Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
>          3 slot packets
>          5 slot packets
>          Encryption
>          Slot offset
>          Timing accuracy
>          Role switch
>          Sniff mode
>          Power control requests
>          Channel quality driven data rate (CQDDR)
>          Paging parameter negotiation
>          Power control
>          Broadcast Encryption
>          Enhanced inquiry scan
>          Interlaced inquiry scan
>          Interlaced page scan
>          RSSI with inquiry results
>          AFH capable slave
>          AFH classification slave
>          Sniff subrating
>          Pause encryption
>          AFH capable master
>          AFH classification master
>          Extended Inquiry Response
>          Secure Simple Pairing
>          Encapsulated PDU
>          Non-flushable Packet Boundary Flag
>          Link Supervision Timeout Changed Event
>          Inquiry TX Power Level
>          Enhanced Power Control
>          Extended features
> < HCI Command: Read Remote Extended Features (0x01|0x001c) plen 3               [hci0] 6.952067
>        Handle: 256
>        Page: 0
>> HCI Event: Command Status (0x0f) plen 4                                       [hci0] 6.953595
>      Read Remote Extended Features (0x01|0x001c) ncmd 1
>        Status: Success (0x00)
>> HCI Event: Read Remote Extended Features (0x23) plen 13                       [hci0] 7.469753
>        Status: Success (0x00)
>        Handle: 256
>        Page: 0/0
>        Features: 0xbf 0x06 0x86 0x78 0x18 0x1e 0x59 0x87
>          3 slot packets
>          5 slot packets
>          Encryption
>          Slot offset
>          Timing accuracy
>          Role switch
>          Sniff mode
>          Power control requests
>          Channel quality driven data rate (CQDDR)
>          Paging parameter negotiation
>          Power control
>          Broadcast Encryption
>          Enhanced inquiry scan
>          Interlaced inquiry scan
>          Interlaced page scan
>          RSSI with inquiry results
>          AFH capable slave
>          AFH classification slave
>          Sniff subrating
>          Pause encryption
>          AFH capable master
>          AFH classification master
>          Extended Inquiry Response
>          Secure Simple Pairing
>          Encapsulated PDU
>          Non-flushable Packet Boundary Flag
>          Link Supervision Timeout Changed Event
>          Inquiry TX Power Level
>          Enhanced Power Control
>          Extended features

So the max_page value is 0, but it should be 1 for this controller. I think that is what is tripping up the command and not reading page 1. The page is clearly available as the other trace shows. And yes, the keyboard has Secure Simple Pairing enabled.

> MH> The LegacyPairing: no is not a 100% indication, but I assume your
> MH> keyboard is actually a Bluetooth 2.1 keyboard with Secure Simple
> MH> Pairing.
>>> 
> MH> Do you have an exact model number or link? We might have to buy one
> MH> of these keyboards.
>>> 
>>> Lenovo's pages are:
>>> 
>>> http://shop.lenovo.com/us/en/itemdetails/0B47189/460/60AC6A0372B14F5BA7B12F1FF88E33C7
>>> http://support.lenovo.com/en/documents/pd026744
>>> 
>>> I got that one to support my trackpoint addiction. :^/
>>> 
>>> Are there any good tech specs for bt available w/o cost?
> 
> MH> Can you capture a pairing procedure with your keyboard with btmon?
> MH> Then I can tell what is actually going on between these two devices.
> 
> After unpairing, it refuses to re-pair at all.  So now no keyboard
> whatsoever......

Most likely it has a button that you need to press or hold to make it forgot the current key.

And when in bluetoothctl, make sure you start an agent. That is the piece that will ask you for the passkey.

Regards

Marcel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: BlueZ question about HID profile
  2015-01-06  1:01         ` BlueZ question about HID profile Gilbert Gao
@ 2015-01-06  1:38           ` Marcel Holtmann
  2015-01-06  2:25             ` Gilbert Gao
  2015-01-23 10:10             ` Gilbert Gao
  0 siblings, 2 replies; 16+ messages in thread
From: Marcel Holtmann @ 2015-01-06  1:38 UTC (permalink / raw)
  To: Gilbert Gao; +Cc: linux-bluetooth

Hi Gilbert,

> Here is an emergent question about BlueZ feature:
> I read the doc "supported-features.txt", which says BlueZ supports HID host.
> And my question is whether HID device is supported?
> Or can I use BlueZ HID profile to implement the Bluetooth HID device such as a Bluetooth mouse or keyboard?

it should be pretty simple to implement a HID device role. There have been external projects in the past that did this. The reason why this is not in BlueZ is mainly due to the fact that we would need to get the input events from some kind of source. So if you have that figured out, then it should be simple to provided HID device role.

Regards

Marcel



^ permalink raw reply	[flat|nested] 16+ messages in thread

* RE: BlueZ question about HID profile
  2015-01-06  1:38           ` Marcel Holtmann
@ 2015-01-06  2:25             ` Gilbert Gao
  2015-01-23 10:10             ` Gilbert Gao
  1 sibling, 0 replies; 16+ messages in thread
From: Gilbert Gao @ 2015-01-06  2:25 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: linux-bluetooth

Dear Marcel,

Thank you very much!
But now I'm not very clear about BlueZ HID implementation.
Could you help to point out how to modify for a HID device role or any sample code?

Best Regards,
Gilbert

-----Original Message-----
From: Marcel Holtmann [mailto:marcel@holtmann.org]
Sent: Tuesday, January 06, 2015 9:38 AM
To: Gilbert Gao
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: BlueZ question about HID profile

Hi Gilbert,

> Here is an emergent question about BlueZ feature:
> I read the doc "supported-features.txt", which says BlueZ supports HID host.
> And my question is whether HID device is supported?
> Or can I use BlueZ HID profile to implement the Bluetooth HID device such as a Bluetooth mouse or keyboard?

it should be pretty simple to implement a HID device role. There have been external projects in the past that did this. The reason why this is not in BlueZ is mainly due to the fact that we would need to get the input events from some kind of source. So if you have that figured out, then it should be simple to provided HID device role.

Regards

Marcel


**********************Confidentiality Notice************************
The opinions and views expressed in this e-mail are solely those of the author and do not necessarily represent our company and its affiliates. If this e-mail is not originally intended for you, or received by you in error, do not disclose its content to anyone and delete it immediately. This e-mail may contain information that is legally privileged, confidential or exempt from disclosure.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* RE: BlueZ question about HID profile
  2015-01-06  1:38           ` Marcel Holtmann
  2015-01-06  2:25             ` Gilbert Gao
@ 2015-01-23 10:10             ` Gilbert Gao
  2015-01-26 16:12               ` Luiz Augusto von Dentz
  1 sibling, 1 reply; 16+ messages in thread
From: Gilbert Gao @ 2015-01-23 10:10 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: linux-bluetooth


Hi,

I add KEYB to sdp:
#sdptool add KEYB

And HID service can be found and connected by a remote dongle on PC,
>From log, connect_event_cb() is called, but this function calls input_device_set_channel(), in which find_device() returns NULL, because the global variable "devices" is NULL, so the connection can not be established.
I want to know how to modify here for successful connection as a keyboard.

And I'm not very clear which interfaces should be called for HID device role to send data(such as a key press).

Sicerely expect your advice! Thank you!

Best Regards,
Gilbert


-----Original Message-----
From: Gilbert Gao
Sent: Tuesday, January 06, 2015 10:26 AM
To: 'Marcel Holtmann'
Cc: linux-bluetooth@vger.kernel.org
Subject: RE: BlueZ question about HID profile

Dear Marcel,

Thank you very much!
But now I'm not very clear about BlueZ HID implementation.
Could you help to point out how to modify for a HID device role or any sample code?

Best Regards,
Gilbert

-----Original Message-----
From: Marcel Holtmann [mailto:marcel@holtmann.org]
Sent: Tuesday, January 06, 2015 9:38 AM
To: Gilbert Gao
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: BlueZ question about HID profile

Hi Gilbert,

> Here is an emergent question about BlueZ feature:
> I read the doc "supported-features.txt", which says BlueZ supports HID host.
> And my question is whether HID device is supported?
> Or can I use BlueZ HID profile to implement the Bluetooth HID device such as a Bluetooth mouse or keyboard?

it should be pretty simple to implement a HID device role. There have been external projects in the past that did this. The reason why this is not in BlueZ is mainly due to the fact that we would need to get the input events from some kind of source. So if you have that figured out, then it should be simple to provided HID device role.

Regards

Marcel


**********************Confidentiality Notice************************
The opinions and views expressed in this e-mail are solely those of the author and do not necessarily represent our company and its affiliates. If this e-mail is not originally intended for you, or received by you in error, do not disclose its content to anyone and delete it immediately. This e-mail may contain information that is legally privileged, confidential or exempt from disclosure.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: BlueZ question about HID profile
  2015-01-23 10:10             ` Gilbert Gao
@ 2015-01-26 16:12               ` Luiz Augusto von Dentz
  2015-01-27  3:44                 ` Gilbert Gao
  0 siblings, 1 reply; 16+ messages in thread
From: Luiz Augusto von Dentz @ 2015-01-26 16:12 UTC (permalink / raw)
  To: Gilbert Gao; +Cc: Marcel Holtmann, linux-bluetooth

Hi,

On Fri, Jan 23, 2015 at 12:10 PM, Gilbert Gao <Gilbert.Gao@qisda.com> wrote=
:
>
> Hi,
>
> I add KEYB to sdp:
> #sdptool add KEYB
>
> And HID service can be found and connected by a remote dongle on PC,
> From log, connect_event_cb() is called, but this function calls input_dev=
ice_set_channel(), in which find_device() returns NULL, because the global =
variable "devices" is NULL, so the connection can not be established.
> I want to know how to modify here for successful connection as a keyboard=
.
>
> And I'm not very clear which interfaces should be called for HID device r=
ole to send data(such as a key press).
>
> Sicerely expect your advice! Thank you!

First of all, no top posting in the mailing list please, second the
sdptool shall not be used since you did not have any plugin to
implement it won't work, in order for this to work input plugin
probably needs changes, it just happens to connect because the PSM are
the same for both roles but since there is no actual record for the
host the plugin will never be initialize to work with the device
connecting thus the error you are seeing.

We could in theory enable HID device record but then input needs to
handle incoming connections and interface with some event input that
you might have to register over D-Bus, if you don't really have an
input device to be used as a source you could use uinput to emulate
one then bluetoothd would have to listen to the events, translate (not
sure if this step is really needed though) them to HID and then send
to the remote.

> Best Regards,
> Gilbert
>
>
> -----Original Message-----
> From: Gilbert Gao
> Sent: Tuesday, January 06, 2015 10:26 AM
> To: 'Marcel Holtmann'
> Cc: linux-bluetooth@vger.kernel.org
> Subject: RE: BlueZ question about HID profile
>
> Dear Marcel,
>
> Thank you very much!
> But now I'm not very clear about BlueZ HID implementation.
> Could you help to point out how to modify for a HID device role or any sa=
mple code?
>
> Best Regards,
> Gilbert
>
> -----Original Message-----
> From: Marcel Holtmann [mailto:marcel@holtmann.org]
> Sent: Tuesday, January 06, 2015 9:38 AM
> To: Gilbert Gao
> Cc: linux-bluetooth@vger.kernel.org
> Subject: Re: BlueZ question about HID profile
>
> Hi Gilbert,
>
>> Here is an emergent question about BlueZ feature:
>> I read the doc "supported-features.txt", which says BlueZ supports HID h=
ost.
>> And my question is whether HID device is supported?
>> Or can I use BlueZ HID profile to implement the Bluetooth HID device suc=
h as a Bluetooth mouse or keyboard?
>
> it should be pretty simple to implement a HID device role. There have bee=
n external projects in the past that did this. The reason why this is not i=
n BlueZ is mainly due to the fact that we would need to get the input event=
s from some kind of source. So if you have that figured out, then it should=
 be simple to provided HID device role.
>
> Regards
>
> Marcel
>
>
> **********************Confidentiality Notice************************
> The opinions and views expressed in this e-mail are solely those of the a=
uthor and do not necessarily represent our company and its affiliates. If t=
his e-mail is not originally intended for you, or received by you in error,=
 do not disclose its content to anyone and delete it immediately. This e-ma=
il may contain information that is legally privileged, confidential or exem=
pt from disclosure.
> --
> 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



--=20
Luiz Augusto von Dentz

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Keeping hci interface powered
  2015-01-06  1:32             ` Marcel Holtmann
@ 2015-01-27  2:47               ` Marcel Holtmann
  0 siblings, 0 replies; 16+ messages in thread
From: Marcel Holtmann @ 2015-01-27  2:47 UTC (permalink / raw)
  To: James Cloos; +Cc: linux-bluetooth

Hi James,

> So the max_page value is 0, but it should be 1 for this controller. I think that is what is tripping up the command and not reading page 1. The page is clearly available as the other trace shows. And yes, the keyboard has Secure Simple Pairing enabled.

I got this keyboard now and the max_page value set to 0 is a clear bug with this keyboard. However, the kernel already works around this one. I did fix the command line userspace tools to include the same fix now.

>> MH> The LegacyPairing: no is not a 100% indication, but I assume your
>> MH> keyboard is actually a Bluetooth 2.1 keyboard with Secure Simple
>> MH> Pairing.
>>>> 
>> MH> Do you have an exact model number or link? We might have to buy one
>> MH> of these keyboards.
>>>> 
>>>> Lenovo's pages are:
>>>> 
>>>> http://shop.lenovo.com/us/en/itemdetails/0B47189/460/60AC6A0372B14F5BA7B12F1FF88E33C7
>>>> http://support.lenovo.com/en/documents/pd026744
>>>> 
>>>> I got that one to support my trackpoint addiction. :^/
>>>> 
>>>> Are there any good tech specs for bt available w/o cost?
>> 
>> MH> Can you capture a pairing procedure with your keyboard with btmon?
>> MH> Then I can tell what is actually going on between these two devices.
>> 
>> After unpairing, it refuses to re-pair at all.  So now no keyboard
>> whatsoever......
> 
> Most likely it has a button that you need to press or hold to make it forgot the current key.
> 
> And when in bluetoothctl, make sure you start an agent. That is the piece that will ask you for the passkey.

So I did a basic pairing with this keyboard and it works as expected. It has SSP enabled and it does proper keyboard input handling for the passphrase.

What I am thinking is that you initially pairing with Legacy Pairing and then switched on SSP later on. This confused the keyboard and it things to allow Legacy Pairing. However that is really not how this works in the end.

When you make sure to remove all pairings and re-pair the keyboard it should all work fine and the keyboard should re-establish the encryption before trying to open HID control and interrupt channels.

Regards

Marcel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* RE: BlueZ question about HID profile
  2015-01-26 16:12               ` Luiz Augusto von Dentz
@ 2015-01-27  3:44                 ` Gilbert Gao
  2015-01-27  8:50                   ` Luiz Augusto von Dentz
  0 siblings, 1 reply; 16+ messages in thread
From: Gilbert Gao @ 2015-01-27  3:44 UTC (permalink / raw)
  To: Luiz Augusto von Dentz; +Cc: Marcel Holtmann, linux-bluetooth

Hi Luiz,

Thanks a lot!
Assuming we have the input source and BlueZ working as a HID device,
what interface BlueZ will expose for us to send a key press to remote? /dev/xxx or function call?
In another word, how to transfer the key press from input device to BlueZ?

Best Regards,
Gilbert

-----Original Message-----
From: Luiz Augusto von Dentz [mailto:luiz.dentz@gmail.com]
Sent: Tuesday, January 27, 2015 12:13 AM
To: Gilbert Gao
Cc: Marcel Holtmann; linux-bluetooth@vger.kernel.org
Subject: Re: BlueZ question about HID profile

Hi,

On Fri, Jan 23, 2015 at 12:10 PM, Gilbert Gao <Gilbert.Gao@qisda.com> wrote:
>
> Hi,
>
> I add KEYB to sdp:
> #sdptool add KEYB
>
> And HID service can be found and connected by a remote dongle on PC,
> From log, connect_event_cb() is called, but this function calls input_device_set_channel(), in which find_device() returns NULL, because the global variable "devices" is NULL, so the connection can not be established.
> I want to know how to modify here for successful connection as a keyboard.
>
> And I'm not very clear which interfaces should be called for HID device role to send data(such as a key press).
>
> Sicerely expect your advice! Thank you!

First of all, no top posting in the mailing list please, second the
sdptool shall not be used since you did not have any plugin to
implement it won't work, in order for this to work input plugin
probably needs changes, it just happens to connect because the PSM are
the same for both roles but since there is no actual record for the
host the plugin will never be initialize to work with the device
connecting thus the error you are seeing.

We could in theory enable HID device record but then input needs to
handle incoming connections and interface with some event input that
you might have to register over D-Bus, if you don't really have an
input device to be used as a source you could use uinput to emulate
one then bluetoothd would have to listen to the events, translate (not
sure if this step is really needed though) them to HID and then send
to the remote.

> Best Regards,
> Gilbert
>
>
> -----Original Message-----
> From: Gilbert Gao
> Sent: Tuesday, January 06, 2015 10:26 AM
> To: 'Marcel Holtmann'
> Cc: linux-bluetooth@vger.kernel.org
> Subject: RE: BlueZ question about HID profile
>
> Dear Marcel,
>
> Thank you very much!
> But now I'm not very clear about BlueZ HID implementation.
> Could you help to point out how to modify for a HID device role or any sample code?
>
> Best Regards,
> Gilbert
>
> -----Original Message-----
> From: Marcel Holtmann [mailto:marcel@holtmann.org]
> Sent: Tuesday, January 06, 2015 9:38 AM
> To: Gilbert Gao
> Cc: linux-bluetooth@vger.kernel.org
> Subject: Re: BlueZ question about HID profile
>
> Hi Gilbert,
>
>> Here is an emergent question about BlueZ feature:
>> I read the doc "supported-features.txt", which says BlueZ supports HID host.
>> And my question is whether HID device is supported?
>> Or can I use BlueZ HID profile to implement the Bluetooth HID device such as a Bluetooth mouse or keyboard?
>
> it should be pretty simple to implement a HID device role. There have been external projects in the past that did this. The reason why this is not in BlueZ is mainly due to the fact that we would need to get the input events from some kind of source. So if you have that figured out, then it should be simple to provided HID device role.
>
> Regards
>
> Marcel
>
>
> **********************Confidentiality Notice************************
> The opinions and views expressed in this e-mail are solely those of the author and do not necessarily represent our company and its affiliates. If this e-mail is not originally intended for you, or received by you in error, do not disclose its content to anyone and delete it immediately. This e-mail may contain information that is legally privileged, confidential or exempt from disclosure.
> --
> 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



--
Luiz Augusto von Dentz
**********************Confidentiality Notice************************
The opinions and views expressed in this e-mail are solely those of the author and do not necessarily represent our company and its affiliates. If this e-mail is not originally intended for you, or received by you in error, do not disclose its content to anyone and delete it immediately. This e-mail may contain information that is legally privileged, confidential or exempt from disclosure.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: BlueZ question about HID profile
  2015-01-27  3:44                 ` Gilbert Gao
@ 2015-01-27  8:50                   ` Luiz Augusto von Dentz
  0 siblings, 0 replies; 16+ messages in thread
From: Luiz Augusto von Dentz @ 2015-01-27  8:50 UTC (permalink / raw)
  To: Gilbert Gao; +Cc: Marcel Holtmann, linux-bluetooth

Hi,

On Tue, Jan 27, 2015 at 5:44 AM, Gilbert Gao <Gilbert.Gao@qisda.com> wrote:
> Hi Luiz,
>
> Thanks a lot!
> Assuming we have the input source and BlueZ working as a HID device,
> what interface BlueZ will expose for us to send a key press to remote? /d=
ev/xxx or function call?
> In another word, how to transfer the key press from input device to BlueZ=
?

I guess you did not pay attention to the comment about top posting in the l=
ist:

http://www.bluez.org/development/lists/

Regarding the mechanism to hand over the events, as I said it already,
you probably need to come up with a proposal, something like
InputManager.Register("/dev/xxx") could work but I did not think about
the details and we could perhaps have the kernel doing some sort of
pass-through mode if the source input is already an HID device.

> Best Regards,
> Gilbert
>
> -----Original Message-----
> From: Luiz Augusto von Dentz [mailto:luiz.dentz@gmail.com]
> Sent: Tuesday, January 27, 2015 12:13 AM
> To: Gilbert Gao
> Cc: Marcel Holtmann; linux-bluetooth@vger.kernel.org
> Subject: Re: BlueZ question about HID profile
>
> Hi,
>
> On Fri, Jan 23, 2015 at 12:10 PM, Gilbert Gao <Gilbert.Gao@qisda.com> wro=
te:
>>
>> Hi,
>>
>> I add KEYB to sdp:
>> #sdptool add KEYB
>>
>> And HID service can be found and connected by a remote dongle on PC,
>> From log, connect_event_cb() is called, but this function calls input_de=
vice_set_channel(), in which find_device() returns NULL, because the global=
 variable "devices" is NULL, so the connection can not be established.
>> I want to know how to modify here for successful connection as a keyboar=
d.
>>
>> And I'm not very clear which interfaces should be called for HID device =
role to send data(such as a key press).
>>
>> Sicerely expect your advice! Thank you!
>
> First of all, no top posting in the mailing list please, second the
> sdptool shall not be used since you did not have any plugin to
> implement it won't work, in order for this to work input plugin
> probably needs changes, it just happens to connect because the PSM are
> the same for both roles but since there is no actual record for the
> host the plugin will never be initialize to work with the device
> connecting thus the error you are seeing.
>
> We could in theory enable HID device record but then input needs to
> handle incoming connections and interface with some event input that
> you might have to register over D-Bus, if you don't really have an
> input device to be used as a source you could use uinput to emulate
> one then bluetoothd would have to listen to the events, translate (not
> sure if this step is really needed though) them to HID and then send
> to the remote.
>
>> Best Regards,
>> Gilbert
>>
>>
>> -----Original Message-----
>> From: Gilbert Gao
>> Sent: Tuesday, January 06, 2015 10:26 AM
>> To: 'Marcel Holtmann'
>> Cc: linux-bluetooth@vger.kernel.org
>> Subject: RE: BlueZ question about HID profile
>>
>> Dear Marcel,
>>
>> Thank you very much!
>> But now I'm not very clear about BlueZ HID implementation.
>> Could you help to point out how to modify for a HID device role or any s=
ample code?
>>
>> Best Regards,
>> Gilbert
>>
>> -----Original Message-----
>> From: Marcel Holtmann [mailto:marcel@holtmann.org]
>> Sent: Tuesday, January 06, 2015 9:38 AM
>> To: Gilbert Gao
>> Cc: linux-bluetooth@vger.kernel.org
>> Subject: Re: BlueZ question about HID profile
>>
>> Hi Gilbert,
>>
>>> Here is an emergent question about BlueZ feature:
>>> I read the doc "supported-features.txt", which says BlueZ supports HID =
host.
>>> And my question is whether HID device is supported?
>>> Or can I use BlueZ HID profile to implement the Bluetooth HID device su=
ch as a Bluetooth mouse or keyboard?
>>
>> it should be pretty simple to implement a HID device role. There have be=
en external projects in the past that did this. The reason why this is not =
in BlueZ is mainly due to the fact that we would need to get the input even=
ts from some kind of source. So if you have that figured out, then it shoul=
d be simple to provided HID device role.
>>
>> Regards
>>
>> Marcel
>>
>>
>> **********************Confidentiality Notice************************
>> The opinions and views expressed in this e-mail are solely those of the =
author and do not necessarily represent our company and its affiliates. If =
this e-mail is not originally intended for you, or received by you in error=
, do not disclose its content to anyone and delete it immediately. This e-m=
ail may contain information that is legally privileged, confidential or exe=
mpt from disclosure.
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-bluetoot=
h" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
>
>
> --
> Luiz Augusto von Dentz
> **********************Confidentiality Notice************************
> The opinions and views expressed in this e-mail are solely those of the a=
uthor and do not necessarily represent our company and its affiliates. If t=
his e-mail is not originally intended for you, or received by you in error,=
 do not disclose its content to anyone and delete it immediately. This e-ma=
il may contain information that is legally privileged, confidential or exem=
pt from disclosure.



--=20
Luiz Augusto von Dentz

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2015-01-27  8:50 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-04  0:27 Keeping hci interface powered James Cloos
2015-01-04  1:40 ` Marcel Holtmann
2015-01-05 21:28   ` James Cloos
2015-01-05 21:47     ` Marcel Holtmann
2015-01-05 22:45       ` James Cloos
2015-01-05 23:29         ` Marcel Holtmann
2015-01-06  0:33           ` James Cloos
2015-01-06  1:32             ` Marcel Holtmann
2015-01-27  2:47               ` Marcel Holtmann
2015-01-06  1:01         ` BlueZ question about HID profile Gilbert Gao
2015-01-06  1:38           ` Marcel Holtmann
2015-01-06  2:25             ` Gilbert Gao
2015-01-23 10:10             ` Gilbert Gao
2015-01-26 16:12               ` Luiz Augusto von Dentz
2015-01-27  3:44                 ` Gilbert Gao
2015-01-27  8:50                   ` Luiz Augusto von Dentz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.