Thiết lập Bluetooth PAN


20

Tôi đang cố gắng tạo Bluetooth PAN giữa hai thiết bị nơi tôi có thể truy cập các dịch vụ web dựa trên REST qua kết nối Bluetooth. Tôi đã có một số thành công với nhiều bằng chứng về các khái niệm (cả di sản Bluetooth và Bluetooth Smart) nhưng tôi gặp vấn đề khi cố gắng tạo mạng Nhóm hoặc mạng PANU <-> PANU. Tôi có thể làm cho mạng hoạt động bằng kịch bản điểm truy cập mạng, tuy nhiên trường hợp sử dụng của chúng tôi cần là một thiết bị duy nhất giao tiếp với một thiết bị khác không có định tuyến đến bất kỳ thiết bị hoặc mạng nào khác.

Để bắt đầu với tôi có Raspberry Pi với HĐH Raspbian mới nhất. Điều này đi kèm với bluez 5.23. Để làm cho điểm truy cập mạng hoạt động, tôi đang sử dụng đoạn mã sau:

brctl addbr pan0
brctl setfd pan0 0
brctl stp pan0 off

ifconfig pan0 inet6 add fd00::5ef3:70ff:xxxx:xxxx
iplink set pan0 up

bt-network –d –s nap pan0

Điều này hoạt động rất tốt và tôi có thể kết nối cả thiết bị Linux và Windows. Tôi cũng có thể truy cập máy chủ web Apache chạy trên Raspberry Pi từ thiết bị mà tôi đã kết nối với nó.

Trên thiết bị Linux, tôi sử dụng blueman để kết nối. Tôi cũng đã sử dụng mạng bt với tùy chọn HP để kết nối. Đối với thiết bị Windows (máy tính bảng windows 10) Tôi ghép nối thiết bị và sau đó kết nối với mạng từ màn hình Thiết bị mạng cá nhân Bluetooth. Tôi đã cần sử dụng bluetoothctl để tin tưởng cả hai thiết bị trước khi kết nối.

Với NAP hoạt động, tôi muốn cố gắng để mạng nhóm hoặc mạng panu-panu hoạt động như được mô tả trong tài liệu này: http://www.bluetooth.org/docman/handlers/doaddoc.ashx?doc_id=6554 Những tình huống này sẽ hoạt động tốt nhất cho chúng tôi vì chúng tôi không muốn định tuyến tới bất kỳ mạng hoặc thiết bị bổ sung nào (kịch bản panu-panu sẽ là lý tưởng)

Suy nghĩ ban đầu của tôi là tất cả những gì tôi cần làm là thay đổi lệnh bt-network thành một trong hai lệnh sau:

bt-network –d –s gn pan0

bt-network –d –s panu pan0

Cả hai lệnh này đều khởi động với bất kỳ lỗi nào nhưng tôi không thể thiết lập kết nối mạng giữa các thiết bị Linux hoặc Windows của mình. Tôi có thể ghép nối thành công các thiết bị (Tôi đang sử dụng lệnh của hciconfig hci0 piscan tựa để quảng cáo) nhưng tôi không thể đưa mạng lên.

Nếu tôi chạy hcidump, tôi nhận được đầu ra sau. Lưu ý Tôi đã bao gồm toàn bộ hcidump từ nỗ lực kết nối nên nó khá dài nhưng tôi nghĩ nó có thể giúp xác định vấn đề. Đây là một mạng nhóm nhưng tôi gặp lỗi tương tự với kịch bản panu-panu:

HCI sniffer - Bluetooth packet analyzer ver 5.23
device: hci0 snap_len: 1500 filter: 0xffffffff
> HCI Event: Connect Request (0x04) plen 10
    bdaddr 5C:F3:70:66:XX:XX class 0x000000 type ACL
< HCI Command: Accept Connection Request (0x01|0x0009) plen 7
    bdaddr 5C:F3:70:66:XX:XX role 0x00
    Role: Master
> HCI Event: Command Status (0x0f) plen 4
    Accept Connection Request (0x01|0x0009) status 0x00 ncmd 1
> HCI Event: Role Change (0x12) plen 8
    status 0x00 bdaddr 5C:F3:70:66:XX:XX role 0x00
    Role: Master
> HCI Event: Connect Complete (0x03) plen 11
    status 0x00 handle 11 bdaddr 5C:F3:70:66:XX:XX type ACL encrypt 0x00
< HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2
    handle 11
> HCI Event: Command Status (0x0f) plen 4
    Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 1
> HCI Event: Max Slots Change (0x1b) plen 3
    handle 11 slots 5
> HCI Event: Read Remote Supported Features (0x0b) plen 11
    status 0x00 handle 11
    Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
< HCI Command: Read Remote Extended Features (0x01|0x001c) plen 3
    handle 11 page 1
> HCI Event: Command Status (0x0f) plen 4
    Read Remote Extended Features (0x01|0x001c) status 0x00 ncmd 1
> HCI Event: Read Remote Extended Features (0x23) plen 13
    status 0x00 handle 11 page 1 max 1
    Features: 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00
< HCI Command: Remote Name Request (0x01|0x0019) plen 10
    bdaddr 5C:F3:70:66:XX:XX mode 2 clkoffset 0x0000
< ACL data: handle 11 flags 0x00 dlen 10
    L2CAP(s): Info req: type 2
> HCI Event: Command Status (0x0f) plen 4
    Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> HCI Event: Remote Name Req Complete (0x07) plen 255
    status 0x00 bdaddr 5C:F3:70:66:XX:XX name 'raspberrypi'
> HCI Event: IO Capability Response (0x32) plen 9
    bdaddr 5C:F3:70:66:XX:XX capability 0x01 oob 0x00 auth 0x03
    Capability: DisplayYesNo (OOB data not present)
    Authentication: Dedicated Bonding (MITM Protection)
> HCI Event: IO Capability Request (0x31) plen 6
    bdaddr 5C:F3:70:66:XX:XX
< HCI Command: IO Capability Request Reply (0x01|0x002b) plen 9
    bdaddr 5C:F3:70:66:XX:XX capability 0x03 oob 0x00 auth 0x02
    Capability: NoInputNoOutput (OOB data not present)
    Authentication: Dedicated Bonding (No MITM Protection)
> HCI Event: Command Complete (0x0e) plen 10
    IO Capability Request Reply (0x01|0x002b) ncmd 1
    status 0x00 bdaddr 5C:F3:70:66:XX:XX
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 11 packets 1
> HCI Event: User Confirmation Request (0x33) plen 10
    bdaddr 5C:F3:70:66:XX:XX passkey 774674
< HCI Command: User Confirmation Request Reply (0x01|0x002c) plen 6
    bdaddr 5C:F3:70:66:XX:XX
> HCI Event: Command Complete (0x0e) plen 10
    User Confirmation Request Reply (0x01|0x002c) ncmd 1
    status 0x00 bdaddr 5C:F3:70:66:XX:XX
> HCI Event: Simple Pairing Complete (0x36) plen 7
    status 0x00 bdaddr 5C:F3:70:66:XX:XX
> HCI Event: Link Key Notification (0x18) plen 23
    bdaddr 5C:F3:70:66:XX:XX key 839802CBF65CA6D1D864F91831A288B0 type 4
    Type: Unauthenticated Combination Key
> HCI Event: Encrypt Change (0x08) plen 4
    status 0x00 handle 11 encrypt 0x01
> ACL data: handle 11 flags 0x02 dlen 10
    L2CAP(s): Info req: type 2
> ACL data: handle 11 flags 0x02 dlen 16
    L2CAP(s): Info rsp: type 2 result 0
      Extended feature mask 0x02b8
        Enhanced Retransmission mode
        Streaming mode
        FCS Option
        Fixed Channels
        Unicast Connectless Data Reception
< ACL data: handle 11 flags 0x00 dlen 16
    L2CAP(s): Info rsp: type 2 result 0
      Extended feature mask 0x02b8
        Enhanced Retransmission mode
        Streaming mode
        FCS Option
        Fixed Channels
        Unicast Connectless Data Reception
< ACL data: handle 11 flags 0x00 dlen 10
    L2CAP(s): Info req: type 3
> ACL data: handle 11 flags 0x02 dlen 10
    L2CAP(s): Info req: type 3
< ACL data: handle 11 flags 0x00 dlen 20
    L2CAP(s): Info rsp: type 3 result 0
      Fixed channel list 0x00000006
        L2CAP Signalling Channel
        L2CAP Connless
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 11 packets 2
> ACL data: handle 11 flags 0x02 dlen 20
    L2CAP(s): Info rsp: type 3 result 0
      Fixed channel list 0x00000006
        L2CAP Signalling Channel
        L2CAP Connless
> ACL data: handle 11 flags 0x02 dlen 12
    L2CAP(s): Connect req: psm 1 scid 0x0040
< ACL data: handle 11 flags 0x00 dlen 16
    L2CAP(s): Connect rsp: dcid 0x0040 scid 0x0040 result 0 status 0
      Connection successful
< ACL data: handle 11 flags 0x00 dlen 23
    L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 11
      RFC 0x00 (Basic) 
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 11 packets 2
> ACL data: handle 11 flags 0x02 dlen 23
    L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 11
      RFC 0x00 (Basic) 
< ACL data: handle 11 flags 0x00 dlen 18
    L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 0 clen 4
      MTU 672 
> ACL data: handle 11 flags 0x02 dlen 18
    L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 0 clen 4
      MTU 672 
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 11 packets 2
> ACL data: handle 11 flags 0x02 dlen 24
    L2CAP(d): cid 0x0040 len 20 [psm 1]
        SDP SSA Req: tid 0x0 len 0xf
          pat uuid-16 0x0100 (L2CAP)
          max 65535
          aid(s) 0x0000 - 0xffff
          cont 00
< ACL data: handle 11 flags 0x00 dlen 606
    L2CAP(d): cid 0x0040 len 602 [psm 1]
        SDP SSA Rsp: tid 0x0 len 0x255
          count 594
          record #0
              aid 0x0000 (SrvRecHndl)
                 uint 0x10001
              aid 0x0001 (SrvClassIDList)
                 < uuid-16 0x1800 >
              aid 0x0004 (ProtocolDescList)
                 < < uuid-16 0x0100 (L2CAP) uint 0x1f > <
                 uuid-16 0x0007 uint 0x1 uint 0x8 > >
              aid 0x0005 (BrwGrpList)
                 < uuid-16 0x1002 (PubBrwsGrp) >
              aid 0x000a (DocURL)
                 url "http://www.bluez.org/"
              aid 0x000b (ClientExeURL)
                 url "http://www.bluez.org/"
              aid 0x000c (IconURL)
                 url "http://www.bluez.org/"
              aid 0x0100 (SrvName)
                 str "Generic Access Profile"
              aid 0x0102 (ProviderName)
                 str "BlueZ"
          record #1
              aid 0x0000 (SrvRecHndl)
                 uint 0x10002
              aid 0x0001 (SrvClassIDList)
                 < uuid-16 0x1801 >
              aid 0x0004 (ProtocolDescList)
                 < < uuid-16 0x0100 (L2CAP) uint 0x1f > <
                 uuid-16 0x0007 uint 0x10 uint 0x10 > >
              aid 0x0005 (BrwGrpList)
                 < uuid-16 0x1002 (PubBrwsGrp) >
              aid 0x0100 (SrvName)
                 str "Generic Attribute Profile"
              aid 0x0102 (ProviderName)
                 str "BlueZ"
          record #2
              aid 0x0000 (SrvRecHndl)
                 uint 0x10003
              aid 0x0001 (SrvClassIDList)
                 < uuid-16 0x110e (AVRemote) uuid-16 0x110f (AVRemCt) >
              aid 0x0004 (ProtocolDescList)
                 < < uuid-16 0x0100 (L2CAP) uint 0x17 > <
                 uuid-16 0x0017 (AVCTP) uint 0x103 > >
              aid 0x0005 (BrwGrpList)
                 < uuid-16 0x1002 (PubBrwsGrp) >
              aid 0x0009 (BTProfileDescList)
                 < < uuid-16 0x110e (AVRemote) uint 0x105 > >
              aid 0x000d (AdditionalProtocolDescLists)
                 < < < uuid-16 0x0100 (L2CAP) uint 0x1b > < uuid-16 0x0017 (AVCTP) uint 0x103 > > >
              aid 0x0100 (SrvName)
                 str "AVRCP CT"
              aid 0x0311 (SuppFeatures)
                 uint 0x4f
          record #3
              aid 0x0000 (SrvRecHndl)
                 uint 0x10004
              aid 0x0001 (SrvClassIDList)
                 < uuid-16 0x110c (AVRemTarget) >
              aid 0x0004 (ProtocolDescList)
                 < < uuid-16 0x0100 (L2CAP) uint 0x17 > <
                 uuid-16 0x0017 (AVCTP) uint 0x103 > >
              aid 0x0005 (BrwGrpList)
                 < uuid-16 0x1002 (PubBrwsGrp) >
              aid 0x0009 (BTProfileDescList)
                 < < uuid-16 0x110e (AVRemote) uint 0x104 > >
              aid 0x000d (AdditionalProtocolDescLists)
                 < < < uuid-16 0x0100 (L2CAP) uint 0x1b > < uuid-16 0x0017 (AVCTP) uint 0x103 > > >
              aid 0x0100 (SrvName)
                 str "AVRCP TG"
              aid 0x0311 (SuppFeatures)
                 uint 0x5f
          record #4
              aid 0x0000 (SrvRecHndl)
                 uint 0x10005
              aid 0x0001 (SrvClassIDList)
                 < uuid-16 0x1117 (GN) >
              aid 0x0004 (ProtocolDescList)
                 < < uuid-16 0x0100 (L2CAP) uint 0xf > <
                 uuid-16 0x000f (BNEP) uint 0x100 < uint 0x800 uint 0x806 > > >
              aid 0x0005 (BrwGrpList)
                 < uuid-16 0x1002 (PubBrwsGrp) >
              aid 0x0006 (LangBaseAttrIDList)
                 < uint 0x656e uint 0x6a uint 0x100 >
              aid 0x0009 (BTProfileDescList)
                 < < uuid-16 0x1117 (GN) uint 0x100 > >
              aid 0x0100 (SrvName)
                 str "Network service"
              aid 0x0101 (SrvDesc)
                 str "Network service"
              aid 0x030a (SecurityDescription)
                 uint 0x1
          cont 00
> ACL data: handle 11 flags 0x02 dlen 24
    L2CAP(d): cid 0x0040 len 20 [psm 1]
        SDP SSA Req: tid 0x1 len 0xf
          pat uuid-16 0x1200 (PNPInfo)
          max 65535
          aid(s) 0x0000 - 0xffff
          cont 00
< ACL data: handle 11 flags 0x00 dlen 88
    L2CAP(d): cid 0x0040 len 84 [psm 1]
        SDP SSA Rsp: tid 0x1 len 0x4f
          count 76
          record #0
              aid 0x0000 (SrvRecHndl)
                 uint 0x10000
              aid 0x0001 (SrvClassIDList)
                 < uuid-16 0x1200 (PNPInfo) >
              aid 0x0005 (BrwGrpList)
                 < uuid-16 0x1002 (PubBrwsGrp) >
              aid 0x0009 (BTProfileDescList)
                 < < uuid-16 0x1200 (PNPInfo) uint 0x103 > >
              aid 0x0200 (VersionNumList)
                 uint 0x103
              aid 0x0201 (SrvDBState)
                 uint 0x1d6b
              aid 0x0202 (unknown)
                 uint 0x246
              aid 0x0203 (unknown)
                 uint 0x517
              aid 0x0204 (unknown)
                 bool 0x1
              aid 0x0205 (unknown)
                 uint 0x2
          cont 00
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 11 packets 2
> ACL data: handle 11 flags 0x02 dlen 12
    L2CAP(s): Disconn req: dcid 0x0040 scid 0x0040
< ACL data: handle 11 flags 0x00 dlen 12
    L2CAP(s): Disconn rsp: dcid 0x0040 scid 0x0040
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 11 packets 1
> HCI Event: Disconn Complete (0x05) plen 4
    status 0x00 handle 11 reason 0x13
    Reason: Remote User Terminated Connection
> HCI Event: Connect Request (0x04) plen 10
    bdaddr 5C:F3:70:66:XX:XX class 0x000000 type ACL
< HCI Command: Accept Connection Request (0x01|0x0009) plen 7
    bdaddr 5C:F3:70:66:XX:XX role 0x00
    Role: Master
> HCI Event: Command Status (0x0f) plen 4
    Accept Connection Request (0x01|0x0009) status 0x00 ncmd 1
> HCI Event: Role Change (0x12) plen 8
    status 0x00 bdaddr 5C:F3:70:66:XX:XX role 0x00
    Role: Master
> HCI Event: Connect Complete (0x03) plen 11
    status 0x00 handle 12 bdaddr 5C:F3:70:66:XX:XX type ACL encrypt 0x00
< HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2
    handle 12
> HCI Event: Command Status (0x0f) plen 4
    Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 1
> HCI Event: Max Slots Change (0x1b) plen 3
    handle 12 slots 5
> HCI Event: Read Remote Supported Features (0x0b) plen 11
    status 0x00 handle 12
    Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
< HCI Command: Read Remote Extended Features (0x01|0x001c) plen 3
    handle 12 page 1
> HCI Event: Command Status (0x0f) plen 4
    Read Remote Extended Features (0x01|0x001c) status 0x00 ncmd 1
> HCI Event: Read Remote Extended Features (0x23) plen 13
    status 0x00 handle 12 page 1 max 1
    Features: 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00
< HCI Command: Remote Name Request (0x01|0x0019) plen 10
    bdaddr 5C:F3:70:66:XX:XX mode 2 clkoffset 0x0000
< ACL data: handle 12 flags 0x00 dlen 10
    L2CAP(s): Info req: type 2
> HCI Event: Command Status (0x0f) plen 4
    Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> HCI Event: Remote Name Req Complete (0x07) plen 255
    status 0x00 bdaddr 5C:F3:70:66:XX:XX name 'raspberrypi'
> HCI Event: Link Key Request (0x17) plen 6
    bdaddr 5C:F3:70:66:XX:XX
< HCI Command: Link Key Request Reply (0x01|0x000b) plen 22
    bdaddr 5C:F3:70:66:XX:XX key 839802CBF65CA6D1D864F91831A288B0
> HCI Event: Command Complete (0x0e) plen 10
    Link Key Request Reply (0x01|0x000b) ncmd 1
    status 0x00 bdaddr 5C:F3:70:66:XX:XX
> HCI Event: Encrypt Change (0x08) plen 4
    status 0x00 handle 12 encrypt 0x01
> ACL data: handle 12 flags 0x02 dlen 10
    L2CAP(s): Info req: type 2
< ACL data: handle 12 flags 0x00 dlen 16
    L2CAP(s): Info rsp: type 2 result 0
      Extended feature mask 0x02b8
        Enhanced Retransmission mode
        Streaming mode
        FCS Option
        Fixed Channels
        Unicast Connectless Data Reception
> ACL data: handle 12 flags 0x02 dlen 16
    L2CAP(s): Info rsp: type 2 result 0
      Extended feature mask 0x02b8
        Enhanced Retransmission mode
        Streaming mode
        FCS Option
        Fixed Channels
        Unicast Connectless Data Reception
< ACL data: handle 12 flags 0x00 dlen 10
    L2CAP(s): Info req: type 3
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 12 packets 2
> ACL data: handle 12 flags 0x02 dlen 10
    L2CAP(s): Info req: type 3
< ACL data: handle 12 flags 0x00 dlen 20
    L2CAP(s): Info rsp: type 3 result 0
      Fixed channel list 0x00000006
        L2CAP Signalling Channel
        L2CAP Connless
> ACL data: handle 12 flags 0x02 dlen 20
    L2CAP(s): Info rsp: type 3 result 0
      Fixed channel list 0x00000006
        L2CAP Signalling Channel
        L2CAP Connless
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 12 packets 2
> ACL data: handle 12 flags 0x02 dlen 12
    L2CAP(s): Connect req: psm 15 scid 0x0040
< ACL data: handle 12 flags 0x00 dlen 16
    L2CAP(s): Connect rsp: dcid 0x0040 scid 0x0040 result 1 status 2
      Connection pending - Authorization pending
< ACL data: handle 12 flags 0x00 dlen 16
    L2CAP(s): Connect rsp: dcid 0x0040 scid 0x0040 result 3 status 0
      Connection refused - security block
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 12 packets 2
> HCI Event: Disconn Complete (0x05) plen 4
    status 0x00 handle 12 reason 0x13
    Reason: Remote User Terminated Connection

Ở cuối bãi rác này, tôi nhận được lỗi: Kết nối bị từ chối - khối bảo mật. Tôi tin rằng đây là vấn đề nhưng tôi có các thiết bị đáng tin cậy ở cả hai đầu. Tôi gặp lỗi tương tự cho dù tôi cố gắng sử dụng gn hoặc panu làm loại máy chủ và kết nối từ các thiết bị Linux hoặc Window.

Tôi thấy rất nhiều ví dụ cho điểm truy cập mạng (NAP) tuy nhiên tôi đang gặp khó khăn khi tìm ví dụ cho nhóm hoặc mạng panu. Có ai có bất kỳ thành công nào khi một nhóm hoặc mạng panu hoạt động bằng cách sử dụng mạng bt (bluez 5.23) không? Tôi chỉ đơn giản là thiếu một cái gì đó? Bất kỳ trợ giúp sẽ được đánh giá cao.

Cảm ơn

Jon

Câu trả lời:


1

Nhấn chuột phải vào biểu tượng trong lãnh thổ cảnh báo của tiện ích Bluetooth và chọn Tham gia sắp xếp từng vùng riêng lẻ. Các tiện ích Bluetooth xuất hiện. ...

Nhấn vào tên của PC mà bạn cần liên kết. Tại thời điểm trang thuộc tính của tiện ích này được hiển thị, nhấp OK để đóng trang này.

Sử dụng Snap Connect.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.