我有一个新的破坏者形象:
Linux 立体声 5.10.17+ #1414 Fri Apr 30 13:16:27 BST 2021 armv6l GNU/Linux
我确实将 bluez 更新为bluez 5.52
. 已经很有趣的是,我在我的 中有以下条目/var/log/syslog
:
6 月 30 日 23:15:09 stereopida bluetoothd[557]:蓝牙守护进程 5.50
这似乎表明之前安装的 5.50 版本仍然存在。
我在其他机器上做了同样的设置,然后我可以让它工作,但这次似乎有问题。
现在使用 bluetoothctl 我可以看到我的设备并对其进行配对,但连接会立即断开:
[bluetooth]# trust 84:EB:18:0C:92:0F
Changing 84:EB:18:0C:92:0F trust succeeded
[bluetooth]# pair 84:EB:18:0C:92:0F
Attempting to pair with 84:EB:18:0C:92:0F
[CHG] Device 84:EB:18:0C:92:0F Connected: yes
Failed to pair: org.bluez.Error.AuthenticationFailed
[CHG] Device 84:EB:18:0C:92:0F Connected: no
[bluetooth]# connect 84:EB:18:0C:92:0F
Attempting to connect to 84:EB:18:0C:92:0F
[CHG] Device 84:EB:18:0C:92:0F Connected: yes
Failed to connect: org.bluez.Error.Failed
[CHG] Device 84:EB:18:0C:92:0F Connected: no
当我检查日志时,我确实看到以下内容:
Jun 30 23:15:53 stereopida bluetoothd[567]: src/device.c:bonding_request_new() Requesting bonding for 84:EB:18:0C:92:0F
Jun 30 23:15:53 stereopida bluetoothd[567]: src/agent.c:agent_ref() 0x7b62b0: ref=3
Jun 30 23:15:53 stereopida bluetoothd[567]: src/agent.c:agent_unref() 0x7b62b0: ref=2
Jun 30 23:15:53 stereopida bluetoothd[567]: src/adapter.c:suspend_discovery()
Jun 30 23:15:53 stereopida bluetoothd[567]: src/adapter.c:adapter_bonding_attempt() hci0 bdaddr 84:EB:18:0C:92:0F type 1 io_cap 0x04
Jun 30 23:15:55 stereopida bluetoothd[567]: src/adapter.c:connected_callback() hci0 device 84:EB:18:0C:92:0F connected eir_len 13
Jun 30 23:15:55 stereopida bluetoothd[567]: src/adapter.c:pair_device_complete() Failed (0x03)
Jun 30 23:15:55 stereopida bluetoothd[567]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr 84:EB:18:0C:92:0F type 1 status 0x3
Jun 30 23:15:55 stereopida bluetoothd[567]: src/device.c:device_bonding_complete() bonding 0x7ba428 status 0x03
Jun 30 23:15:55 stereopida bluetoothd[567]: src/device.c:device_bonding_failed() status 3
Jun 30 23:15:55 stereopida bluetoothd[567]: src/agent.c:agent_unref() 0x7b62b0: ref=1
Jun 30 23:15:55 stereopida bluetoothd[567]: src/adapter.c:resume_discovery()
Jun 30 23:15:55 stereopida bluetoothd[567]: src/adapter.c:dev_disconnected() Device 84:EB:18:0C:92:0F disconnected, reason 0
Jun 30 23:15:55 stereopida bluetoothd[567]: src/adapter.c:adapter_remove_connection()
Jun 30 23:15:55 stereopida bluetoothd[567]: plugins/policy.c:disconnect_cb() reason 0
Jun 30 23:15:55 stereopida bluetoothd[567]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr 84:EB:18:0C:92:0F type 1 status 0xe
Jun 30 23:15:55 stereopida bluetoothd[567]: src/device.c:device_bonding_complete() bonding (nil) status 0x0e
Jun 30 23:15:55 stereopida bluetoothd[567]: src/device.c:device_bonding_failed() status 14
Jun 30 23:15:55 stereopida bluetoothd[567]: src/adapter.c:resume_discovery()
Jun 30 23:16:04 stereopida bluetoothd[567]: src/device.c:device_connect_le() Connection attempt to: 84:EB:18:0C:92:0F
Jun 30 23:16:08 stereopida systemd[1]: systemd-hostnamed.service: Succeeded.
Jun 30 23:16:09 stereopida bluetoothd[567]: src/adapter.c:connected_callback() hci0 device 84:EB:18:0C:92:0F connected eir_len 13
Jun 30 23:16:09 stereopida bluetoothd[567]: src/device.c:att_connect_cb() connect error: Function not implemented (38)
Jun 30 23:16:09 stereopida bluetoothd[567]: src/adapter.c:dev_disconnected() Device 84:EB:18:0C:92:0F disconnected, reason 0
Jun 30 23:16:09 stereopida bluetoothd[567]: src/adapter.c:adapter_remove_connection()
Jun 30 23:16:09 stereopida bluetoothd[567]: plugins/policy.c:disconnect_cb() reason 0
Jun 30 23:16:09 stereopida bluetoothd[567]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr 84:EB:18:0C:92:0F type 1 status 0xe
Jun 30 23:16:09 stereopida bluetoothd[567]: src/device.c:device_bonding_complete() bonding (nil) status 0x0e
Jun 30 23:16:09 stereopida bluetoothd[567]: src/device.c:device_bonding_failed() status 14
Jun 30 23:16:09 stereopida bluetoothd[567]: src/adapter.c:resume_discovery()
Jun 30 23:16:15 stereopida bluetoothd[567]: src/agent.c:agent_disconnect() Agent :1.20 disconnected
Jun 30 23:16:15 stereopida bluetoothd[567]: src/agent.c:agent_destroy() agent :1.20
Jun 30 23:16:15 stereopida bluetoothd[567]: src/agent.c:agent_unref() 0x7b62b0: ref=0
在我的/etc/bluetooth/main.conf
文件中,我确实做了以下更改:
DiscoverableTimeout = 0
PairableTimeout = 0
ControllerMode = le
Privacy = off
ExecStart
我的 bluetooth.service 部分确实更改为:
ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=sap -E
加特工具
sudo gatttool -b 84:EB:18:0C:92:0F --interactive
[84:EB:18:0C:92:0F][LE]> connect
Attempting to connect to 84:EB:18:0C:92:0F
Error: connect error: Function not implemented (38)
比特币
当我使用 Gattool 连接时,这是sudo btmon
sudo btmon
Bluetooth monitor ver 5.52
= Note: Linux version 5.10.17+ (armv6l) 0.137356
= Note: Bluetooth subsystem version 2.22 0.137373
= New Index: B8:27:EB:BD:CA:1B (Primary,UART,hci0) [hci0] 0.137378
= Open Index: B8:27:EB:BD:CA:1B [hci0] 0.137386
= Index Info: B8:27:EB:BD:CA:1B (Broadcom Corporation) [hci0] 0.137390
@ MGMT Open: bluetoothd (privileged) version 1.18 {0x0001} 0.137396
@ MGMT Open: btmon (privileged) version 1.18 {0x0002} 0.139895
< HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7 #1 [hci0] 9.320332
Type: Passive (0x00)
Interval: 60.000 msec (0x0060)
Window: 60.000 msec (0x0060)
Own address type: Public (0x00)
Filter policy: Ignore not in white list (0x01)
> HCI Event: Command Complete (0x0e) plen 4 #2 [hci0] 9.321695
LE Set Scan Parameters (0x08|0x000b) ncmd 1
Status: Success (0x00)
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2 #3 [hci0] 9.321835
Scanning: Enabled (0x01)
Filter duplicates: Enabled (0x01)
> HCI Event: Command Complete (0x0e) plen 4 #4 [hci0] 9.324626
LE Set Scan Enable (0x08|0x000c) ncmd 1
Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 25 #5 [hci0] 11.847196
LE Advertising Report (0x02)
Num reports: 1
Event type: Connectable undirected - ADV_IND (0x00)
Address type: Public (0x00)
Address: 84:EB:18:0C:92:0F (Texas Instruments)
Data length: 13
Flags: 0x05
LE Limited Discoverable Mode
BR/EDR Not Supported
Appearance: Human Interface Device (0x03c0)
16-bit Service UUIDs (partial): 2 entries
Human Interface Device (0x1812)
Battery Service (0x180f)
RSSI: -72 dBm (0xb8)
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2 #6 [hci0] 11.847369
Scanning: Disabled (0x00)
Filter duplicates: Disabled (0x00)
> HCI Event: Command Complete (0x0e) plen 4 #7 [hci0] 11.851192
LE Set Scan Enable (0x08|0x000c) ncmd 1
Status: Success (0x00)
< HCI Command: LE Create Connection (0x08|0x000d) plen 25 #8 [hci0] 11.851310
Scan interval: 60.000 msec (0x0060)
Scan window: 60.000 msec (0x0060)
Filter policy: White list is not used (0x00)
Peer address type: Public (0x00)
Peer address: 84:EB:18:0C:92:0F (Texas Instruments)
Own address type: Public (0x00)
Min connection interval: 30.00 msec (0x0018)
Max connection interval: 50.00 msec (0x0028)
Connection latency: 0 (0x0000)
Supervision timeout: 420 msec (0x002a)
Min connection length: 0.000 msec (0x0000)
Max connection length: 0.000 msec (0x0000)
> HCI Event: Command Status (0x0f) plen 4 #9 [hci0] 11.852722
LE Create Connection (0x08|0x000d) ncmd 1
Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 19 #10 [hci0] 11.869896
LE Connection Complete (0x01)
Status: Success (0x00)
Handle: 64
Role: Master (0x00)
Peer address type: Public (0x00)
Peer address: 84:EB:18:0C:92:0F (Texas Instruments)
Connection interval: 48.75 msec (0x0027)
Connection latency: 0 (0x0000)
Supervision timeout: 420 msec (0x002a)
Master clock accuracy: 0x00
@ MGMT Event: Device Connected (0x000b) plen 26 {0x0002} [hci0] 11.869988
LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
Flags: 0x00000000
Data length: 13
Flags: 0x05
LE Limited Discoverable Mode
BR/EDR Not Supported
Appearance: Human Interface Device (0x03c0)
16-bit Service UUIDs (partial): 2 entries
Human Interface Device (0x1812)
Battery Service (0x180f)
@ MGMT Event: Device Connected (0x000b) plen 26 {0x0001} [hci0] 11.869988
LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
Flags: 0x00000000
Data length: 13
Flags: 0x05
LE Limited Discoverable Mode
BR/EDR Not Supported
Appearance: Human Interface Device (0x03c0)
16-bit Service UUIDs (partial): 2 entries
Human Interface Device (0x1812)
Battery Service (0x180f)
< HCI Command: LE Read Remote Used Features (0x08|0x0016) plen 2 #11 [hci0] 11.870350
Handle: 64
> HCI Event: Command Status (0x0f) plen 4 #12 [hci0] 11.877612
LE Read Remote Used Features (0x08|0x0016) ncmd 1
Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 12 #13 [hci0] 12.210580
LE Read Remote Used Features (0x04)
Status: Connection Failed to be Established (0x3e)
Handle: 64
Features: 0x1f 0x00 0x00 0x08 0x00 0x00 0x00 0x00
LE Encryption
Connection Parameter Request Procedure
Extended Reject Indication
Slave-initiated Features Exchange
LE Ping
Remote Public Key Validation
< HCI Command: Disconnect (0x01|0x0006) plen 3 #14 [hci0] 12.210756
Handle: 64
Reason: Remote User Terminated Connection (0x13)
> HCI Event: Disconnect Complete (0x05) plen 4 #15 [hci0] 12.214327
Status: Success (0x00)
Handle: 64
Reason: Connection Failed to be Established (0x3e)
@ MGMT Event: Device Disconnected (0x000c) plen 8 {0x0002} [hci0] 12.214426
LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
Reason: Unspecified (0x00)
@ MGMT Event: Device Disconnected (0x000c) plen 8 {0x0001} [hci0] 12.214426
LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
Reason: Unspecified (0x00)
> HCI Event: Command Status (0x0f) plen 4 #16 [hci0] 12.214351
Disconnect (0x01|0x0006) ncmd 1
Status: Invalid HCI Command Parameters (0x12)
更新 2:使用 DBUS
我尝试使用dbus-python-script进行连接,但出现错误:
创建设备失败:org.bluez.Error.AuthenticationFailed
这是该btmon
尝试的输出:
$ sudo btmon
Bluetooth monitor ver 5.52
= Note: Linux version 5.10.17+ (armv6l) 0.495323
= Note: Bluetooth subsystem version 2.22 0.495341
= New Index: B8:27:EB:BD:CA:1B (Primary,UART,hci0) [hci0] 0.495350
= Open Index: B8:27:EB:BD:CA:1B [hci0] 0.495355
= Index Info: B8:27:EB:BD:CA:1B (Broadcom Corporation) [hci0] 0.495361
@ MGMT Open: bluetoothd (privileged) version 1.18 {0x0001} 0.495370
@ MGMT Open: btmon (privileged) version 1.18 {0x0002} 0.495742
@ MGMT Command: Pair Device (0x0019) plen 8 {0x0001} [hci0] 7.479710
LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
Capability: KeyboardDisplay (0x04)
< HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7 #1 [hci0] 7.482368
Type: Passive (0x00)
Interval: 60.000 msec (0x0060)
Window: 60.000 msec (0x0060)
Own address type: Public (0x00)
Filter policy: Ignore not in white list (0x01)
> HCI Event: Command Complete (0x0e) plen 4 #2 [hci0] 7.482814
LE Set Scan Parameters (0x08|0x000b) ncmd 1
Status: Success (0x00)
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2 #3 [hci0] 7.482909
Scanning: Enabled (0x01)
Filter duplicates: Enabled (0x01)
> HCI Event: Command Complete (0x0e) plen 4 #4 [hci0] 7.483658
LE Set Scan Enable (0x08|0x000c) ncmd 1
Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 25 #5 [hci0] 7.501439
LE Advertising Report (0x02)
Num reports: 1
Event type: Connectable undirected - ADV_IND (0x00)
Address type: Public (0x00)
Address: 84:EB:18:0C:92:0F (Texas Instruments)
Data length: 13
Flags: 0x05
LE Limited Discoverable Mode
BR/EDR Not Supported
Appearance: Human Interface Device (0x03c0)
16-bit Service UUIDs (partial): 2 entries
Human Interface Device (0x1812)
Battery Service (0x180f)
RSSI: -55 dBm (0xc9)
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2 #6 [hci0] 7.501585
Scanning: Disabled (0x00)
Filter duplicates: Disabled (0x00)
> HCI Event: Command Complete (0x0e) plen 4 #7 [hci0] 7.505073
LE Set Scan Enable (0x08|0x000c) ncmd 1
Status: Success (0x00)
< HCI Command: LE Create Connection (0x08|0x000d) plen 25 #8 [hci0] 7.505187
Scan interval: 60.000 msec (0x0060)
Scan window: 60.000 msec (0x0060)
Filter policy: White list is not used (0x00)
Peer address type: Public (0x00)
Peer address: 84:EB:18:0C:92:0F (Texas Instruments)
Own address type: Public (0x00)
Min connection interval: 30.00 msec (0x0018)
Max connection interval: 50.00 msec (0x0028)
Connection latency: 0 (0x0000)
Supervision timeout: 420 msec (0x002a)
Min connection length: 0.000 msec (0x0000)
Max connection length: 0.000 msec (0x0000)
> HCI Event: Command Status (0x0f) plen 4 #9 [hci0] 7.505940
LE Create Connection (0x08|0x000d) ncmd 1
Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 19 #10 [hci0] 7.525258
LE Connection Complete (0x01)
Status: Success (0x00)
Handle: 64
Role: Master (0x00)
Peer address type: Public (0x00)
Peer address: 84:EB:18:0C:92:0F (Texas Instruments)
Connection interval: 48.75 msec (0x0027)
Connection latency: 0 (0x0000)
Supervision timeout: 420 msec (0x002a)
Master clock accuracy: 0x00
@ MGMT Event: Device Connected (0x000b) plen 26 {0x0002} [hci0] 7.525347
LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
Flags: 0x00000000
Data length: 13
Flags: 0x05
LE Limited Discoverable Mode
BR/EDR Not Supported
Appearance: Human Interface Device (0x03c0)
16-bit Service UUIDs (partial): 2 entries
Human Interface Device (0x1812)
Battery Service (0x180f)
@ MGMT Event: Device Connected (0x000b) plen 26 {0x0001} [hci0] 7.525347
LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
Flags: 0x00000000
Data length: 13
Flags: 0x05
LE Limited Discoverable Mode
BR/EDR Not Supported
Appearance: Human Interface Device (0x03c0)
16-bit Service UUIDs (partial): 2 entries
Human Interface Device (0x1812)
Battery Service (0x180f)
< HCI Command: LE Read Remote Used Features (0x08|0x0016) plen 2 #11 [hci0] 7.525694
Handle: 64
> HCI Event: Command Status (0x0f) plen 4 #12 [hci0] 7.527893
LE Read Remote Used Features (0x08|0x0016) ncmd 1
Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 12 #13 [hci0] 7.837849
LE Read Remote Used Features (0x04)
Status: Connection Failed to be Established (0x3e)
Handle: 64
Features: 0x1f 0x00 0x00 0x08 0x00 0x00 0x00 0x00
LE Encryption
Connection Parameter Request Procedure
Extended Reject Indication
Slave-initiated Features Exchange
LE Ping
Remote Public Key Validation
@ MGMT Event: Command Complete (0x0001) plen 10 {0x0001} [hci0] 7.837949
Pair Device (0x0019) plen 7
Status: Failed (0x03)
LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
> HCI Event: Disconnect Complete (0x05) plen 4 #14 [hci0] 7.843837
Status: Success (0x00)
Handle: 64
Reason: Connection Failed to be Established (0x3e)
@ MGMT Event: Device Disconnected (0x000c) plen 8 {0x0002} [hci0] 7.843928
LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
Reason: Unspecified (0x00)
@ MGMT Event: Device Disconnected (0x000c) plen 8 {0x0001} [hci0] 7.843928
LE Address: 84:EB:18:0C:92:0F (Texas Instruments)
Reason: Unspecified (0x00)
hcidump
sudo hcidump
HCI sniffer - Bluetooth packet analyzer ver 5.50
device: hci0 snap_len: 1500 filter: 0xffffffff
< HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7
type 0x00 (passive)
interval 60.000ms window 60.000ms
own address: 0x00 (Public) policy: white list only
> HCI Event: Command Complete (0x0e) plen 4
LE Set Scan Parameters (0x08|0x000b) ncmd 1
status 0x00
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2
value 0x01 (scanning enabled)
filter duplicates 0x01 (enabled)
> HCI Event: Command Complete (0x0e) plen 4
LE Set Scan Enable (0x08|0x000c) ncmd 1
status 0x00
> HCI Event: LE Meta Event (0x3e) plen 25
LE Advertising Report
ADV_IND - Connectable undirected advertising (0)
bdaddr 84:EB:18:0C:92:0F (Public)
Flags: 0x05
Unknown type 0x19 with 2 bytes data
Shortened service classes: 0x1812 0x180f
RSSI: -74
< HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2
value 0x00 (scanning disabled)
filter duplicates 0x00 (disabled)
> HCI Event: Command Complete (0x0e) plen 4
LE Set Scan Enable (0x08|0x000c) ncmd 1
status 0x00
< HCI Command: LE Create Connection (0x08|0x000d) plen 25
bdaddr 84:EB:18:0C:92:0F type 0
interval 96 window 96 initiator_filter 0
own_bdaddr_type 0 min_interval 24 max_interval 40
latency 0 supervision_to 42 min_ce 0 max_ce 0
> HCI Event: Command Status (0x0f) plen 4
LE Create Connection (0x08|0x000d) status 0x00 ncmd 1
> HCI Event: LE Meta Event (0x3e) plen 19
LE Connection Complete
status 0x00 handle 64, role master
bdaddr 84:EB:18:0C:92:0F (Public)
< HCI Command: LE Read Remote Used Features (0x08|0x0016) plen 2
> HCI Event: Command Status (0x0f) plen 4
LE Read Remote Used Features (0x08|0x0016) status 0x00 ncmd 1
> HCI Event: LE Meta Event (0x3e) plen 12
LE Read Remote Used Features Complete
status 0x3e handle 64
Error: Connection Failed to be Established
< HCI Command: Disconnect (0x01|0x0006) plen 3
handle 64 reason 0x13
Reason: Remote User Terminated Connection
> HCI Event: Disconn Complete (0x05) plen 4
status 0x00 handle 64 reason 0x3e
Reason: Connection Failed to be Established
> HCI Event: Command Status (0x0f) plen 4
Disconnect (0x01|0x0006) status 0x12 ncmd 1
Error: Invalid HCI Command Parameters