Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Tạo và định cấu hình bộ định tuyến đường biên OpenOpen

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Xem nguồn trên GitHub

Hướng dẫn này đề cập đến bản dựng và cấu hình cơ bản của Bộ định tuyến biên giới OpenThread (OTBR). Sau khi hoàn thành quy trình này, bạn sẽ có một OTBR hoạt động như một Thiết bị luồng đầy đủ (FTD) trong thiết kế RCP.

Định cấu hình nền tảng

Định cấu hình nền tảng phần cứng được hỗ trợ:

Xây dựng và triển khai RCP

OTBR chạy trên thiết kế RCP. Chọn một nền tảng OpenThread được hỗ trợ để dùng làm RCP, đồng thời làm theo hướng dẫn về cách xây dựng và nhấp nháy cho nền tảng đó.

Để biết tổng quan về cách xây dựng OpenThread, hãy xem Hướng dẫn xây dựng.

Bạn có thể xem hướng dẫn cụ thể về cách tạo nền tảng được hỗ trợ bằng GNU Autotools trong từng ví dụ vềthư mục của nền tảng.

Cài đặt OTBR

OTBR giao tiếp với RCP qua Spinel. Để cài đặt OTBR trên nền tảng phần cứng được định cấu hình, hãy hoàn tất các bước sau.

Sao chép kho lưu trữ OTBR:

git clone https://github.com/openthread/ot-br-posix

Cài đặt phần phụ thuộc

Cấu hình mặc định bật BORDER_ROUTING cho hầu hết các nền tảng. Để biết danh sách đầy đủ những cờ cảnh báo mặc định của OTBR, hãy tham khảo các ví dụ về nền tảng trên GitHub. Chọn nền tảng của bạn, sau đó nhấp vào default, nếu có.

  • Cách sử dụng mặc định:

    cd ot-br-posix
    ./script/bootstrap
    
  • BeagleBone Black với Trình quản lý mạng (không bắt buộc):

    cd ot-br-posix
    NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/bootstrap
    

Biên dịch và cài đặt OTBR

  • Cách sử dụng mặc định. Tập lệnh thiết lập bật tính năng Định tuyến biên theo mặc định. Để bật tính năng Định tuyến biên, hãy chỉ định giao diện Ethernet hoặc Wi-Fi của nền tảng bạn sử dụng:

    Sử dụng Ethernet:

    INFRA_IF_NAME=eth0 ./script/setup
    

    Sử dụng Wi-Fi:

    INFRA_IF_NAME=wlan0 ./script/setup
    
  • BeagleBone đen. Sử dụng Trình quản lý mạng (không bắt buộc):

    NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
    

Đính kèm và định cấu hình thiết bị RCP

Gắn thiết bị RCP (Đèn flash) flash đã nhấp nháy vào nền tảng Bộ định tuyến biên thông qua USB.

Để định cấu hình cổng nối tiếp của thiết bị RCP trong otbr-agent, trước tiên, hãy xác định tên cổng nối tiếp cho thiết bị RCP bằng cách kiểm tra /dev:

ls /dev/tty*

Tiếp theo, hãy kiểm tra chế độ cài đặt của otbr-agent.

cd /etc/default
cat otbr-agent

Tệp cấu hình otbr-agent chứa tên giao diện Thread, tên giao diện Ethernet hoặc Wi-Fi và tên cổng nối tiếp RCP.

OTBR_AGENT_OPTS="-I wpan0 -B OTBR_INFRA_IF_NAME spinel+hdlc+uart:///dev/ttyACM0 trel://OTBR_INFRA_IF_NAME"

Không phải tất cả thiết bị đều đính kèm cùng một tên cổng nối tiếp. Tên cổng phổ biến nhất là ttyACM*ttyUSB*. Hãy tham khảo tài liệu về thiết bị của bạn để xác định tên cổng nối tiếp dự kiến.

Nếu cần, hãy cập nhật tệp cấu hình otbr-agent. Ví dụ: đối với giao diện Wi-Fi và tên cổng nối tiếp là ttyUSB0:

OTBR_AGENT_OPTS="-I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyUSB0 trel://wlan0"

Để cập nhật giao diện Ethernet:

OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyUSB0 trel://eth0"

Bật/tắt bộ định tuyến biên. Nếu sử dụng nền tảng BeagleBone Black, hãy nhớ giữ nút BOOT trong khi làm như vậy.

Dịch vụ OTBR nên bắt đầu khi khởi động.

Xác minh dịch vụ

Xác minh rằng tất cả dịch vụ bắt buộc đều đang bật:

sudo systemctl status

Nếu tập lệnh setup thành công, các dịch vụ sau đây sẽ xuất hiện trong đầu ra:

  • mdns.service
  • otbr-agent.service
  • otbr-web.service

Ví dụ:

● raspberrypi
    State: running
     Jobs: 0 queued
   Failed: 0 units
    Since: Thu 1970-01-01 00:00:01 UTC; 47 years 7 months ago
   CGroup: /
           ├─user.slice
           │ └─user-1000.slice
           │   ├─user@1000.service
           │   │ └─init.scope
           │   │   ├─576 /lib/systemd/systemd --user
           │   │   └─580 (sd-pam)
           │   └─session-c1.scope
           │     ├─480 /bin/login --
           │     └─585 -bash
           ├─init.scope
           │ └─1 /sbin/init
           └─system.slice
             ├─systemd-timesyncd.service
             │ └─334 /lib/systemd/systemd-timesyncd
             ├─dbus.service
             │ └─339 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
             ├─hciuart.service
             │ └─442 /usr/bin/hciattach /dev/serial1 bcm43xx 921600 noflow -
             ├─ssh.service
             │ └─621 /usr/sbin/sshd -D
             ├─avahi-daemon.service
             │ ├─341 avahi-daemon: running [raspberrypi.local]
             │ └─361 avahi-daemon: chroot helper
  # enabled  ├─otbr-web.service
             │ └─472 /usr/sbin/otbr-web
             ├─triggerhappy.service
             │ └─354 /usr/sbin/thd --triggers /etc/triggerhappy/triggers.d/ --socket /run/thd.socket --user nobody --deviceglob /dev/input/event*
             ├─systemd-logind.service
             │ └─353 /lib/systemd/systemd-logind
  # enabled  ├─otbr-agent.service
             │ └─501 /usr/sbin/otbr-agent -I wpan0
             ├─cron.service
             │ └─350 /usr/sbin/cron -f
             ├─systemd-udevd.service
             │ └─154 /lib/systemd/systemd-udevd
             ├─rsyslog.service
             │ └─345 /usr/sbin/rsyslogd -n
             ├─bluetooth.service
             │ └─445 /usr/lib/bluetooth/bluetoothd
  # enabled  ├─mdns.service
             │ └─725 /usr/sbin/mdnsd
             ├─systemd-journald.service
             │ └─136 /lib/systemd/systemd-journald
             └─dhcpcd.service
               ├─409 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0
               └─466 /sbin/dhcpcd -q -w

Nếu những dịch vụ đó đang chạy, nhưng RPi ở trạng thái chấm điểm, thì một số dịch vụ khác không bắt đầu được. Hãy kiểm tra để biết:

sudo systemctl --failed

Bạn cũng có thể kiểm tra từng dịch vụ riêng lẻ:

sudo service mdns status
sudo service otbr-agent status
sudo service otbr-web status

otbr-web được bật theo mặc định cho hầu hết các nền tảng. Nếu bạn chưa cài đặt otbr-web, hãy thử chuyển cờ WEB_GUI:

WEB_GUI=1 ./script/bootstrap
INFRA_IF_NAME=wlan0 WEB_GUI=1 ./script/setup

Xác minh RCP

Xác minh rằng RCP ở đúng trạng thái:

sudo ot-ctl state

ot-ctl là một tiện ích dòng lệnh được cung cấp kèm theo OTBR. Thuộc tính này được dùng để giao tiếp với giao diện PAN của Thread (mặc định là wpan0) mà otbr-agent liên kết với thiết kế RCP.

Nếu RCP đang chạy thành công và nút không phải là thành viên của mạng Thread, thì kết quả sẽ tương tự như bên dưới:

disabled

Nếu kết quả là OpenThread daemon is not running, hãy khắc phục sự cố bằng cách sau:

  1. Xác minh Bộ định tuyến biên có đủ công suất (sử dụng bộ chuyển đổi AC bên ngoài thích hợp).
  2. Ngắt kết nối rồi kết nối lại bảng RCP với nền tảng Bộ định tuyến biên.
  3. Xác minh rằng thiết bị nối tiếp RCP đã có. Ví dụ: nếu thiết bị cần được đính kèm vào /dev/ttyUSB0:

    ls /dev/ttyUSB*
    /dev/ttyUSB0
    
  4. Đặt lại RCP bằng sudo ot-ctl reset.

Hãy kiểm tra lại trạng thái RCP với sudo ot-ctl state.