<ph type="x-smartling-placeholder"></ph> GitHub에서 소스 보기
이 가이드에서는 OpenThread 보더 라우터의 기본 빌드 및 구성을 다룹니다. (OTBR). 이 절차를 완료하면 풀 스레드 기기 (FTD)로 설계할 수 있습니다.
플랫폼 구성
지원되는 하드웨어 플랫폼을 구성합니다.
RCP 빌드 및 플래시
OTBR은 RCP 설계에 따라 운영됩니다. 지원되는 OpenThread를 선택합니다. 플랫폼에서 RCP로 사용하고 빌드 및 플래시를 따릅니다. 해당 플랫폼에 대한 지침을 제공합니다.
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 컴파일 및 설치
기본 사용법입니다. 설정 스크립트는 기본적으로 경계선 라우팅을 사용하도록 설정합니다. 사용 설정 경계 라우팅에서 플랫폼의 이더넷 또는 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를 통해 보더 라우터 플랫폼에 연결합니다.
otbr-agent
에서 RCP 기기의 직렬 포트를 구성하려면 먼저 otbr-agent
에서
/dev
를 확인하여 RCP 기기의 직렬 포트 이름을 확인합니다.
ls /dev/tty*
다음으로 otbr-agent
설정을 확인하세요.
cd /etc/default
cat otbr-agent
otbr-agent
구성 파일에는 스레드 인터페이스 이름인 이더넷이 포함되어 있습니다.
또는 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 플랫폼을 사용하는 경우 부팅 버튼을 길게 누르면서 그렇게 해야 합니다.
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과 함께 제공되는 명령줄 유틸리티입니다. Kubernetes는
otbr-agent
가 스레드 PAN 인터페이스와 통신 (기본값: wpan0
)
RCP 설계에 구속됩니다.
RCP가 성공적으로 실행되고 노드가 스레드의 구성원이 아닌 경우 다음과 비슷한 결과가 출력됩니다.
disabled
출력이 OpenThread daemon is not running
이면 다음과 같이 문제를 해결합니다.
- 보더 라우터에 전원이 충분한지 확인합니다 (적절한 외부 AC 사용). 어댑터)을 입력합니다.
- RCP 보드를 연결 해제했다가 보더 라우터 플랫폼에 다시 연결합니다.
RCP 직렬 기기가 있는지 확인합니다. 예를 들어 기기가
/dev/ttyUSB0
에 연결되어야 합니다.ls /dev/ttyUSB*
/dev/ttyUSB0sudo ot-ctl reset
를 사용하여 RCP를 재설정합니다.
sudo ot-ctl state
를 사용하여 RCP 상태를 다시 확인합니다.