Raspberry Pi에 주변 Bluetooth 장치 나열

Raspberry Pi에 주변 Bluetooth 장치 나열

Raspberry Pi의 범위 내에 있는 모든 Bluetooth 장치를 지속적으로 나열해 보십시오. 트래픽을 모니터링할 필요가 없으며 장치 목록만 나열하면 됩니다. 광고 패킷(프레임?)에서 해당 정보를 얻을 수 있기를 바랍니다.

Ubuntu 18.04에서 몇 가지 실험을 수행했고 Wireshark에서 이러한 패킷을 볼 수 있었지만 시스템이 Bluetooth 장치를 적극적으로 검색하기 전까지는 볼 수 없었습니다. 이러한 광고를 수동적으로 수신할 수 있는 방법이 있습니까, 아니면 시스템이 지속적으로 광고를 검사하도록 할 수 있습니까? 쉘 스크립트에서 트리거할 수 있기를 원합니다.

이상적으로는 적절한 필터를 사용하여 tshark를 실행하고 해당 존재를 알리는 모든 장치를 포함하여 출력을 얻는 쉘 스크립트가 있습니다. 어떤 이유로 작동하지 않으면 이를 수행하기 위한 사용자 정의 프로그램을 작성하겠습니다.

장치를 검색하기 전에 시스템이 블루투스로부터 아무 것도 수신하지 못하는 이유와 스크립트에서 이 모드로 들어갈 수 있는 방법이 있는지 잘 모르겠습니다. 거기에서 나는 tshark가 내가 필요한 것을 할 수 있는지 아니면 프로그램이어야 하는지에 대한 질문을 던집니다.

지금까지 찾은 모든 Bluetooth 명령을 사용하면 GUI를 사용하여 스캔을 시작할 수 있습니다. 더 직접적으로 제어하는 ​​방법을 알려주는 내용은 본 적이 없습니다.

답변1

글쎄, 이것이 효과가 있는 것 같은 내가 생각해낸 것입니다:

bluetoothctl scan on

sudo tshark -i bluetooth1 -Y "bthci_evt.le_meta_subevent == 0x2" -T fields -e bthci_evt.bd_addr -e bthci_evt.rssi

이를 통해 MAC 주소와 신호 강도를 알 수 있습니다. 그러나 파이에 내장된 블루투스를 사용할 때 잠시 후 작동이 멈춘다는 것을 발견했습니다. 서비스를 다시 시작하고 잠시 동안 다시 실행할 수 있지만 매번 매우 빠르게 종료됩니다.

그런데 저렴한 USB 블루투스 어댑터를 사용하면 영원히 돌아가는 것 같습니다. 그래서 bluetooth0 대신 bluetooth1을 스니핑하고 있습니다. 이것이 좋은 영구적인 해결책인지는 시간이 말해주겠지만, 지금까지는 효과가 있는 것 같습니다.

답변2

나는 노력했다털이 많은Raspberry Pi 4B에서 솔루션을 찾았지만 들어보니 bluetooth0안정성 문제가 보이지 않아서 내장 블루투스 모듈이 잘 작동하고 외부 USB 블루투스 모듈이 필요하지 않습니다.

그러나 답변에 지정된 필터에 따르면 모든 블루투스 장치 목록을 가져올 수 없으며 BLE 장치만 표시할 수 있습니다.

이 명령을 사용하면 모든 장치(BLE 및 비BLE) 목록을 가져오고 해당 장치의 MAC 주소, RSSI 및 이름을 표시할 수 있습니다.

sudo tshark -i bluetooth0 -Y "(bthci_evt.code == 0x2f) || (bthci_evt.le_meta_subevent == 0x2 && btcommon.eir_ad.entry.device_name != '')" -T fields -e bthci_evt.bd_addr -e bthci_evt.rssi -e btcommon.eir_ad.entry.device_name

출력은 다음과 같습니다.

d1:6e:XX:XX:XX:XX   -65 Mi Smart Band 4
8c:5a:XX:XX:XX:XX   -43 Mi Soundbar
c5:9d:XX:XX:XX:XX   -69 ENDURE
d1:6e:XX:XX:XX:XX   -61 Mi Smart Band 4
8c:5a:XX:XX:XX:XX   -47 Mi Soundbar

-e btcommon.cod.class_of_device -e btcommon.cod.minor_device_classBLE가 아닌 장치에 대한 추가 정보를 표시하기 위해 명령 끝에 추가되었습니다 .

추가 리소스:

  1. Wireshark - Bluetooth HCI 활동
  2. 인간-컴퓨터 상호 작용 인터페이스
  3. 라즈베리 파이에 Wireshark 설치

관련 정보