PAN Bluetooth 액세스 포인트에 연결할 수 없습니다

PAN Bluetooth 액세스 포인트에 연결할 수 없습니다

현재 Bluetooth를 통해 두 보드 사이에 PAN 연결을 구현하려고 합니다.

첫 번째 보드는 Raspberry Pi Zero이고 두 번째 보드는 Atmel Sama5d2를 기반으로 한 맞춤형 보드입니다.
마더보드는 각각 Linux 4.9.75+ 및 Linux 4.9.30을 실행하고 BlueZ v5.43 및 BlueZ v5.46을 사용합니다.

두 보드를 모두 사용하여 휴대전화의 테더링된 블루투스 연결에 연결할 수 있습니다.BT-팬스크립트.

내 휴대폰의 유선 연결에 대한 연결 추적입니다.

# bt-pan --debug client 60:45:CB:2F:C6:4C --wait
DEBUG:root:Using local device (addr: B8:27:EB:20:54:45): /org/bluez/hci0
DEBUG:root:Using remote device (addr: 60:45:CB:2F:C6:4C): /org/bluez/hci0/dev_60_45_CB_2F_C6_4C
DEBUG:root:Connected to network (dev_remote: /org/bluez/hci0/dev_60_45_CB_2F_C6_4C, addr: 60:45:CB:2F:C6:4C) uuid 'nap' with iface: bnep0

지금까지 수행한 작업은 다음과 같습니다(rpi를 클라이언트로 사용하고 사용자 정의 보드를 서버로 사용).

보드가 페어링되었습니다.

서비스 터미널

[bluetooth]# paired-devices
Device B8:27:EB:20:54:45 raspberrypi[/code]

고객

[bluetooth]# paired-devices
Device 00:16:A4:0A:15:13 BlueZ 5.46

서버 측에서 브리지 인터페이스 설정

#brctl addbr bnep0
#brctl setfd bnep0 0
#brctl stp bnep0 off
#ip addr add 10.5.0.5/255.255.0.0 dev bnep0
#ip link set bnep0 up

서버측에서 bt-pan 스크립트를 서버로 시작합니다.

#bt-pan --debug server bnep0
DEBUG:root:Using local device (addr: 00:16:A4:0A:15:13): /org/bluez/hci0
DEBUG:root:Registered uuid 'nap' with bridge/dev: bnep0 / 00:16:A4:0A:15:13

클라이언트에서 클라이언트로 bt-pan 스크립트를 시작합니다.

# bt-pan --debug client 00:16:A4:0A:15:13 --wait
DEBUG:root:Using local device (addr: B8:27:EB:20:54:45): /org/bluez/hci0
DEBUG:root:Using remote device (addr: 00:16:A4:0A:15:13): /org/bluez/hci0/dev_00_16_A4_0A_15_13
Traceback (most recent call last):
  File "/usr/bin/bt-pan", line 238, in <module>
    if __name__ == '__main__': sys.exit(main())
  File "/usr/bin/bt-pan", line 210, in main
    try: iface = net.Connect(opts.uuid)
  File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 145, in __call__
    **keywords)
  File "/usr/lib/python3/dist-packages/dbus/connection.py", line 651, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "Connect" with signature "s" on interface "org.bluez.Network1" doesn't exist

내가 이해한 바에 따르면 내 블루투스 장치에는 Connect인터페이스를 내보낼 수 있는 방법이 없는 것 같습니다.org.bluez.Network1

네트워크 프로필이 지원되지 않는 이유를 아는 사람이 있습니까?
이 오류를 해결할 수 있는 해결 방법이 있습니까?

답변1

마침내 문제가 무엇인지 알아냈습니다.

내가하고있는 일에는 두 가지 문제가 있습니다.

1. 서버 측에서 PAN을 활성화한 후 페어링하겠습니다.

PAN 프로파일은 bt-pan 스크립트에 의해 생성되므로 페어링이 완료될 때 PAN 프로파일이 존재하지 않으면 클라이언트는 원격 장치에 PAN 프로파일이 있다는 것을 알지 못해 연결 방법이 없다는 오류가 발생합니다. 원격 인터페이스.

2. 서버는 클라이언트를 신뢰해야 합니다.

서버는 신뢰할 수 있는 장치의 연결만 허용합니다. 서버에 의해 페어링이 시작되면 클라이언트는 자동으로 신뢰되지만, 클라이언트에 의해 페어링이 시작되면 클라이언트는 서버 측의 신뢰할 수 있는 장치 목록에 없으므로 연결 시 수락되지 않습니다. 입력/출력 오류.

서버는 페어링을 시작한 후 클라이언트를 신뢰하거나 자체적으로 페어링을 시작할 수 있습니다.

관련 정보