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 đường viền OpenThread (OTBR). Sau khi hoàn tất quy trình này, bạn sẽ có một OTBR có chức năng dưới dạng 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ợ:
Tạo và cài đặt RCP
OTBR chạy trên thiết kế RCP. Chọn một OpenThread được hỗ trợ nền tảng để sử dụng như một RCP, đồng thời tuân theo toà nhà và cài đặt RCP cho nền tảng đó.
Để biết thông tin tổng quan về cách tạo 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 xây dựng các nền tảng được hỗ trợ bằng GNU Autotools trong mỗi ví dụ thư mục nền tảng.
Cài đặt OTBR
OTBR giao tiếp với RCP thông qua con quay. Để cài đặt OTBR trên thiết bị đã định cấu hình nền tảng phần cứng, 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. Đối với
danh sách đầy đủ các cờ mặc định OTBR, hãy tham khảo
các ví dụ về nền tảng trên GitHub.
Chọn nền tảng bạn sử dụng rồi nhấp vào default
, nếu có.
Mức 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
Mức sử dụng mặc định. Tập lệnh thiết lập sẽ bật tính năng Định tuyến đường viền theo mặc định. Để bật Định tuyến theo đường viền, chỉ định giao diện Ethernet hoặc Wi-Fi của nền tảng của bạn:
Sử dụng Ethernet:
INFRA_IF_NAME=eth0 ./script/setup
Dùng Wi-Fi:
INFRA_IF_NAME=wlan0 ./script/setup
BeagleBone Black (Đen BeagleBone). 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 đã được flash vào nền tảng Border Router 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 otbr-agent
.
cd /etc/default
cat otbr-agent
Tệp cấu hình otbr-agent
chứa tên giao diện Thread, Ethernet
hoặc tên giao diện 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 đính kèm tên cổng nối tiếp giống nhau. Nhiều nhất
tên cổng phổ biến 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ổng nối tiếp dự kiến.
Cập nhật tệp cấu hình otbr-agent
nếu cần. Ví dụ: đối với một mạng Wi-Fi
giao diện và tên cổng nối tiếp của ttyUSB0
:
OTBR_AGENT_OPTS="-I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyUSB0 trel://wlan0"
Cách 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 nguồn cho Bộ định tuyến biên. Nếu sử dụng nền tảng BeagleBone Black, hãy nhớ giữ nút BOOT khi làm điều đó.
Dịch vụ OTBR sẽ bắt đầu khi khởi động.
Xác minh dịch vụ
Xác minh rằng bạn đã bật tất cả các dịch vụ bắt buộc:
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 ở trạng thái xuống cấp, một số dịch vụ khác không khởi động được. Hãy kiểm tra xem:
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 nền tảng.
Nếu otbr-web
chưa được cài đặt, 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 đang ở trạng thái chính xác:
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. Dùng để
giao tiếp với giao diện Thread PAN (mặc định là wpan0
) mà otbr-agent
bị ràng buộc trong thiết kế RCP.
Nếu RCP đang chạy thành công và nút này không phải là thành viên của một Luồng mạng, kết quả sẽ tương tự như dưới đây:
disabled
Nếu kết quả là OpenThread daemon is not running
, hãy khắc phục sự cố bằng các bước sau:
- Xác minh rằng Bộ định tuyến biên có đủ điện (sử dụng nguồn AC bên ngoài phù hợp bộ chuyển đổi).
- Ngắt kết nối rồi kết nối lại bảng RCP với nền tảng Border Router.
Xác minh rằng thiết bị nối tiếp RCP đã tồn tại. Ví dụ: nếu thiết bị phải được đính kèm vào
/dev/ttyUSB0
:ls /dev/ttyUSB*
/dev/ttyUSB0Đặt lại RCP bằng
sudo ot-ctl reset
.
Kiểm tra lại trạng thái RCP bằng sudo ot-ctl state
.