이 가이드에서는 OpenThread 경계 라우터(OTBR)의 기본 빌드 및 구성을 설명합니다. 이 절차를 완료하면 RCP 설계에서 전체 스레드 기기(FTD)로 작동하는 OTBR이 생성됩니다.
플랫폼 구성
지원되는 하드웨어 플랫폼을 구성합니다.
RCP 빌드 및 플래시
OTBR은 RCP 설계에 따라 운영됩니다. RCP로 사용할 지원되는 OpenThread 플랫폼을 선택하고 해당 플랫폼의 빌드 및 플래싱 안내를 따릅니다.
OpenThread 빌드에 관한 개요는 빌드 가이드를 참고하세요.
GNU Autotools로 지원되는 플랫폼을 빌드하는 방법에 관한 구체적인 안내는 각 예의 플랫폼 폴더에서 확인할 수 있습니다.
OTBR 설치
OTBR은 스핀엘을 통해 RCP와 통신합니다. 구성된 하드웨어 플랫폼에 OTBR을 설치하려면 다음 단계를 완료하세요.
OTBR 저장소를 클론합니다.
git clone https://github.com/openthread/ot-br-posix
종속 항목 설치
기본 구성을 사용하면 대부분의 플랫폼에서 BORDER_ROUTING
가 사용 설정됩니다. OTBR 기본 플래그의 전체 목록은 GitHub의 플랫폼 예시를 참고하세요.
플랫폼을 선택한 다음 default
(제공되는 경우)를 클릭합니다.
기본 사용:
cd ot-br-posix
./script/bootstrap
네트워크 관리자가 있는 BeagleBone Black(선택사항):
cd ot-br-posix
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/bootstrap
OTBR 컴파일 및 설치
기본 사용법입니다. 설정 스크립트는 기본적으로 Border Routing을 사용 설정합니다. 경계 라우팅을 사용 설정하려면 플랫폼의 이더넷 또는 Wi-Fi 인터페이스를 지정하세요.
이더넷 사용:
INFRA_IF_NAME=eth0 ./script/setup
Wi-Fi 사용:
INFRA_IF_NAME=wlan0 ./script/setup
BeagleBone Black. Network Manager 사용(선택사항):
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
RCP 기기 연결 및 구성
플래시된 RCP 기기를 USB를 통해 Border Router 플랫폼에 연결합니다.
otbr-agent
에서 RCP 기기의 직렬 포트를 구성하려면 먼저 /dev
을 확인하여 RCP 기기의 직렬 포트 이름을 확인합니다.
ls /dev/tty*
다음으로 otbr-agent
설정을 확인합니다.
cd /etc/default
cat otbr-agent
otbr-agent
구성 파일에는 Thread 인터페이스 이름, 이더넷 또는 Wi-Fi 인터페이스 이름, RCP 직렬 포트 이름이 포함됩니다.
OTBR_AGENT_OPTS="-I wpan0 -B OTBR_INFRA_IF_NAME spinel+hdlc+uart:///dev/ttyACM0 trel://OTBR_INFRA_IF_NAME"
일부 기기는 동일한 직렬 포트 이름으로 연결되지 않습니다. 가장 일반적인 포트 이름은 ttyACM*
및 ttyUSB*
입니다. 필요한 직렬 포트 이름을 확인하려면 기기의 문서를 참고하세요.
필요한 경우 otbr-agent
구성 파일을 업데이트합니다. 예를 들어 Wi-Fi 인터페이스와 직렬 포트 이름이 ttyUSB0
인 경우 다음과 같습니다.
OTBR_AGENT_OPTS="-I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyUSB0 trel://wlan0"
이더넷 인터페이스를 업데이트하려면 다음 단계를 따르세요.
OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyUSB0 trel://eth0"
경계 라우터의 전원을 껐다 켭니다. BeagleBone Black 플랫폼을 사용하는 경우 이 작업을 실행하는 동안 BOOT 버튼을 길게 누르고 있어야 합니다.
OTBR 서비스가 부팅 시 시작됩니다.
서비스 확인
모든 필수 서비스가 사용 설정되어 있는지 확인합니다.
sudo systemctl status
setup
스크립트가 성공하면 다음 서비스가 출력에 표시됩니다.
mdns.service
otbr-agent.service
otbr-web.service
예를 들면 다음과 같습니다.
● 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
해당 서비스가 실행 중이지만 RPi가 성능 저하 상태이면 다른 서비스를 시작하지 못한 것입니다. 다음 사항을 확인하세요.
sudo systemctl --failed
각 서비스를 개별적으로 확인할 수도 있습니다.
sudo service mdns status
sudo service otbr-agent status
sudo service otbr-web status
otbr-web
는 대부분의 플랫폼에서 기본적으로 사용 설정됩니다.
otbr-web
가 설치되어 있지 않으면 WEB_GUI
플래그를 전달해 보세요.
WEB_GUI=1 ./script/bootstrap
INFRA_IF_NAME=wlan0 WEB_GUI=1 ./script/setup
RCP 확인
RCP가 올바른 상태인지 확인합니다.
sudo ot-ctl state
ot-ctl
는 OTBR과 함께 제공되는 명령줄 유틸리티입니다. RCP 설계에서 otbr-agent
가 바인딩된 Thread PAN 인터페이스(기본값: wpan0
)와 통신하는 데 사용됩니다.
RCP가 실행 중이고 노드가 스레드 네트워크의 구성원이 아닌 경우 출력은 다음과 비슷합니다.
disabled
출력이 OpenThread daemon is not running
인 경우 다음을 사용하여 문제를 해결하세요.
- 경계 라우터에 전원이 충분한지 확인합니다(적절한 외부 AC 어댑터를 사용).
- RCP 보드의 연결을 해제했다가 다시 Border Router 플랫폼에 연결합니다.
RCP 직렬 기기가 있는지 확인합니다. 예를 들어 기기를
/dev/ttyUSB0
에 연결해야 하는 경우 다음과 같이 표시됩니다.ls /dev/ttyUSB*
/dev/ttyUSB0sudo ot-ctl reset
를 사용하여 RCP를 재설정합니다.
sudo ot-ctl state
로 RCP 상태를 다시 확인합니다.