gatttool을 사용하지 않고 Linux에서 BLE 장치를 페어링하는 방법은 무엇입니까?

gatttool을 사용하지 않고 Linux에서 BLE 장치를 페어링하는 방법은 무엇입니까?

일부 BLE(Bluetooth Low Energy) 장치는 Linux에서 페어링하기 어렵습니다. 내가 찾을 수 있는 모든 정보(포함)이것질문) 제안은 gatttool다음과 같이 사용해야 합니다.

sudo gatttool -t random -b E7:2D:83:06:AA:AB -I
[E7:2D:83:06:AA:AB][LE]> connect

불행하게도 gatttool더 이상 사용되지 않으며 더 이상 여러 Linux 배포판에 배포되지 않습니다.

이것아치리눅스 문서btgatt-client교체해야 한다고 말합니다 gatttool. 다음을 시도했지만 성공하지 못했습니다.

$ btgatt-client -d F9:B9:1D:A5:73:F4 -t random -v
btgatt-client: Opening L2CAP LE connection on ATT channel:
     src: 00:00:00:00:00:00
    dest: F9:B9:1D:A5:73:F4
Connecting to device... Done
[GATT client]# att: (chan 0x5623a9b9d6e0) ATT op 0x08
[GATT client]# att: < 08 01 00 ff ff 3a 2b                             .....:+         
[GATT client]# att: Channel 0x5623a9b9d6e0 disconnected: Software caused connection abort
[GATT client]# gatt: Primary service discovery failed. ATT ECODE: 0x00
[GATT client]# gatt: Failed to initialize gatt-client
[GATT client]# GATT discovery procedures failed - error code: 0x00
[GATT client]# Device disconnected: Software caused connection abort

불행히도 문서가 부족하여 진행 방법을 모르겠습니다.

답변1

원래 질문에서 언급했듯이 bluetoothctl페어링에 사용해야 합니다. 또한 btmgmt사전에 이를 사용하여 장치를 올바르게 설정할 수도 있습니다. Linux에서 장치를 페어링할 때 일반적으로 따르는 단계는 다음과 같습니다.

  1. 검색, 연결 및 페어링이 가능하도록 장치를 구성하세요.
    sudo btmgmt power off
    sudo btmgmt discov on
    sudo btmgmt connectable on
    sudo btmgmt pairable on
    sudo btmgmt power on
    
  2. 디지털 페어링을 허용하도록 장치를 설정하세요.
    bluetoothctl --agent KeyboardDisplay
    
  3. 그런 다음 장치가 주변 장치인 경우 원격 장치가 페어링 요청을 보낼 때까지 기다려야 합니다.

장치가 중앙 장치인 경우 다음 명령을 사용하여 페어링을 시작할 수 있습니다.

pair 00:11:22:33:44:55

00:11:22:33:44:55페어링하려는 장치의 주소는 어디에 있습니까( scan on/ 명령을 사용하여 scan off찾을 수 있음).

귀하의 질문에 답변하는 데 도움이 되는 추가 정보가 포함된 링크는 다음과 같습니다.

관련 정보