I have a logitech K380 which goes through the pair process, either from bluetoothctl or from the gnome bluetooth control panel, accepting the keystrokes for the pairing password, right up to the RETURN, and then the connection fails. At that point, bluetoothctl shows it as paired, but it cannot connect. Touching a key on the keyboard to get it to try to connect shows this in btmon. > HCI Event: Connect Request (0x04) plen 10 > #3535 [hci0] 4323.298970 Address: 34:88:5D:BA:B5:28 (Logitech Far East) Class: 0x000540 Major class: Peripheral (mouse, joystick, keyboards) Minor class: 0x10 Link type: ACL (0x01) < HCI Command: Accept Connection Request (0x01|0x0009) plen 7 #3536 [hci0] 4323.299047 Address: 34:88:5D:BA:B5:28 (Logitech Far East) Role: Master (0x00) > HCI Event: Command Status (0x0f) plen 4 > #3537 [hci0] 4323.300969 Accept Connection Request (0x01|0x0009) ncmd 1 Status: Success (0x00) > HCI Event: Role Change (0x12) plen 8 > #3538 [hci0] 4323.458938 Status: Success (0x00) Address: 34:88:5D:BA:B5:28 (Logitech Far East) Role: Master (0x00) > HCI Event: Connect Complete (0x03) plen 11 > #3539 [hci0] 4323.464949 Status: Success (0x00) Handle: 11 Address: 34:88:5D:BA:B5:28 (Logitech Far East) Link type: ACL (0x01) Encryption: Disabled (0x00) < HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2 #3540 [hci0] 4323.465091 Handle: 11 > HCI Event: Command Status (0x0f) plen 4 > #3541 [hci0] 4323.466939 Read Remote Supported Features (0x01|0x001b) ncmd 1 Status: Success (0x00) < HCI Command: Write Scan Enable (0x03|0x001a) plen 1 #3542 [hci0] 4323.466975 Scan enable: No Scans (0x00) > HCI Event: Command Complete (0x0e) plen 4 > #3543 [hci0] 4323.467935 Write Scan Enable (0x03|0x001a) ncmd 1 Status: Success (0x00) > HCI Event: Read Remote Supported Features (0x0b) plen 11 > #3544 [hci0] 4323.474969 Status: Success (0x00) Handle: 11 Features: 0xbc 0x04 0x82 0x78 0x00 0x06 0x79 0x83 Encryption Slot offset Timing accuracy Role switch Sniff mode Channel quality driven data rate (CQDDR) Paging parameter negotiation Broadcast Encryption Enhanced inquiry scan Interlaced inquiry scan Interlaced page scan RSSI with inquiry results Sniff subrating Pause encryption Extended Inquiry Response Secure Simple Pairing Encapsulated PDU Erroneous Data Reporting Non-flushable Packet Boundary Flag Link Supervision Timeout Changed Event Inquiry TX Power Level Extended features < HCI Command: Read Remote Extended Features (0x01|0x001c) plen 3 #3545 [hci0] 4323.475009 Handle: 11 Page: 1 > HCI Event: Command Status (0x0f) plen 4 > #3546 [hci0] 4323.475935 Read Remote Extended Features (0x01|0x001c) ncmd 1 Status: Success (0x00) > HCI Event: Link Key Request (0x17) plen 6 > #3547 [hci0] 4323.478966 Address: 34:88:5D:BA:B5:28 (Logitech Far East) < HCI Command: Link Key Request Reply (0x01|0x000b) plen 22 #3548 [hci0] 4323.479030 Address: 34:88:5D:BA:B5:28 (Logitech Far East) Link key: 5a101d47bab277b8dcf5520ed9cd905e > HCI Event: Read Remote Extended Features (0x23) plen 13 > #3549 [hci0] 4323.479964 Status: Success (0x00) Handle: 11 Page: 1/1 Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Secure Simple Pairing (Host Support) < ACL Data TX: Handle 11 flags 0x00 dlen 10 #3550 [hci0] 4323.480019 L2CAP: Information Request (0x0a) ident 1 len 2 Type: Extended features supported (0x0002) > HCI Event: Command Complete (0x0e) plen 10 > #3551 [hci0] 4323.483965 Link Key Request Reply (0x01|0x000b) ncmd 1 Status: Success (0x00) Address: 34:88:5D:BA:B5:28 (Logitech Far East) < HCI Command: Remote Name Request (0x01|0x0019) plen 10 #3552 [hci0] 4323.484029 Address: 34:88:5D:BA:B5:28 (Logitech Far East) Page scan repetition mode: R2 (0x02) Page scan mode: Mandatory (0x00) Clock offset: 0x0000 > HCI Event: Command Status (0x0f) plen 4 > #3553 [hci0] 4323.485932 Remote Name Request (0x01|0x0019) ncmd 1 Status: Success (0x00) > HCI Event: Remote Name Req Complete (0x07) plen 255 > #3554 [hci0] 4323.506965 Status: Success (0x00) Address: 34:88:5D:BA:B5:28 (Logitech Far East) Name: Keyboard K380 @ MGMT Event: Device Connected (0x000b) plen 33 {0x0002} [hci0] 4323.507012 BR/EDR Address: 34:88:5D:BA:B5:28 (Logitech Far East) Flags: 0x00000000 Data length: 20 Name (complete): Keyboard K380 Class: 0x000540 Major class: Peripheral (mouse, joystick, keyboards) Minor class: 0x10 @ MGMT Event: Device Connected (0x000b) plen 33 {0x0001} [hci0] 4323.507012 BR/EDR Address: 34:88:5D:BA:B5:28 (Logitech Far East) Flags: 0x00000000 Data length: 20 Name (complete): Keyboard K380 Class: 0x000540 Major class: Peripheral (mouse, joystick, keyboards) Minor class: 0x10 > HCI Event: Encryption Change (0x08) plen 4 > #3555 [hci0] 4323.511937 Status: Success (0x00) Handle: 11 Encryption: Enabled with E0 (0x01) < HCI Command: Read Encryption Key Size (0x05|0x0008) plen 2 #3556 [hci0] 4323.511970 Handle: 11 > HCI Event: Command Complete (0x0e) plen 7 > #3557 [hci0] 4323.512911 Read Encryption Key Size (0x05|0x0008) ncmd 1 Status: Success (0x00) Handle: 11 Key size: 16 > ACL Data RX: Handle 11 flags 0x02 dlen 16 > #3558 [hci0] 4323.515567 L2CAP: Information Response (0x0b) ident 1 len 8 Type: Extended features supported (0x0002) Result: Success (0x0000) Features: 0x000c200b Flow control mode Retransmission mode Enhanced Retransmission Mode Unknown features (0x000c2000) > ACL Data RX: Handle 8 flags 0x00 dlen 1 > #3559 [hci0] 4323.515575 frame too short 02 . > HCI Event: Number of Completed Packets (0x13) plen 5 > #3560 [hci0] 4323.687970 Num handles: 1 Handle: 11 Count: 1 < HCI Command: Disconnect (0x01|0x0006) plen 3 #3561 [hci0] 4327.542193 Handle: 11 Reason: Remote User Terminated Connection (0x13) > HCI Event: Command Status (0x0f) plen 4 > #3562 [hci0] 4327.652689 Disconnect (0x01|0x0006) ncmd 1 Status: Success (0x00) > HCI Event: Disconnect Complete (0x05) plen 4 > #3563 [hci0] 4327.726690 Status: Success (0x00) Handle: 11 Reason: Connection Terminated By Local Host (0x16) @ MGMT Event: Device Disconnected (0x000c) plen 8 {0x0002} [hci0] 4327.726746 BR/EDR Address: 34:88:5D:BA:B5:28 (Logitech Far East) Reason: Connection terminated by local host (0x02) @ MGMT Event: Device Disconnected (0x000c) plen 8 {0x0001} [hci0] 4327.726746 BR/EDR Address: 34:88:5D:BA:B5:28 (Logitech Far East) Reason: Connection terminated by local host (0x02) < HCI Command: Write Scan Enable (0x03|0x001a) plen 1 #3564 [hci0] 4327.744330 Scan enable: Page Scan (0x02) > HCI Event: Command Complete (0x0e) plen 4 > #3565 [hci0] 4327.745663 Write Scan Enable (0x03|0x001a) ncmd 1 Status: Success (0x00) **************************************************************** If I try to initiate the connection from bluetoothctl instead of from the keyboard, the btmon output is slightly different, and much shorter: < HCI Command: Create Connection (0x01|0x0005) plen 13 #3566 [hci0] 4417.886051 Address: 34:88:5D:BA:B5:28 (Logitech Far East) 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 > #3567 [hci0] 4417.997065 Create Connection (0x01|0x0005) ncmd 1 Status: Success (0x00) > HCI Event: Connect Complete (0x03) plen 11 > #3568 [hci0] 4423.198882 Status: Page Timeout (0x04) Handle: 12 Address: 34:88:5D:BA:B5:28 (Logitech Far East) Link type: ACL (0x01) Encryption: Disabled (0x00) @ MGMT Event: Connect Failed (0x000d) plen 8 {0x0002} [hci0] 4423.198916 BR/EDR Address: 34:88:5D:BA:B5:28 (Logitech Far East) Status: Connect Failed (0x04) @ MGMT Event: Connect Failed (0x000d) plen 8 {0x0001} [hci0] 4423.198916 BR/EDR Address: 34:88:5D:BA:B5:28 (Logitech Far East) Status: Connect Failed (0x04) = bluetoothd: 34:88:5D:BA:B5:28: error updating services: Host is down (112) 4423.199390 ***************************************************************** I regularly use this keyboard on my Windows10 laptop and my android tablet, and it works perfectly in those environments. There have been times when somehow the keyboard and BlueZ seem to get into a happy state and the pairing and connection will work, and then the keyboard will connect successfully for several days of use,...and then it will disconnect spontaneously while I'm typing,...just *bam*,...keyboard is gone and now it cannot connect again. I've not found any reliable way of getting it to connect. Just try pairing and connecting over and over and then after 100 tries or so it'll connect and work for a few days. The Logitech K380 is a current shipping product, and I *love* this keyboard. I'm ready to dive in on this to get to the bottom of it, at least in terms of doing experiments and providing logs. I'm not a programmer.
Here's what else is on my machine... # rpm -qa |grep blue bluez-cups-5.54-1.fc32.x86_64 bluez-libs-5.54-1.fc32.x86_64 bluez-obexd-5.54-1.fc32.x86_64 gnome-bluetooth-libs-3.34.1-1.fc32.x86_64 NetworkManager-bluetooth-1.22.12-1.fc32.x86_64 pulseaudio-module-bluetooth-13.99.1-3.fc32.x86_64 bluez-5.54-1.fc32.x86_64 gnome-bluetooth-3.34.1-1.fc32.x86_64 bluez-hid2hci-5.54-1.fc32.x86_64
Interestingly, I pulled the USB bluetooth dongle and reinserted it, and then things worked on the next try. Here's the btmon output of a successful connection. Note, I unpaired the keyboard and tried pairing it again and it failed, and pulling the dongle didn't work, so I don't think that's really related, or a workaround. > HCI Event: Connect Request (0x04) plen 10 > #1756 [hci0] 4834.006397 Address: 34:88:5D:BA:B5:28 (Logitech Far East) Class: 0x000540 Major class: Peripheral (mouse, joystick, keyboards) Minor class: 0x10 Link type: ACL (0x01) < HCI Command: Accept Connection Request (0x01|0x0009) plen 7 #1757 [hci0] 4834.006471 Address: 34:88:5D:BA:B5:28 (Logitech Far East) Role: Master (0x00) > HCI Event: Command Status (0x0f) plen 4 > #1758 [hci0] 4834.008364 Accept Connection Request (0x01|0x0009) ncmd 1 Status: Success (0x00) > HCI Event: Role Change (0x12) plen 8 > #1759 [hci0] 4834.167371 Status: Success (0x00) Address: 34:88:5D:BA:B5:28 (Logitech Far East) Role: Master (0x00) > HCI Event: Connect Complete (0x03) plen 11 > #1760 [hci0] 4834.174407 Status: Success (0x00) Handle: 11 Address: 34:88:5D:BA:B5:28 (Logitech Far East) Link type: ACL (0x01) Encryption: Disabled (0x00) < HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2 #1761 [hci0] 4834.174565 Handle: 11 > HCI Event: Command Status (0x0f) plen 4 > #1762 [hci0] 4834.175368 Read Remote Supported Features (0x01|0x001b) ncmd 1 Status: Success (0x00) < HCI Command: Write Scan Enable (0x03|0x001a) plen 1 #1763 [hci0] 4834.175423 Scan enable: No Scans (0x00) > HCI Event: Command Complete (0x0e) plen 4 > #1764 [hci0] 4834.176409 Write Scan Enable (0x03|0x001a) ncmd 1 Status: Success (0x00) > HCI Event: Read Remote Supported Features (0x0b) plen 11 > #1765 [hci0] 4834.183368 Status: Success (0x00) Handle: 11 Features: 0xbc 0x04 0x82 0x78 0x00 0x06 0x79 0x83 Encryption Slot offset Timing accuracy Role switch Sniff mode Channel quality driven data rate (CQDDR) Paging parameter negotiation Broadcast Encryption Enhanced inquiry scan Interlaced inquiry scan Interlaced page scan RSSI with inquiry results Sniff subrating Pause encryption Extended Inquiry Response Secure Simple Pairing Encapsulated PDU Erroneous Data Reporting Non-flushable Packet Boundary Flag Link Supervision Timeout Changed Event Inquiry TX Power Level Extended features < HCI Command: Read Remote Extended Features (0x01|0x001c) plen 3 #1766 [hci0] 4834.183446 Handle: 11 Page: 1 > HCI Event: Command Status (0x0f) plen 4 > #1767 [hci0] 4834.184373 Read Remote Extended Features (0x01|0x001c) ncmd 1 Status: Success (0x00) > HCI Event: Read Remote Extended Features (0x23) plen 13 > #1768 [hci0] 4834.187389 Status: Success (0x00) Handle: 11 Page: 1/1 Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Secure Simple Pairing (Host Support) < HCI Command: Remote Name Request (0x01|0x0019) plen 10 #1769 [hci0] 4834.187444 Address: 34:88:5D:BA:B5:28 (Logitech Far East) Page scan repetition mode: R2 (0x02) Page scan mode: Mandatory (0x00) Clock offset: 0x0000 < ACL Data TX: Handle 11 flags 0x00 dlen 10 #1770 [hci0] 4834.187459 L2CAP: Information Request (0x0a) ident 1 len 2 Type: Extended features supported (0x0002) > HCI Event: Link Key Request (0x17) plen 6 > #1771 [hci0] 4834.189418 Address: 34:88:5D:BA:B5:28 (Logitech Far East) > HCI Event: Command Status (0x0f) plen 4 > #1772 [hci0] 4834.190382 Remote Name Request (0x01|0x0019) ncmd 1 Status: Success (0x00) < HCI Command: Link Key Request Reply (0x01|0x000b) plen 22 #1773 [hci0] 4834.190437 Address: 34:88:5D:BA:B5:28 (Logitech Far East) Link key: 5809d35d40d10613e9135c086d2d1d6e > ACL Data RX: Handle 11 flags 0x02 dlen 16 > #1774 [hci0] 4834.193249 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 11 flags 0x00 dlen 10 #1775 [hci0] 4834.193267 L2CAP: Information Request (0x0a) ident 2 len 2 Type: Fixed channels supported (0x0003) > HCI Event: Command Complete (0x0e) plen 10 > #1776 [hci0] 4834.195361 Link Key Request Reply (0x01|0x000b) ncmd 1 Status: Success (0x00) Address: 34:88:5D:BA:B5:28 (Logitech Far East) > ACL Data RX: Handle 11 flags 0x02 dlen 20 > #1777 [hci0] 4834.196987 L2CAP: Information Response (0x0b) ident 2 len 12 Type: Fixed channels supported (0x0003) Result: Success (0x0000) Channels: 0x0000000000000006 L2CAP Signaling (BR/EDR) Connectionless reception > HCI Event: Remote Name Req Complete (0x07) plen 255 > #1778 [hci0] 4834.212362 Status: Success (0x00) Address: 34:88:5D:BA:B5:28 (Logitech Far East) Name: Keyboard K380 @ MGMT Event: Device Connected (0x000b) plen 33 {0x0001} [hci0] 4834.212400 BR/EDR Address: 34:88:5D:BA:B5:28 (Logitech Far East) Flags: 0x00000000 Data length: 20 Name (complete): Keyboard K380 Class: 0x000540 Major class: Peripheral (mouse, joystick, keyboards) Minor class: 0x10 @ MGMT Event: Device Connected (0x000b) plen 33 {0x0002} [hci0] 4834.212400 BR/EDR Address: 34:88:5D:BA:B5:28 (Logitech Far East) Flags: 0x00000000 Data length: 20 Name (complete): Keyboard K380 Class: 0x000540 Major class: Peripheral (mouse, joystick, keyboards) Minor class: 0x10 > HCI Event: Number of Completed Packets (0x13) plen 5 > #1779 [hci0] 4834.213376 Num handles: 1 Handle: 11 Count: 2 > HCI Event: Encryption Change (0x08) plen 4 > #1780 [hci0] 4834.222367 Status: Success (0x00) Handle: 11 Encryption: Enabled with E0 (0x01) < HCI Command: Read Encryption Key Size (0x05|0x0008) plen 2 #1781 [hci0] 4834.222447 Handle: 11 > HCI Event: Command Complete (0x0e) plen 7 > #1782 [hci0] 4834.223376 Read Encryption Key Size (0x05|0x0008) ncmd 1 Status: Success (0x00) Handle: 11 Key size: 16 > ACL Data RX: Handle 11 flags 0x02 dlen 12 > #1783 [hci0] 4834.225757 L2CAP: Connection Request (0x02) ident 2 len 4 PSM: 17 (0x0011) Source CID: 64 < ACL Data TX: Handle 11 flags 0x00 dlen 16 #1784 [hci0] 4834.225799 L2CAP: Connection Response (0x03) ident 2 len 8 Destination CID: 64 Source CID: 64 Result: Connection successful (0x0000) Status: No further information available (0x0000) < ACL Data TX: Handle 11 flags 0x00 dlen 12 #1785 [hci0] 4834.225804 L2CAP: Configure Request (0x04) ident 3 len 4 Destination CID: 64 Flags: 0x0000 > ACL Data RX: Handle 11 flags 0x02 dlen 16 > #1786 [hci0] 4834.229501 L2CAP: Configure Request (0x04) ident 3 len 8 Destination CID: 64 Flags: 0x0000 Option: Maximum Transmission Unit (0x01) [mandatory] MTU: 48 < ACL Data TX: Handle 11 flags 0x00 dlen 18 #1787 [hci0] 4834.229554 L2CAP: Configure Response (0x05) ident 3 len 10 Source CID: 64 Flags: 0x0000 Result: Success (0x0000) Option: Maximum Transmission Unit (0x01) [mandatory] MTU: 48 > HCI Event: Number of Completed Packets (0x13) plen 5 > #1788 [hci0] 4834.230363 Num handles: 1 Handle: 11 Count: 2 > ACL Data RX: Handle 11 flags 0x02 dlen 14 > #1789 [hci0] 4834.230751 L2CAP: Configure Response (0x05) ident 3 len 6 Source CID: 64 Flags: 0x0000 Result: Success (0x0000) > ACL Data RX: Handle 11 flags 0x02 dlen 12 > #1790 [hci0] 4834.234485 L2CAP: Connection Request (0x02) ident 4 len 4 PSM: 19 (0x0013) Source CID: 65 < ACL Data TX: Handle 11 flags 0x00 dlen 16 #1791 [hci0] 4834.234548 L2CAP: Connection Response (0x03) ident 4 len 8 Destination CID: 65 Source CID: 65 Result: Connection pending (0x0001) Status: Authorization pending (0x0002) < ACL Data TX: Handle 11 flags 0x00 dlen 16 #1792 [hci0] 4834.234637 L2CAP: Connection Response (0x03) ident 4 len 8 Destination CID: 65 Source CID: 65 Result: Connection successful (0x0000) Status: No further information available (0x0000) < ACL Data TX: Handle 11 flags 0x00 dlen 12 #1793 [hci0] 4834.234648 L2CAP: Configure Request (0x04) ident 4 len 4 Destination CID: 65 Flags: 0x0000 > HCI Event: Number of Completed Packets (0x13) plen 5 > #1794 [hci0] 4834.237375 Num handles: 1 Handle: 11 Count: 2 > ACL Data RX: Handle 11 flags 0x02 dlen 16 > #1795 [hci0] 4834.239503 L2CAP: Configure Request (0x04) ident 5 len 8 Destination CID: 65 Flags: 0x0000 Option: Maximum Transmission Unit (0x01) [mandatory] MTU: 48 < ACL Data TX: Handle 11 flags 0x00 dlen 18 #1796 [hci0] 4834.239515 L2CAP: Configure Response (0x05) ident 5 len 10 Source CID: 65 Flags: 0x0000 Result: Success (0x0000) Option: Maximum Transmission Unit (0x01) [mandatory] MTU: 48 > HCI Event: Number of Completed Packets (0x13) plen 5 > #1797 [hci0] 4834.240399 Num handles: 1 Handle: 11 Count: 2 > ACL Data RX: Handle 11 flags 0x02 dlen 14 > #1798 [hci0] 4834.240755 L2CAP: Configure Response (0x05) ident 4 len 6 Source CID: 65 Flags: 0x0000 Result: Success (0x0000) < ACL Data TX: Handle 11 flags 0x00 dlen 6 #1799 [hci0] 4834.244190 Channel: 64 len 2 [PSM 17 mode Basic (0x00)] {chan 2} 41 03 A. > HCI Event: Number of Completed Packets (0x13) plen 5 > #1800 [hci0] 4834.247364 Num handles: 1 Handle: 11 Count: 2 > ACL Data RX: Handle 11 flags 0x02 dlen 25 > #1801 [hci0] 4834.280740 Channel: 65 len 21 [PSM 19 mode Basic (0x00)] {chan 1} a1 11 ff 06 00 32 14 00 00 00 00 00 00 00 00 00 .....2.......... 00 00 00 00 00 ..... > ACL Data RX: Handle 11 flags 0x02 dlen 25 > #1802 [hci0] 4834.281984 Channel: 65 len 21 [PSM 19 mode Basic (0x00)] {chan 1} a1 11 ff 0c 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 ..... > HCI Event: Mode Change (0x14) plen 6 > #1803 [hci0] 4834.284361 Status: Success (0x00) Handle: 11 Mode: Sniff (0x02) Interval: 12.500 msec (0x0014) > ACL Data RX: Handle 11 flags 0x02 dlen 7 > #1804 [hci0] 4834.295630 Channel: 64 len 3 [PSM 17 mode Basic (0x00)] {chan 0} a1 03 08 ... < ACL Data TX: Handle 11 flags 0x00 dlen 6 #1805 [hci0] 4834.295696 Channel: 64 len 2 [PSM 17 mode Basic (0x00)] {chan 2} 41 03 A. < HCI Command: Exit Sniff Mode (0x02|0x0004) plen 2 #1806 [hci0] 4834.295706 Handle: 11 > HCI Event: Command Status (0x0f) plen 4 > #1807 [hci0] 4834.297361 Exit Sniff Mode (0x02|0x0004) ncmd 1 Status: Success (0x00) < ACL Data TX: Handle 11 flags 0x00 dlen 7 #1808 [hci0] 4834.299140 Channel: 65 len 3 [PSM 19 mode Basic (0x00)] {chan 3} a2 01 01 ... > HCI Event: Mode Change (0x14) plen 6 > #1809 [hci0] 4834.313237 Status: Success (0x00) Handle: 11 Mode: Active (0x00) Interval: 0.000 msec (0x0000) > ACL Data RX: Handle 11 flags 0x02 dlen 7 > #1810 [hci0] 4834.313246 Channel: 65 len 3 [PSM 19 mode Basic (0x00)] {chan 1} a1 03 08 ... > HCI Event: Number of Completed Packets (0x13) plen 5 > #1811 [hci0] 4834.316365 Num handles: 1 Handle: 11 Count: 2 > ACL Data RX: Handle 11 flags 0x02 dlen 7 > #1812 [hci0] 4834.316982 Channel: 64 len 3 [PSM 17 mode Basic (0x00)] {chan 0} a1 03 08 ... < ACL Data TX: Handle 11 flags 0x00 dlen 6 #1813 [hci0] 4834.317032 Channel: 64 len 2 [PSM 17 mode Basic (0x00)] {chan 2} 41 03 A. > ACL Data RX: Handle 11 flags 0x02 dlen 25 > #1814 [hci0] 4834.318235 Channel: 65 len 21 [PSM 19 mode Basic (0x00)] {chan 1} a1 11 ff 0c 00 01 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 ..... > ACL Data RX: Handle 11 flags 0x02 dlen 7 > #1815 [hci0] 4834.321988 Channel: 64 len 3 [PSM 17 mode Basic (0x00)] {chan 0} a1 03 08 ... < ACL Data TX: Handle 11 flags 0x00 dlen 6 #1816 [hci0] 4834.322242 Channel: 64 len 2 [PSM 17 mode Basic (0x00)] {chan 2} 41 03 A. > HCI Event: Number of Completed Packets (0x13) plen 5 > #1817 [hci0] 4834.326363 Num handles: 1 Handle: 11 Count: 2 > ACL Data RX: Handle 11 flags 0x02 dlen 7 > #1818 [hci0] 4834.326983 Channel: 64 len 3 [PSM 17 mode Basic (0x00)] {chan 0} a1 03 08 ... < ACL Data TX: Handle 11 flags 0x00 dlen 6 #1819 [hci0] 4834.327599 Channel: 64 len 2 [PSM 17 mode Basic (0x00)] {chan 2} 41 03 A. > ACL Data RX: Handle 11 flags 0x02 dlen 7 > #1820 [hci0] 4834.331988 Channel: 64 len 3 [PSM 17 mode Basic (0x00)] {chan 0} a1 03 08 ... < ACL Data TX: Handle 11 flags 0x00 dlen 6 #1821 [hci0] 4834.332044 Channel: 64 len 2 [PSM 17 mode Basic (0x00)] {chan 2} 41 03 A. > HCI Event: Number of Completed Packets (0x13) plen 5 > #1822 [hci0] 4834.336366 Num handles: 1 Handle: 11 Count: 2 > ACL Data RX: Handle 11 flags 0x02 dlen 7 > #1823 [hci0] 4834.336986 Channel: 64 len 3 [PSM 17 mode Basic (0x00)] {chan 0} a1 03 08 ... < ACL Data TX: Handle 11 flags 0x00 dlen 6 #1824 [hci0] 4834.337058 Channel: 64 len 2 [PSM 17 mode Basic (0x00)] {chan 2} 41 03 A. > ACL Data RX: Handle 11 flags 0x02 dlen 7 > #1825 [hci0] 4834.340754 Channel: 64 len 3 [PSM 17 mode Basic (0x00)] {chan 0} a1 03 08 ... < ACL Data TX: Handle 11 flags 0x00 dlen 6 #1826 [hci0] 4834.346481 Channel: 64 len 2 [PSM 17 mode Basic (0x00)] {chan 2} 41 03 A. > HCI Event: Number of Completed Packets (0x13) plen 5 > #1827 [hci0] 4834.350386 Num handles: 1 Handle: 11 Count: 2 > ACL Data RX: Handle 11 flags 0x02 dlen 7 > #1828 [hci0] 4834.350751 Channel: 64 len 3 [PSM 17 mode Basic (0x00)] {chan 0} a1 03 08 ... < ACL Data TX: Handle 11 flags 0x00 dlen 6 #1829 [hci0] 4834.350878 Channel: 64 len 2 [PSM 17 mode Basic (0x00)] {chan 2} 41 03 A. > ACL Data RX: Handle 11 flags 0x02 dlen 7 > #1830 [hci0] 4834.354489 Channel: 64 len 3 [PSM 17 mode Basic (0x00)] {chan 0} a1 03 08 ... < ACL Data TX: Handle 11 flags 0x00 dlen 6 #1831 [hci0] 4834.370245 Channel: 64 len 2 [PSM 17 mode Basic (0x00)] {chan 2} 41 03 A. > HCI Event: Number of Completed Packets (0x13) plen 5 > #1832 [hci0] 4834.375365 Num handles: 1 Handle: 11 Count: 2 > ACL Data RX: Handle 11 flags 0x02 dlen 7 > #1833 [hci0] 4834.375734 Channel: 64 len 3 [PSM 17 mode Basic (0x00)] {chan 0} a1 03 08 ... < ACL Data TX: Handle 11 flags 0x00 dlen 6 #1834 [hci0] 4834.376266 Channel: 64 len 2 [PSM 17 mode Basic (0x00)] {chan 2} 41 03 A. > ACL Data RX: Handle 11 flags 0x02 dlen 7 > #1835 [hci0] 4834.381990 Channel: 64 len 3 [PSM 17 mode Basic (0x00)] {chan 0} a1 03 08 ... < ACL Data TX: Handle 11 flags 0x00 dlen 6 #1836 [hci0] 4834.383343 Channel: 64 len 2 [PSM 17 mode Basic (0x00)] {chan 2} 41 03 A. > HCI Event: Number of Completed Packets (0x13) plen 5 > #1837 [hci0] 4834.386364 Num handles: 1 Handle: 11 Count: 2 > ACL Data RX: Handle 11 flags 0x02 dlen 7 > #1838 [hci0] 4834.386985 Channel: 64 len 3 [PSM 17 mode Basic (0x00)] {chan 0} a1 03 08 ... < ACL Data TX: Handle 11 flags 0x00 dlen 6 #1839 [hci0] 4834.387088 Channel: 64 len 2 [PSM 17 mode Basic (0x00)] {chan 2} 41 03 A. > ACL Data RX: Handle 11 flags 0x02 dlen 7 > #1840 [hci0] 4834.391988 Channel: 64 len 3 [PSM 17 mode Basic (0x00)] {chan 0} a1 03 08 ... > HCI Event: Number of Completed Packets (0x13) plen 5 > #1841 [hci0] 4834.578389 Num handles: 1 Handle: 11 Count: 1 > HCI Event: Mode Change (0x14) plen 6 > #1842 [hci0] 4835.317374 Status: Success (0x00) Handle: 11 Mode: Sniff (0x02) Interval: 12.500 msec (0x0014)
I did experimentation on this problem all afternoon, and I've come to the conclusion that the problem is with the keyboard. This keyboard has three buttons on it that allow it to be paired with three different devices. Presumably it has three MAC addresses (if that's what they're called with bluetooth). You press and hold one of the three buttons to enable pairing for that MAC address. It's a great feature, but I think between pairing and unpairing and switching between its three virtual personalities (or MAC addresses), something got messed up. Looking at the btmon traces, I saw cases where the keyboard appeared to be speaking gibberish during pairing, with btmon reporting lots of "unknown" interpretations of capability structures. I was using MAC #1 for my windows laptop, MAC #2 for my android tablet, and MAC #3 for the linux box with the Broadcom USB BT adapter. Anyway, I turned off the Windows laptop, unpaired the keyboard from the Android tablet and then turned off bluetooth entirely on the android tablet. In that state, I was able to pair and unpair the keyboard using to the Linux box over and over with no problems. Then I re-enabled and repaired the keyboard on MAC #2 with the android tablet, and now all is well, and I can switch back and forth between them. I'm closing this bug.