Hướng dẫn này trình bày cấu hình và cấu trúc cơ bản của Bộ định tuyến đường viền mở (OTBR). Sau khi hoàn tất 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à flash RCP
OTBR chạy trên thiết kế của RCP. Chọn một nền tảng Openthread được hỗ trợ để sử dụng làm RCP và làm theo hướng dẫn trong tòa nhà và nhấp nháy cho nền tảng đó.
Để biết thông tin tổng quan về cách xây dựng OpenThread, hãy xem Hướng dẫn tạo tòa nhà.
Bạn có thể tìm thấy hướng dẫn cụ thể về cách xây dựng các nền tảng được hỗ trợ bằng GNU Autotools trong thư mục nền tảng của mỗi ví dụ.
Cài đặt OTBR
OTBR giao tiếp với RCP thông qua vòng quay. Để cài đặt OTBR trên nền tảng phần cứng đã định cấu hình, hãy hoàn thành 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 các 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 đủ các cờ mặc định của OTBR, hãy tham khảo ví dụ về nền tảng trên GitHub.
Chọn nền tảng của bạn, rồi nhấp vào default
, nếu có.
Sử dụng mặc định:
cd ot-br-posix
./script/bootstrap
BeagleBone Black với Người 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
Sử dụng mặc định. Tập lệnh thiết lập cho phép Định tuyến đường viền theo mặc định. Để bật Định tuyến đường viền, hãy chỉ định giao diện Wi-Fi hoặc Ethernet của nền tảng:
Sử dụng Ethernet:
INFRA_IF_NAME=eth0 ./script/setup
Sử dụng Wi-Fi:
INFRA_IF_NAME=wlan0 ./script/setup
BeagleBone Black. 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 đã flash vào nền tảng Bộ định tuyến biên 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 các tùy chọn cài đặt otbr-agent
của bạn.
cd /etc/default
cat otbr-agent
Tệp cấu hình otbr-agent
chứa tên giao diện Chuỗi, 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 thiết bị nào cũng kết nối với cùng một tên cổng nối tiếp. Tên cổng phổ biến nhất là ttyACM*
và ttyUSB*
. Hãy tham khảo tài liệu về
thiết bị của bạn để xác định tên của 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"
Máy điều khiển biên giới sẽ bật/tắt nguồn. Nếu bạn 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 sẽ bắt đầu khởi động.
Xác minh dịch vụ
Xác minh rằng tất cả các dịch vụ bắt buộc đều đã được bật:
sudo systemctl status
Nếu tập lệnh setup
thành công, các dịch vụ sau 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 các dịch vụ đó đang chạy, nhưng RPi lại ở trạng thái đã hạ cấp, thì một số dịch vụ khác sẽ không bắt đầu được. Hãy kiểm tra xem những nội dung sau:
sudo systemctl --failed
Bạn cũng có thể kiểm tra từng dịch vụ một:
sudo service mdns status
sudo service otbr-agent status
sudo service otbr-web status
Theo mặc định, otbr-web
được bật 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 cùng với OTBR. Thuộc tính này được dùng để
giao tiếp với giao diện Thread PAN (mặc định là wpan0
) otbr-agent
được liên kết với trong 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 dữ liệu đầu ra là OpenThread daemon is not running
, hãy khắc phục các vấn đề sau:
- Xác minh rằng Bộ định tuyến biên có đủ điện (sử dụng bộ chuyển đổi AC bên ngoài thích hợp).
- Ngắt kết nối rồi kết nối lại bảng RCP với nền tảng Border Channelr.
Xác minh rằng có thiết bị nối tiếp RCP. Ví dụ: nếu thiết bị được đính kèm vào
/dev/ttyUSB0
:ls /dev/ttyUSB*
/dev/ttyUSB0Đặt lại RCP với
sudo ot-ctl reset
.
Kiểm tra lại trạng thái RCP với sudo ot-ctl state
.